24.08.2018

Programminstallation unter Linux

Apache Webserver
Samba Server
eMail-Server
Kerberos einrichten
OpenSSH Server / Client
DSL Konfiguration unter Linux
NTP Server / Client
DNS Server
Subversion
iSCSI
LDAP-Server
Radius-Server
OpenSSL-Server einrichten
NNTP Server (NEWS-Server) INN und Leafnode
DHCP-Server einrichten
SNMP Service einrichten
Stunnel einrichten
MySQL-Server einrichten
Datensicherung auf Bandlaufwerk
Audio CDs in WAV umwandeln
CDs und DVD erstellen
Grafiken bearbeiten erstellen
FAX Versand und Empfang
Web und FTP Sites syncronisieren
Verschlüsselung von E-Mails und Dokumenten
Programm Übersicht
Datenrettung
Linux Terminalserver
PXE Boot
sonstige Programme

Seitenanfang

NNTP Server (NEWS-Server) INN und Leafnode

Newsserver INN

/etc/init.d/inn start|stop|restart

/etc/news/hosts.nntp welcher Rechner darf auf den Newsserver zugreifen
/etc/news/nnrp.access wer hat welche Rechte beim zugriff
/etc/news/inn.conf Name und Organisation des Newsservers
/lib/news/newsfeeds um Einrichten der Groups und Newsfeed
Optionen:  
# für alle lokal existierenden Gruppen alle Beitraege empfangen
ME:*::
# zum externen Server news.t-online.de alle Artikel senden, die ich *nicht* über diesen Server bezog
# (also eigene Postings) wurden, ausser wenn es sich um Artikel der lokalen Hierarchien junk, control bzw. local handelt.
news.t-online.de/t-online.de:*,!junk*,!control*,!local*::
# News Overview Datenbank auf dem aktuellen Stand halten für die NOV Overview Datenbank
overview!:*,!junk,!control*:Tc,WO:/usr/lib/news/bin/overchan

Newsserver Leafnode

Leafnode dient nur zum abonnieren, abholen und bereitstellen von Beiträgen, man kann keine neuen Groups erstellen und verbreiten

apt-get install leafnode Installation unter Debian
/etc/news/leafnode/config Konfigurationsdatei
Parameter:  
server = news.t-online.de Name des Servers von dem die Artikel bezogen werden sollen, es können auch mehrere Servereinträge sein
expire = 7 Tage nach dem alte Postings gelöscht werden sollen (hier 7 Tage)
username = Ihr-Benutzername Autorisierung an einem Newsserver
password = Ihr-Passwort  
groupexpire = 14 besondere Angaben für einzelne Gruppen
groupexpire de.comp.os.unix.shell = 10 Löschen der Artikel nach zehn Tagen
groupexpire de.alt.* = 3 Artikel aller de.alt-Gruppen nach 3 Tagen löschen
maxfetch = 1000 Maximale Anzahl von Artiken pro Newsgroup die auf die Platte geladen werden sollen
initialfetch = 30 Anzahl von Artikeln die von einer neu abonnierten Newsgroup geladen werden

/etc/hosts.deny  
Parameter:  
leafnode: ALL Zugriff auf den Newsserver von Rechnern ausserhalb des privatem Netzwerkes verweigern.

/etc/hosts.allow  
Parameter:  
leafnode: 127.0.0.1 nur Localhost den Zugriff erlauben
leafnode: 127.0.0.1 192.168.1.55 Eintrag erlaubt dem eigenen und dem Host 192.168.1.55 den Zugriff
leafnode: 127.0.0.1 192.168.1.0/255.255.255.0 Localhost und Hosts aus dem Netz 192.168.1.XXX den Zugriff gewähren.

Befehle:  
su news Identität des Users "NEWS" annehmen
ln -s /usr/sbin/fetchnews /usr/local/bin/fetchnews wenn Fetchnews nicht als Benutzer ausgeführt werden kann, noch diesen link anlegen
telnet localhost 119 Verbindung zum NNTP Server testen (Verbindung kann mit "quit" beendet werden, "help" zeigt weitere Befehle an)
fetchnews (ohne Parameter) sendet und holt News
fetchnews -f Neue Gruppenliste laden (um neue Newsgroups verfügbar zu machen)
fetchnews -v zeigt wenige Informationen an (verbosity Level 1)
fetchnews -vvvv zeigt sehr viele Informationen (verbosity Level 4)
fetchnews -P Nur Newsartikel senden, keine neuen laden
texpire zum löschen der alten Postings (damit die Platte nicht überläuft)


die Gruppenliste wird in /var/spool/news gespeichert

- Nicht unbedingt nötig ist das Einrichten der Variable in /etc/profile und in /etc/bash.bashrc "export NNTPSERVER=localhost"
- Die Groups dann in einem Newsreader abonnieren, die erste Nachricht kurz lesen, dann kann man dur den Aufruf von "fetchnews" die Artikel herunterladen.

Jobs automatisieren mit CRON

Cron Job zum entfernen der veralteten Artikel in die /etc/crontab einfügen, Job wird als Benutzer NEWS ausgeführt
"crontab -u news -e" der Job wird täglich um 1.00 Uhr ausgeführt und löscht alte Postinge
0 1 * * * root test -x /usr/sbin/texpire && /usr/sbin/texpire
führt den Job zu jeder vollen Stunde aus, neue Postings werden geholt und gesendet
0 * * * * /usr/sbin/fetchnews
alle 15 Min wir der Job gestartet
*/15 * * * * /usr/sbin/fetchnews

Seitenanfang

SNMP Service einrichten

Eintrag in /etc/hosts.allow
#-------- snmpd beginn
snmpd: 127.0.0.1 192.168.1.0/255.255.255.0 192.168.0.0/255.255.255.0 192.168.2.0/255.255.255.0
#-------- snmpd ende

Packete installieren:
snmpd - SNMP Daemon
snmp - SNMP Client

Befehle Beschreibung
snmpwalk rechner community zeigt kompletten MIB Baum eines Knotens an
snmpget rechner public system.sysDescr.0 MIB-Objekt anzeigen
snmpset rechner community objekt typ wert MIB-Objekt setzen
snmptrapd -v 1 -s >/dev/null 2>&1 & SNMP Trap starten
   

 

Seitenanfang

Stunnel einrichten

Stunnel Server für rsync
Stunnel Client für rsync mit Zertifikat

stunnel -V # zeigt an welche Optionen in stunnel kompiliert wurde

stunnel.conf

[https]
accept = 20001
connect = 20000
TIMEOUTclose = 0

unter accept steht der Port der die Verbindungen aus dem Internet annimmt.

Seitenanfang

Stunnel Server für rsync

Schritt 1. und 2.

3. Signieren des Zertifikates mit der CA
openssl ca -config ./openssl.cnf -policy policy_anything -out server_pubcert.pem -infiles server_req.pem

- die Reihenfolge der Optionen ist wichtig -out und -infiles muss am Ende der Zeile stehn, sonst kommt es zu fehlern.
- das Passwort für die CA muss angegeben werden

4. die Datei "server_pubcert.pem" bearbeiten und alle Zeilen über der
-----BEGIN CERTIFICATE-----
löschen und am Ende noch eine Leerzeile einfügen.

5. Schlüssel und Zertifikat zusammenfassen zu einer Datei
cat server_key.pem server_pubcert.pem > server_cert.pem

6. Verzeichnis für den Key anlegen
mkdir /etc/stunnel

7. Key in das stunnel Verzeichnis bewegen
mv /etc/ssl/CA/server_cert.pem /etc/stunnel/

8. Einträge in /etc/services
ssync 272/tcp # Secure Rsync client
ssyncd 273/tcp # Secure Rsync daemon

9. RSYNC Daemon starten und Tunnel erstellen
rsync --daemon --address=127.0.0.1
stunnel -d ssyncd -r localhost:rsync -p /etc/stunnel/server_cert.pem -N ssync

- "netstat --inet -aln" zeigt alle aktiven, lauschenden TCP/IP Sockets an

10. Clientmodus starten
stunnel -c -d rsync -r server.local:ssyncd -N ssync

Optionen von Stunnel
-p pemdatei Rechnerzertifikatdatei
-d [HostIP:]daemonport legt fest auf welcher IP und an welchem Port Stunnel auf Verbindungen lauschen soll.
-r [RemoteIP:]remoteport gibt an zu welche IP und Port Stunnel eine Verbindung weiterleiten soll.
-c Stunnel im Clientmodus
-N dienstname Name des Dienstes den Stunnel beim Aufruf von "libwrap" übergeben soll

11. RSYNC über den eingerichteten Tunnel ausführen
rsync localhost::
oder
rsync --port 272 localhost::
rsync läuft normalerweise auf dem Port 873

Seitenanfang

Stunnel Client für rsync mit Zertifikat

Option
-v 0 keine Zertifikats-Authentifizierung erforderlich.
-v 1 überprüfen der Signatur des Zertifikates, wenn der Remote Host über ein Zertifikat verfügt.
-v 2 erlaubt nur Verbindungen mit Zertifikat, die von einer CA signiert wurden.
-v 3 erlaubt nur Verbindungen mit Zertifikat, die lacal gecacht und von einer vertrauenswürdigen CA signiert wurden.

1. RSYNC Daemon starten
rsync --daemon --address=127.0.0.1

2. wie im vorherigen Beispiel ein Zertifikat erstellen
cd /etc/ssl/CA
openssl req -nodes -new -keyout client_key.pem -out client_req.pem -days 365 -config ./openssl.cnf
openssl ca -config ./openssl.cnf -policy policy_anything -out client_pubcert.pem -infiles client_req.pem
joe client_pubcert.pem
-----BEGIN CERTIFICATE-----
löschen und am Ende noch eine Leerzeile einfügen.
cat client_key.pem client_pubcert.pem > client_cert.pem

3. Verzeichnis für die Zertifikate auf den Client anlegen
mkdir /etc/stunnel

4. diese Dateien auf den Client kopieren
client_cert.pem, client_pubcert.pem cacert.pem

5. Zugriffsrechte auf die Zertifikate setzen
chown root.root /etc/stunnel/*
chmod 0400 /etc/stunnel/*

6. Hashwert für die Dateien erstellen
c_rehash /etc/stunnel/

7. Servertunnel starten
stunnel -d ssyncd -r localhost:rsync -p /etc/stunnel/server_cert.pem -N ssync -v 2 -a /etc/stunnel

Optionen  
-v 2 erlaubt nur Verbindungen mit Zertifikat, die von einer CA signiert wurden.
-a Verz. Ort an den Stunnel nach Zertifikaten suchen soll.(wenn es dennoch zu Problemen mit den Zertifikaten kommt, kann man noch die Option -s 0 verwenden, damit vergisst Stunnel alle Standardzertifikatspfade
-A Zertifikatsdatei wie -a nur mit einer Datei anstatt einem Verzeichnis.

8. Clienttunnel starten
stunnel -c -d rsync -r server.local:ssyncd -p /etc/stunnel/client_cert.pem -N ssync

Seitenanfang

MySQL-Server einrichten

1. Installation
apt-get install mysql-server mysql-client

2. Datenbank Passwort setzen (das Passwort für die Datenbank des MySQL-Server sollte nicht das root Passwort sein)
mysqladmin -u root -h localhost password 'geheim'

3. im Home Verz. Datei ~/.my.cnf

[mysql]
        user = root
        password = geheim

[mysqladmin]
        user = root
        password = geheim

4. Rechte auf die Passwort-Datei setzen
chmod 0600 ~/.my.cnf

5. Konfigurationsdatei /etc/mysql/my.cnf anpassen
# Deutsche Fehlermeldungen
language = /usr/share/mysql/german

6. Testen ob der Server läuft (wenn die Datei ~/.my.cnf nicht existiert wird erhält man die Meldung "error: 'Access denied for user" mit der Option (-p) wird nach dem Passwort gefragt)
mysqladmin -u root -h localhost ping -p
jetzt sollte die Meldung "mysqld is alive" erscheinen, dann ist alles OK.

- Server herunterfahren
mysqladmin -u root -h localhost shutdown

- zeigt Serverstatus an Uptime, Anfragen usw.
mysqladmin -u root -h localhost status

7. Client starten
mysql -u root -h localhost -p
- Datenbank wechseln zu mysql
use mysql;

- zeigt Tables an
show tables;

- zeigt existierende User und deren verschlüsselte Passworter an.
SELECT Host, User, Password FROM user;

- löscht leere und mit Prozentzeichen gefüllte Datensätze
DELETE FROM user WHERE Host="%";
DELETE FROM user WHERE User="";

8. Server neu starten
mysqladmin -u root -h localhost -p reload

hat man das root-Passwort der Datenbank vergessen, kann man MySQL in einem Modus starten in dem die Tabellen für Benutzerrechte nicht beachtet werden
#safe_mysqld --skip-grant-tables
#mysqladmin -u root flush-privileges password 'newpass'

MySQL Monitor nutzen

- Anmeldung als User max (-u) mit Passwotabfrage (-p)
mysql -u max -p

- MySQL Monitor verlasswen
\q

- vorhandene Datenbanken anzeigen
show databases;

- Datenbank anlegen (-p) mit Passwortabfrage
mysqladmin -p create newdb
oder
create database newdb;

- Datenbank löschen
mysqladmin drop newdb
oder
drop database newdb;

- Datenbank benutzen
use newdb;

- vorhandene Tabellen einer Datenbank anzeigen
show tables;

- User für die Datenbank anlegen und Vollzugriff erlauben
GRANT ALL ON newdb.* to user@localhost IDENTIFIED BY 'geheim';
flush privileges; #Zugangstabelleneu einlesen

- Tabelle in einer Datenbank anlegen (die Tabelle hat einen Primary Key der durch id INT AUTO_INCREMENT gesetzt wird und ein Feld für das Datum).
use newdb;
create table newtable (datum DATE,id INT AUTO_INCREMENT,PRIMARY KEY (id));
SQL Befehle
SELECT, INSERT, UPDATE, DELETE

- ein Datum in die Tabelle einfügen
INSERT INTO newtable (datum) VALUES ('2004-10-20');

- Einträge einer Tabelle anzeigen
select * FROM newtable;

- ein Eintrag in der Tabelle ändern
UPDATE newtable SET datum = '2004-08-21' WHERE id=2;

- Eintrag mit der ID 4 löschen
DELETE FROM newtable WHERE id=4;

Seitenanfang

Datensicherung auf Bandlaufwerk

Datensicherung:
tar -cvv -b 64 -f /dev/nst0 /daten1
mt -f /dev/nst0 rewind

Datenrücksicherung:
mt -f /dev/nst0 rewind
tar -xvv -b 64 -f /dev/nst0 /daten1

Option Beschreibung
fsf Das Medium springt zu dem ersten Block des nächsten Archivs
bsf Das Medium springt zu dem ersten Block des vorherigen Archivs
eom Das Medium wird zum Ende der zuletzt beschriebenen Daten gespult
rewind Das Medium wird zurückgespult
status Es werden Statusinformationen über das Medium angezeigt
retension Das Band wird nachgespannt (vor- und zurückgespult)
erase Das Medium wird gelöscht
Seitenanfang

Audio CDs in WAV umwandeln

SCSI Emulation für ATAPI einrichten, fals das Laufwerk ein ATAPI CDROM, DVD oder Brenner ist. Infos dazu hier

- CD Trackliste auslesen
cdda2wav -J -D 0,0,0 - 0,0,0 ist die ID des Laufwerks
cdda2wav -D /dev/cdrom -x -B -t 1+15 - Track 1-15 von einer CD als WAV speichern

- WAV auf CD Brennen
cdrecord dev=0,1,0 speed=8 -audio -v -eject -pad defpregap=0 *.wav

speed = kann bei dir anders sein, ist bei mir die Geschwindigkeit meines
Brenners.
-audio = sagt cdrecord, dass es sich um eine AudioCD handelt
-v = verbose. Ausführliche Bildschirmanzeige. (Ich will ja wissen, was
cdrecord gerade macht)
-eject = Wirft die CD nach dem Beenden aus. Praktisch, wenn der Brennvorgang
nicht direkt überwacht wird.
-pad defpregap=0 = korrigiert die Länge der WAVs, da diese immer eine
bestimmte Länge haben müssen.

Seitenanfang

CDs und DVD erstellen

SCSI Emulation für ATAPI einrichten, fals das Laufwerk ein ATAPI CDROM, DVD oder Brenner ist. Infos dazu hier

cdrecord -scanbus zeigt an welche ID der Brenner hat
cat /proc/scsi/scsi zeigt an welche ID der Brenner hat
mkisofs -R -o /tmp/iso/cdimage.raw /daten/cdrom Raw File erstellen
mkisofs -r /home/user/ > /tmp/user-home.iso ISO Image vom Home des Users erstellen
cdrecord -v dev=0,1,0 speed=10 /tmp/iso/cdimage.raw Raw File brennen
mount -t iso9660 /dev/scd1 /mnt/cdrw Das Gerät /dev/sr1 ist Schreibgeschützt
mount -t iso9660 -o loop,ro /cd_image /mnt/iso ein ISO als Loop Device mounten
dd if=/dev/cdrom of=image.iso ISO einer existierenden DatenCD erstellen
cdrecord -v speed=8 dev=0,1,0 -audio /tmp/image.iso Audio Image brennen mit 8fach Speed
cdrecord -v speed=8 dev=0,1,0 -data /tmp/image.iso Daten Image brennen mit 8fach Speed
cdrecord -v speed=8 dev=0,1,0 blank=fast -data /tmp/image.iso Daten Image CDRW brennen mit 8fach Speed und vorherigem schnellen löschen der CDRW
dd if=/dev/cdrom | cdrecord -v speed=12 dev=0,1,0 fs=8m -data - CD in Echtzeit kopieren
mkisofs -r /home/user/ | cdrecord -v speed=12 dev=0,1,0 fs=8m -data - ein Verzeichnis (/home/user) in Echtzeit auf CD brennen.
mkisofs -r /home/user/ | ssh pc1.domain.de "cdrecord -v speed=12 dev=0,1,0 fs=8m -data -" ein Verzeichnis (/home/user) in Echtzeit im Netzwerk auf CD brennen.
dd if=/dev/cdrom | ssh pc1.domain.de "cdrecord -v speed=12 dev=0,1,0 fs=8m -data -" ein CD in Echtzeit im Netzwerk auf CD brennen.
umount /mnt/cdrw CD entfernen
cdrecord -v dev=0,1,0 speed=10 blank=fast schnelllöschen CDRW (blank=fast)
DVD +R/RW -R/RW  
dvdrecord -v speed=2 dev=0.0.0 blank=all vollständiges löschen einer DVD RW
dvdrecord -v speed=2 dev=0.0.0 blank=fast schnellöschen einer DVD RW
readcd dev=0.0.0 f=image DVD in ein Image lesen
dvdrecord speed=2 dev=0.0.0 -v image das erstellte Image auf DVD brennen
mkisofs -r -J -o /tmp/image /home alle Verzeichnisse unterhalb "/home" in ein die Datei "/tmp/image" schreiben
mkisofs -r -J -split -o /tmp/image /home alle Verzeichnisse unterhalb "/home" in ein die Datei "/tmp/image" schreiben, und diese in 1GB grosse Dateien verpacken
DVD+R  
growisofs -R -J -Z /dev/scd0 /home erstellt ein Image ab Ordner /home und deren Unterordner und brennt dieses
growisofs -R -J -M /dev/scd0 /data zusätzliche Dateien an ein Medium anhängen
growisofs -Z /dev/scd0=image.iso ein Image auf eine DVD+R brennen
DVD+RW  
dvd+rw-format -f /dev/scd0 DVD+RW formatieren
dvd+rw-format -lead-out /dev/scd0 DVD-Session schliessen
DVD RAM  
mke2fs -j /dev/scd0 ein Dateisystem auf die DVD RAM schreiben
mount /dev/scd0 /mnt DVD RAM mounten

Programme Erläuterung
X-CD-Roast Brennprogramm GUI (cdrecord)
Burn-It Java Brennoberfläche
tkburn Brennprogramm mit GUI
K3B KDE Brennprogamm

Voraussetzungen zum Mounten eines ISOs ist das der Kernel ein Loop Device unterstützt.
Block devices
< M> Loopback device support

- Ein Image von einer Platte Mounten
mount -o loop,ro <Datei> <Mount Point>

- wenn das Image aus meheren Partitionen besteht, muss es vorher bearbeitet werde.
Dateiname des Image = image.bak
1. fdisk -lu image.bak

Gerät boot Anfang Ende Blöcke Id Dateisystemtyp
image1 * 63 204812684 102406311 c Win95 FAT32 (LBA)
image2   204812685 206885069 1036192+ 82 Linux Swap
image3   206885070 234420479 13767705 83 Linux
- Option -u bewirkt das die Anzeige als Einheit 512 Bytes lange Sektoren zu Grunde legt.

Mit losetup kann man das Loop-Device so konfigurieren, das es beim Mouten nicht auf den Begin der Datei zugreift, sondern mit einem passenden Offset.
Beispiel für die erste Partition:
#losetup -o $((512*63)) /dev/loop0 image.bak
#mount -ro /dev/loop0 /mnt
so kann man nur Partitionen einbinden die unterhalb von 2GB liegen.

Um auf Partitionen zuzugreifen die oberhalb der 2GB Grenze liegen, mussen diese extrahiert werden.
um die Partition "image3" in die Datei image3.bak zu kopieren geht man folgendermassen vor:
dd if=image.bak of=image3.bak bs=512 skip=206885070 count=$((234420479~206885070))
mount -ro -o loop image3.bak /mnt

CDRecord mit Kernel 2.6
cdrecord dev=ATAPI -scanbus

Konfigurationsdatei für CDRecord /etc/default/cdrecord mit Debian
CDR_DEVICE=ATAPI:/dev/hdg
CDR_SPEED=10

Module IDE CDROM
cdrom, ide_cd

Seitenanfang

Grafiken bearbeiten erstellen


Debian Installation:
apt-get install gimp
apt-get install povray
apt-get install imagemagick

- Screenshots
gesamten Bildschirminhalt in eine Datei speichern (myscreen.xpm)
import -window root myscreen.xpm

einzelnes Fensten in Datei speichern, mit dem Cursor (Fadenkreuz) das Fenster auswählen das gespeichert werden soll
import mywindow.xpm

- Bilder konvertieren
alle BMP Bilder in XPM konvertieren
for i in *.bmp
do
convert $i xpm:'basename $i .bmp'.xpm
done

- Informationen über Bilder auf der Kommandozeile ausgeben
identify myscreen.xpm

Seitenanfang

FAX Versand und Empfang

Hylafax
mgetty-Fax sendfax
Fehlersuche

SeitenanfangHylafax
benötigte Pakete sind "hylafax" "capi4hylafax"

für die Capiuntestützung muss das Paket "capi4hylafax" installiert sein, da dort die Befehle "c2faxsend" und "c2faxrecv" enthalten sind, die man zum Senden und Empfangen von Faxen über die Capi benötigt.
Documentation:
/usr/doc/packages/hylafax/html/index.html
oder Google +hylafax +capi

Verzeichnis: /var/spool/hylafax/
etc Konfigurationsverzeichnis
log Logdateien
pollq Faxpolling
recvq empfangene Faxe
sendq zu versendende Aufträge
status Meldungen

Konfiguration:
/usr/sbin/faxsetup
/usr/sbin/faxaddmodem auf capi20 stellen die Konfiguration in /var/spool/hylafax/etc/config wird dabei angepasst.

Serial Port capi20 (die Bezeichnung des Devices ohne "/dev")
Phone Number +49.xxx.xxxx (die eigene Fax-Nummer vollständig mit der MSN für den PC)
Identification String "mein Fax"
Protection Mode for Received Facsimile 0644
Protection Mode for Modem 0666
Command Line Argument to getty "-r -b -s %s %l"
/var/spool/fax/etc/config.faxCAPI anpassen
FAXNumber: +49.xxx.xxxx
LocalIdentifier: AVM CAPI4Hylafax
Controller: 1
#OutgoingMSN:  
#IncomingMSN:  
RecvFileMode: 0644
LogFileMode: 0600
# Part only used from Hylafax  
CountryCode: 49
AreaCode: xxx
LongDistancePrefix: 0
InternationalPrefix: 00
DialStringRules: etc/dialrules
DeviceMode: 0666

Befehle:  
ps -ax |grep fax testen ob alle Hylafaxprozesse laufen ("faxq" "hfaxd")
faxstat -srv zeigt an ob der Server läuft
faxstat -s zu sendende Jobs
faxstat -r empfangene Jobs
faxstat -d gesendete Jobs
faxrm Job aus der Warteschlange entfernen
faxqclean bereinigt die Faxque (für einen täglichen Cronjob geeignet)
faxcron Fax Statistic anzeigen
faxgetty zum Faxempfang (über analog)
c2faxsend -f TIFF -d Fax-Nummer -v fritz_pic.tif Faxversand (capi)
c2faxrecv & Faxempfang (capi)
   

- versendete Faxe anzeigen
# faxstat -d
JID  Pri S  Owner Number       Pages Dials     TTS Status
18   127 D   root xxxxxx        1:1   2:3
Seitenanfangmgetty-Fax sendfax

enthält die Programme 3cat, pbm2g3, sendfax, faxrunq, faxq, und coverpg

Befehle:  
faxrunq veranlaßt das Modem, zu wählen, da ansonsten das Fax einfach in der Queue liegen bleibt
faxq schaut, ob Faxe in der Warteschlage liegen
faxrm Jobnummer entfernt ein Fax aus der Queue
faxqclean räumt mit der gesamten Queue auf
sendfax -n -d '%number' %files Faxversand

sendfax, welches durch faxspool aufgerufen wurde, verschiedenste Queues mit unterschiedlichen Prioritäten angeben.
Option sendfax
-d Fax-Nummer
-n ohne Cover

SeitenanfangFehlersuche
strace c2faxsend -d Fax-Nummer -f TIFF -v fritz_pic.tif Versand über capi
strace faxsend -m modem sendq/q1 Versand über Hylafax
   
   
   
   

Faxempfang
für Modemfax
mo:23:respawn:/usr/lib/fax/faxgetty /dev/modem
für Capifax
mo:23:once:/usr/bin/c2faxrecv

# modem getty.
# mo:23:respawn:/usr/sbin/mgetty -s 38400 modem

# fax getty (hylafax)
mo:23:respawn:/usr/lib/fax/faxgetty /dev/modem

Modemkonfiguration
Daemon "mingetty" lauscht an den COM-Port und "faxgetty" an COM2 zum Faxempfang
/etc/inittab
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/usr/lib/fax/ faxgetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

2:2345:respawn:/usr/lib/fax/ faxgetty tty2

vboxgetty (Anrufbeantworter) lauscht an /dev/ttyI??.

Seitenanfang

Web und FTP Sites syncronisieren


apt-get install sitecopy

mkdir -m 700 ~/.sitecopy Verzeichnis anlegen
touch ~/.sitecopyrc Konfigurationsdatei anlegen
chmod 600 ~/.sitecopyrc Rechte der Konfigurationsdatei setzen

Eintrag in ~/.sitecopyrc

# WWW Server Muster
site mysite
server my.server.com
url http://www.server.com/fred
username fred
password juniper
local /home/fred/html/
remote ~/public_html/
#
# FTP Server
site anothersite
server ftp.elsewhere.com
username freda
password blahblahblah
local /home/freda/sites/elsewhere/
remote /www/freda/
exclude *.bak
exclude *~

Befehle  
sitecopy --catchup <sitenname>  
sitecopy --fetch <sitenname> Inhalt der Seite holen (dannach "sitecopy --synch <sitename>" aufrufen)
sitecopy --synch <sitename> Seite von Remote Host auf dem lokalen Rechner speichern.
sitecopy --init <sitenname> neue Seite einrichten
   
sitecopy --update <sitenname> Seite syncronisieren
sitecopy --update --quiet <sitenname> <sitenname> mehrere Seiten syncronisieren
sitecopy --view Inhalt der ~/.sitecopyrc anzeigen.
   
Seitenanfang

Verschlüsselung von E-Mails und Dokumenten

Verschlüsselung mit GNUPG (gpg)
GUI für GNUpg unter KDE3.x kgpg
- Standard Konfigurationsverzeichnis ~/.gnupg

Dateien Bedeutung
secring.gpg geheimer oder privater Schlüssel
pubring.gpg öffentlichen Schlüsselbunddatei

Beide Schlüssel zusammen ergeben das Schlüsselpaar, das man dann zum Verschlüsseln, Entschlüsseln oder Signieren einsetzen kann. Der geheime Schlüssel darf unter keinen Umständen jemand anderem zugänglich sein. Den öffentlichen Schlüssel sollte man für jeden, mit dem man kommunizieren möchte, zugänglich machen.
1. Schlüsselpaar erstellen

gpg --gen-key
Bitte wählen Sie, welche Art von Schlüssel Sie möchten:
   (1) DSA und ElGamal (voreingestellt)
   (2) DSA (nur signieren/beglaubigen)
   (4) ElGamal (signieren/beglaubigen und verschlüsseln)
Ihre Auswahl?

Option 1 erzeugt wirklich zwei Schlüsselpaare, ein DSA-Schlüsselpaar, das nur zum Unterschreiben geeignet ist, und ein untergeordnetes ElGamal-Schlüsselpaar für die Verschlüsselung.
Option 2 erzeugt nur das DSA-Schlüsselpaar.
Option 4 erzeugt ein einzelnes ElGamal-Schlüsselpaar, das sowohl zum Unterzeichnen als auch zum Verschlüsseln verwendbar ist.

Wenn dann der Schlüssel erstellt wurde, sollte man sofort eine Widerrufurkunde für den Schlüssel erzeugen. Wenn das Passwort (Mantra) vergessen, wenn der privater Schlüssel kompromittiert oder verloren gegangen ist, kann mit dieser Widerrufurkunde andere davon in Kenntnis gesetzt werden, daß der dazugehörige öffentliche Schlüssel nicht mehr benutzt werden sollte.

gpg --output revoke.asc --gen-revoke mykey
mykey entweder die Schlüssel-ID Ihres ersten Schlüsselpaares, dazugehörigen Benutzer-ID oder E-Mail Adresse.
revoke.asc Widerrufurkunde, sollte sicher aufbewahrt und niemanden zugänglich sein. Wenn jemand diese Urkunde veröffentlicht, kann er damit den Schlüssel ungültig machen.

Wenn man einen Schlüssel mit kgpg erstellt, wird automatisch ein Sperrzertifikat generiert, das man Drucken oder in einer Datei speichern kann.

Befehl Bedeutung
gpg --list-keys öffentlichen Schlüsselbund anzeigen
gpg --output user.gpg --export user@domain.tld öffentliche Schlüssel des Benutzers "user@domain.tld" als Binärdatei "user.gpg" exportieren.
gpg --armor --output user.gpg --export user@domain.tld export im ASCII Format duch die Option --armor
gpg --import newuser.gpg import eines neuen öffentlichen Schlüssels
gpg --fingerprint Fingerprint anzeigen
gpg --edit-key user@domain.tld um einen Schlüssel persönlich zu authentifizieren, ,uss man ihn mit --edit-key editieren, als erstes kann man sich den Fingerprint mit fpr anzeigen, und wenn der Fingerprint korrekt ist mit sign den Schlüssel signieren.
Befehl> fpr	Fingerprint zeigen
Befehl> sign	Schlüssel signieren
Befehl> check	Schlüsselsignatur überprüfen
Befehl> help	Hilfe zu den Befehlen anzeigen
Befehl> toggle	schaltet zwischen öffentlichen und privaten Schlüsseln um
Befehl Bedeutung
gpg --output text.gpg --encrypt --recipient user@domain.tld text ein Dokument verschlüsseln --encrypt, dazu braucht man den öffentlichen Schlüssel des Empfängers --recipient user@domain.tld, mit dem dann das Dokument verschlüsselt wird.
gpg --output text --decrypt text.gpg ein Dokument entschlüsseln --decrypt, mit dem privaten Schlüssel des Benutzers. Zum entschlüsseln wird das Mantra (Passwort) abgefragt.
gpg --output text.gpg --symmetric text ein Dokument mit symmetrischer Verschlüsselung verschlüsseln, es wird nach dem Mantra gefragt, je länger die Passphrase ist, um so sicherer.
gpg --output text.sig --sign text ein Dokument signieren, das Dokument wird vor dem Unterschreiben komprimiert und die Ausgabe erfolgt im binären Format.
gpg --verify text.sig die Unterschrift prüfen
gpg --output text1 --decrypt text.sig das unterzeichnete Dokument auspacken
gpg --clearsign text ein Dokument im Klartext signieren. die Signatur wird am Ende des Dokumentes angefügt.
gpg --output text.sig --detach-sig text ein Dokument im Klartext signieren, die Signatur wird in einer anderen Datei gespeichert
gpg --verify text.sig text die Unterschrift prüfen

Keyserver:
subkeys.pgp.net
random.sks.keyserver.penguin.de

Verschlüsseln von Dateien

Befehl Bedeutung
gpg -c datei die angegeben Datei wird mit CAST5 verschlüsselt
gpg --cipher-algo AES256 datei Datei wird statt mit CAST5 mit AES256 verschlüsselt
gpg --decrypt datei.gpg > datei entschlüsseln einer Datei
Seitenanfang

Programm Übersicht


Grafik
gexit zeigt exit Eintragungen der Bilder an
gphoto2 holt Bilder von einer Digicam (für alte Cameras)
Digicam holt Bilder von einer Digicam
gimp Bildbearbeitung, Retusche
jhead Bildbearbeitung (deb-Paket jhead)
jpegtran Bildbearbeitung Drehen (deb-Paket libjpeg-progs)
imgseek Bildverwaltung mit Suchfunktion
xnview Bildbetrachter
xv Bildbetrachter
pixieplus Bildbetrachter
amaya WYSIWYG Editor (apt-get install amaya amaya-dict-de)
   
   
Player
xine Video auch im Browser
mplayer Videoplayer
ogle DVD Player
   
Netzwerktools
nmap Portscanner
nessus Security Scanner, testet ein System auf Sicherheitslücken, (nessusd Deamon)
snort Packet Sniffer, Packet logger
honeyd (Honeypot) Simuliert ein Netzwerk mit vielen Clients, Routern und Diensten
kismet WLAN Sniffer/Scanner
Ethereal Packet logger
Linneighborhood
SMB Browser
micq ICQ Client
ickle ICQ Client
ddclient DynDNS Client Paket
GNUDIP DynDNS Server
httping -c 3 -g http://www.domain.tld HTTP Ping Download
multitail [-i] file1 [-i] file2 Multitail Download
macchanger ändert MAC Adresse der NIC
netcardconfig LAN - WLAN Konfiguration
bing testet Bandbreite zwischen zwei Rechnern
tcpdump port 80 -n einfacher Paketsniffer
hunt Paketsniffer mit Zusatzfunktionen
etherwake sendet Wake-On-LAN Pakete
minicom Modemprogramm
wavemon WLAN Monitor
ntopng Netzwerk Traffic Übersicht
linssid WLAN Netzwerke Übersicht
ike-scan VPN-Gateway auf unterstützte Verschlüsselungs- und Authentifizierungsverfahren testen
Systemüberwachung
collectd Systemüberwachung / Analyse
Nagios Systemüberwachung / Analyse
Cacti Systemüberwachung / Analyse
OpenNMS Systemüberwachung / Analyse
nTop Netzwerkmonitoring / Analyse
Sound
streamripper für die Aufnahme von Shoutcast-Stationen zuständig, Mitschnitt eines Streams "streamripper http://dvdcenter.hu:8000 -d /netlogon/stream"
streamtuner Shoutcast Sender-Übersicht
   
Komunikation
Skyrix OpenGroupWare mit Outlook Anbindung über PlugIn und SOGo mit Thunderbird als Client
Samsung Contact Groupware
SCOoffice Mail Server Groupware
Conversations Groupware mit Outlookanbindung
Courier-IMAP IMAP-Server
evolution IMAP-Client
kolab Groupware für Linux besteht aus Postfix, Cyrus-IMAP-Server, Apache und ProFTP-Server Authentifizierung mit OpenLDAP Client ist ein mod von KMail oder Kontact
Evolution von Ximian Outlook ähnlicher Client für IMAP und POP
grepmail suchen im Mailfolder (nur bei Mbox format)
gpopper POP3 Server
   
OfficePackete
OpenOffice Office Packet
AqMoney Bankingsoftware
   
Tools
installwatch erstellt eine Liste von Dateien die bei einer Installation in das System kopiert werden
checkinstall macht einen Mitschnitt beim Aufruf von "make install" und bildet daraus ein deb-Paket
gps Grafischen Überblick über die laufenden Prozesse
dupseek sucht doppelt vorhandene Dateien kann sie auch durch einen Link ersetzen
hexedit Hex Editor
chkrookit Rootkit Scanner unter Debian ist noch das Paket binutils notwendig
chntpw ändert Windows Passwörter
testdisk repariert beschädigte Partitionstabellen
screen Terminal-Multiplexer, innerhalb eines Terminals verschiedene virtuelle Konsolensitzungen
tmux Terminal-Multiplexer, innerhalb eines Terminals verschiedene virtuelle Konsolensitzungen
   
Virenscanner
nvcc -? for available options Norman Antivirus
nvcc -ad -s for scanning the complete harddisk
niu Internetupdate Norman
   
Sync
msynctool SyncML Tools zur Syncronisation mit dem Mobilphone OpenSync
Synce Daemon zum Syncronisieren mit ActiveSync
   
   
Seitenanfang

Datenrettung

Datenrettung mit dd_rescue, dd_rescue hat den Vorteil gegenüber dd, daß Lesefehler ignoriert werden.

dd_rescue Download

mit dd_rescue Daten als Image sichern

komplette Platte in eine Imagedatei schreiben.

dd_rescue -A /dev/sdb /media/disk.img

Partition in eine Imagedatei schreiben, das Image kann man später mounten ohne es erst auf eine Festplatte zurückzuspielen zu müssen.

dd_rescue -A /dev/hdc5 /mnt/linux-hdc5.img

Image von hinten erstellen lassen, wenn die Daten normal nicht komplett gelesen werden können.

dd_rescue -r /dev/hdc5 mnt/image-back.dat

NTFS Daten als Image sichern und rücksichern

Das Programm NTFSCLONE ist im Debian-Paket ntfsprogs enthalten.

NTFS Partition in eine Imagedatei schreiben die Option --rescue ignoriert Lesefehler, -o Output-Datei.

ntfsclone --rescue -o /media/ntfs-sdb1.img /dev/sdb1

NTFS Imagedatei auf eine Partitionierte Platte schreiben.

ntfsclone -r -o /dev/sdb1 /media/ntfs-sdb1.img

NTFS Platte reparieren

wenn eine Festplatte nach einem Absturtz des Rechners unter Windows nicht mehr gelesen werden kann, Windows erkennt nur noch eine leere Partiotion, unter Linux ist diese Partition ohne Probleme zu lesen, hilft es mit ntfsfix die Partition zu reparieren.

ntfsfix /dev/sda1

Image mounten

Partitions-Image zum testen mounten

mkdir /media/loop
mount -o loop,ro /media/linux-hdc5.img /media/loop

NTFS Image mounten

mkdir /media/loop
ntfsmount /media/ntfs-sdb1.img /media/loop

wenn das gesicherte ddrescue Image mehrere Partitionen enthält, gibt es Schwierigkeiten die einzellnen Partitionen zu mounten, für diesen Fall gibt es kpartx.

eine Übersicht der Partitionen des Images

kpartx -l imagedatei

alle Partitionen des Images auf Loop-Devices mappen (loop0p1, loop0p2 ...)

kpartx -a imagedatei

Images mounten

mount /dev/mapper/loop0p2 /mnt/ -o loop,ro

nach einem unmount kann man die Loop-Device wie folgt wieder entfernen.

kpartx -d imagedatei

unter Xen gibt es noch eine weitere Möglichkeit mit lomount, der folgende Befehl bindet die zweite Partition des DiskImages ein.

lomount -diskimage imagedatei -partition 2 /mnt/

mit dd Images oder Platten kopieren

Image auf eine neue mind. gleichgroße Platte zurückspielen

dd if=/media/disk.img of=/dev/sdc

eine Platte direkt auf eine andere kopieren, geht nur wenn die Quelle Fehlerfrei ist.

dd if=/dev/sdb of=/dev/sdc

Images in Teilen erstellen

1 #dd_rescue /dev/hdc5 mnt/image.dat
2 #dd_rescue -r /dev/hdc5 mnt/image-back.dat
3 #dd if=/dev/zero of=/mnt/image-zero.dat bs=1024 count=xxx
4 #cd /mnt; cat image.dat image-zero.dat image-back.dat > image-full.dat
  1. von der Partition hdc5 wird ein Image erstellt
  2. Image von hinten erstellen lassen, wenn die Daten normal nicht komplett gelesen werden können.
  3. Zwischenstück der beiden Images erstellen, ( count=xxx steht für die Grösse die noch fehlt, um die Partitionsgrosse genau zu erreichen )
  4. alle drei Teile zusammenfügen

- Image reparieren

reiserfsck --fix-fixable /mnt/image-full.dat

oder

fsck.ext3 -p /mnt/image-full.dat

Reparatur der Platte

- defekte Sektoren einer Partition ermitteln und mit fsck markieren

badblocks /dev/hdc5 > /tmp/badblocks
fsck -t ext2 -l /tmp/badblocks /dev/hdc5

oder

badblocks -nvv /dev/hda1

- bei Formatierung auf Bad-Blocks testen

mkfs.ext3 -c /dev/hdc6

- gelöschte Partition wiederherstellen mit testdisk (der Befehl ist interaktiv)

testdisk
Platte wählen und mit Return bestätigen
Taste P		zeigt auf der Disk die gelöschten Dateien an
Taste S		erweiterter Suchlauf nach vorhandenen Partitionen
Taste W		wiederherstellen der Partition
Taste Q		Programm beenden

Fotos wiederherstellen

sucht nach Headern von Bildern auf den Datenträger, unterstützt FAT, NTFS, Ext2, Ext3, HFS+

photorec

Photorec Projekt

Seitenanfang

Linux Terminalserver

am Beispiel mit Ubuntu müssen die folgende Pakete nachinstalliert werden.
tftpd-hpa
portmap
nfs-kernel-server
nfs-common
netkit-inetd
dhcp3-server
libwww-perl

dann von www.ltsp.org das Paket ltsp-utils laden und installieren es steht als .deb und .rpm zur verfügung.

ltspadmin

unter "Configure the installer options" einen möglichen Proxy für den Internetzugriff einstellen.
dann auf Install/Update LTSP Packages mit der Taste A alle Pakete auswählen, mit Q die Auswahl beenden und die Pakete herunterladen.
unter "Configure LTSP" wird der Terminalserver eingerichtet.
Runlevel anpassen bei Debian 2 sonst 3 für Text und 5 für Grafik
der ltspadmin erstellt eine passende DHCP Konfiguration unter Punkt3 der Konfiguration und speichert diese in /etc/dhcp3/dhcpd.conf.sample diese Datei muss noch nach dhcpd.conf umbenannt werden.
Die Option "domain-name" muss noch angepasst werden z.B. local.tld
Option "domain-name-server" den DNS des Netzes eintragen.
"option-router"
dhcpd.conf noch um den Eintrag erweitern, um den Client Namen, fixe IP und das Image zuzuweisen.

group	{
	use-host-decl-names on;
	host diskless1 {
	 hardware ethernet 00:0C:22:22:B2:2D;
	 fixed-address 192.168.2.150;
	 filename "/lts/2.6.17.8-ltsp-1/pxelinux.0";
	}
	host diskless2 {
	 hardware ethernet 00:0C:33:33:B3:3D;
	 fixed-address 192.168.2.151;
	 filename "/lts/2.6.17.8-ltsp-1/pxelinux.0";
	}
}

in der /etc/inetd.conf die Konfiguration für den tftp Daemon anpassen

tftp dgram udp wait root /usr/sbin/in.tftpd -s /tftpboot

Der TFTP Daemon stellt das PXE-Image bereit.
als nächstes ist der Portmapper zu konfigurieren, dazu im LTSPAdmin die Option 10 "Create /etc/exports entries" nutzen.

/opt/ltsp                 192.168.2.0/255.255.255.0(ro,no_root_squash,sync)
/var/opt/ltsp/swapfiles   192.168.2.0/255.255.255.0(rw,no_root_squash,async)

- alle exportierten Verzeichnisse anzeigen

showmount -e

- im "ltspadmin" im Punkt 7 "XDMCP configuration" den Grafiklogin konfigurieren.
hierbei wird die Datei /etc/gdm.gdm.conf angepasst, jetzt noch den X-Server neustarten mit

/etc/init.d/gdm restart

- die Konfigurationen der Clients werden Zentral in /opt/ltsp/i386/etc/lts.conf gespeichert.
- den SyslogDaemon anpassen, das er Meldungen der Clients annimmt /etc/init.d/sysklogd der Parameter

SYSLOGD="-r -u syslog"

dannach den Daemon neustarten.

Seitenanfang

PXE Boot

Wiki
syslinux Projekt
Grub Projekt
Linux TerminalServe Projekt
Diskless Remote Boot in Linux

PXE Boot mit DHCP Server

# /etc/dhcp3/dhcpd.conf
# DHCP Server Parameter
#
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.20 192.168.1.30;
ddns-update-style		none;
default-lease-time		3600;
max-lease-time			4800;
option subnet-mask		255.255.255.0;
option domain-name-servers	192.168.1.1;
option routers			192.168.1.1;
option domain-name		"doamin.tld";

filename "pxelinux.0";

class "DRBL-Client" { 
match if 
(substring(option vendor-class-identifier, 0, 9) = "PXEClient");
	}

# TFTP Server Einstellungen
subnet 192.168.1.0 netmask 255.255.255.0 {
	option subnet-mask  255.255.255.0;
	option routers 192.168.1.1;
	next-server 192.168.1.2;

# TerminalClients Spezielle Einstellungen
host terminal001 {
	hardware ethernet 00:00:5a:70:c2:71;
	fixed-address 192.168.2.20;
	option host-name "terminal001";
	filename "pxelinux.0";
	}
}