Linux
Aus Debacher-Wiki
Weitere kleine Linux-Texte finden sich in meinem Blog: http://www.debacher.de/ublog/category/linux/
ssh-Anmeldung ohne Passwort
Im lokalen Netz muss man sich häufiger mal mit anderen Rechnern verbinden und hat dann nicht immer Lust ständig ein Passwort angeben zu müssen. Man kann bei SSH auch ein Schlüsselpaar erzeugen und auf jedem der beteiligten Rechner einen der Schlüssel hinterlegen.
Zuerst wird das Schlüsselpaar erzeugt:
ssh-keygen -t rsa
Man beantwortet alle Fragen einfach mit enter, auch die nach der Passphrase. Gibt man ein Passphrase ein, so wäre der Beabsichtigte Effekt hinfällig, dann müsste man zur Anmeldung eben diese eingeben.
Nun muss man die Datei .ss/id_rsa.pub auf den Zielrechner in das Homeverzeichnis des Zielaccounts kopieren und dort umbenennen in
.ssh/authorized_keys2
Danach sollte man sich per ssh auf dem Rechner anmelden können ohne nach einem Passwort gefragt zu werden. Natürlich senkt man mit diesem Verfahren die Sicherheit.
Google Mail mit Fetchmail abrufen
Der Mail-Dienst von Google bietet einige interessante Optionen, u.a. ein wachsendes Speichervolumen von zur Zeit etwa 3 GByte. Außerdem sind die Spam-Funktionen ganz hilfreich. Google bietet die Möglichkeit die Mail auch per POP über SSL abzurufen. Eine Beschreibung für die Konfiguration mittels fetchmail habe ich unter http://download.gna.org/hpr/fetchmail/FAQ/gmail-pop-howto.html gefunden und angepasst.
Im Prinzip muss man nur in der .fetchmailrc folgende Eintragungen vornehmen:
poll pop.gmail.com with proto POP3 user 'benutzer@googlemail.com' there with password 'geheim' is benutzer here options keep ssl
Ruft man nun mit
fetchmail -v -a
die Mails ab, so sollte die Verbindung schon klappen. Es taucht nun leider das kleine Problem auf, dass Fetchmail das Zertifikat nicht überprüfen kann und daher folgende Fehlermeldungen auftauchen.
fetchmail: 6.2.5 fragt ab pop.gmail.com (Protokoll POP3) um Sa 17 Mär 2007 15:19:03 CET: Abfrage gestartet fetchmail: Herausgeber-Organisation: Equifax fetchmail: Unbekannter Herausgeber-CommonName fetchmail: Server-CommonName: pop.gmail.com fetchmail: pop.gmail.com-Schlüssel-Fingerabdruck: 59:51:61:89:CD:DD:B2:35:94:BB:44:97:A0:39:D5:B4 fetchmail: Warnung: Server-Zertifikat-Überprüfung: unable to get local issuer certificate fetchmail: Herausgeber-Organisation: Equifax fetchmail: Unbekannter Herausgeber-CommonName fetchmail: Server-CommonName: pop.gmail.com fetchmail: Warnung: Server-Zertifikat-Überprüfung: certificate not trusted fetchmail: Herausgeber-Organisation: Equifax fetchmail: Unbekannter Herausgeber-CommonName fetchmail: Server-CommonName: pop.gmail.com fetchmail: Warnung: Server-Zertifikat-Überprüfung: unable to verify the first certificate
Im Prinzip können hier zwei Probleme auftauchen, einerseits ist das Zertifikat von pop.gmail.com nicht bekannt, das kann man aber der Fehlermeldung entnehmen. Andererseits kann es sein, dass kein Zertifikat der Authentifizierungsstelle Equifax vorhanden ist.
Das erste Problem lässt sich recht einfach lösen, indem das Zertifikat in die .fetchmailrc mit übernommen wird.
poll pop.gmail.com with proto POP3 user 'benutzer@googlemail.com' there with password 'geheim' is benutzer here options keep ssl sslfingerprint '59:51:61:89:CD:DD:B2:35:94:BB:44:97:A0:39:D5:B4' sslcertck sslcertpath /etc/ssl/certs
Hinweis: Benutzername und Passwort müssen natürlich angepasst werden. Außerdem darf man bei Goggle nur alle 300 Sekunden die Mail abrufen, sonst wird man eine Weile blockiert. Darauf muss man beim Testen Rücksicht nehmen.
Ob das Zertifikat von Equifax vorhanden ist kann man im OpenSSL-Verzeichnis für die Zertifikate überprüfen. Bei SuSE-Systemen liegen die Zertifikate im Verzeichnis /etc/ssl/certs. Dort sollten sich zwei Dateien finden lassen, einerseits Equifax-root1.pem und zusätzlich ein Link auf diese Datei mit dem Namen 594f1775.0.
Sollten diese Dateien nicht vorhanden sein, so kann man sie sich mit folgenden Schritten erzeugen:
# cd /etc/ssl/certs # wget -O Equifax_Secure_Certificate_Authority.pem https://www.geotrust.com/resources/root_certificates/certificates/Equifax_Secure_Certificate_Authority.cer # chmod 644 Equifax_Secure_Certificate_Authority.pem # openssl x509 -in Equifax_Secure_Certificate_Authority.pem -fingerprint -subject -issuer -serial -hash -noout MD5 Fingerprint=67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4 subject= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority issuer= /C=US/O=Equifax/OU=Equifax Secure Certificate Authority serial=35DEF4CF 594f1775 # c_rehash . # file 594f1775.* 594f1775.0: symbolic link to `Equifax_Secure_Certificate_Authority.pem'
Damit die Mail abgerufen werden kann, muss in Google-Mail unter Einstellungen -> Weiterleitung und POP der Download aktiviert sein, sonst lehnt Goggle-Mail die Verbindung ab.
Picasa und SuSE10.1/10.2
Für die Verwaltung und Bearbeitung von digitalen Fotos ist Picasa http://picasa.google.com/linux/ aus dem Hause Google ein tolles Werkzeug. Auf Rechnern mit SuSE 10.1 gibt es aber das Problem, dass Picasa sich zwar installieren, aber nicht starten lässt. Es gibt auch keinerlei Fehlermeldungen.
Eine einfache Abhilfe liefert der Start in der Art:
ulimit -v unlimited && picasa
Das Problem scheint also in den ulimit-Einstellungen zu liegen. Bei Gelegenheit muss ich mal analysieren, welches Limit zu eng ist, aber erst einmal geht es so.
Mit OpenSUSE 10.2 und Picasa 2.2 ist die Situation identisch. Mit der Anpassung per ulimit läuft Picasa dann aber. Sollte es dennoch Probleme geben kann es sinnvoll sein die Benutzer-Konfiguration zu löschen, also das Verzeichnis .picasa.
Rechner clonen über das Netz
1. Installation des Masterrechners
Partitionierung:
- hda1 20GByte WindowsNTFS
- hda2 1GB Swap
- hda3 20GByte Linux Reiserfs
Installation von Windows und allen Updates, sowie den Deployment-Tools, vor allem Sysprep. Dann sysprep.inf anpassen und den Sysprep-Ordner nach c:\sysprep kopieren. Sysprep starten mit den Schaltern
-mini -reseal -quiet
Informationsquellen zu sysprep:
Linux Installation mit allen Komponenten.
2. Sichern des Masterrechners
Mit einer aktuellen Knoppix booten und die Netzwerkanbindung mit Hilfe von Knoppix realisieren. Normalerweise sollte die Netzwerkkarte über DHCP aktivierbar sein. Dann eine passende Freigabe auf dem Server mounten (muss in der Datei /etc/exports bereits vorhanden und schreibbar sein)
mount -t nfs server:/freigabe /mnt/test
Der Mount-Befehl kann sehr lange dauern, mehrere Minuten. Vermutlich gibt es hier irgendwelche Probleme mit der Namensauflösung. Aber irgendwann ist der Prompt wider da und die Verbindung steht.
Nun kann man die Partionierung sichern mittels:
sfdisk /dev/hda -d > /mnt/test/hda.part
Es macht Sinn auch den MBR zu sichern:
dd if=/dev/hda of=/mnt/test/hda.mbr bs=512 count=1
Anschließend mit Partimage die Partitionen 1 und 3 sichern. Das Programm partimage zeigt die vorhandenen Partitionen an und erlaubt die Angabe eines Dateinamens für die Sicherung. Es bietet sich an ein einfaches System zu nutzen, z.B. hda1 nach /mnt/test/hda.part1 Die Swap-Partition muss nicht gesichert werden.
3. Einspielen der Sicherung auf einem Rechner
Den Rechner mit einer Knoppix bootenund ins Netz einbinden. Dann über das Netz wieder das NFS-Verzeichnis mounten und mittels
sfdisk –force /dev/hda < /mnt/test/hda.part
die Partitionierung einspielen.
Denkbar wäre es auch den MBR des Masters zu sichern und einzuspielen:
dd if=/dev/hda of=hda.mbr bs=512 count=1
leider landen die Dateien nicht an identischen Positionen, Grub startet auch dann noch nicht.
Dann Knoppix neu booten.
Formatieren der Swap Partition
mkswap /dev/hda2
dann das NFS-Verzeichnis mit der Sicherung mounten und die Image-Datei mit partimage einspielen. Nun die Hardware-Informationen entfernen, falls nicht bei der Image-Erstellung geschehen:
rm etc/sysconfig/hardware/hwcfg-bus-pci*
rm etc/sysconfig/network/ifcfg-eth*
Auf Systemen mit SuSE10 muss man auch die Zeilen mit den Namen der Netzwerkkarten in der Datei
/etc/udev/rules.d/30….
entfernen. Auf keinen Fall sollte ypbind versuchen zu starten, das dauert lange ohne Netzwerk als ggf. die Dateien etc/init.d/rc*.d/S12ypbind entfernen.
Nach der Installation die Laufwerke umounten und den Rechner rebooten. Falls grub schon installiert ist kommt beim Boot zumindest die Grub-Shell, ansonsten über SuSE-DVD das installierte System booten.
Nach dem Start Grub richtig installieren:
grub < /etc/grub.conf
Nach der Installation von Grub die Netzwerkkarte aktivieren mittels YaST. Man muss dazu nur den Menüpunkt für die Netzwerkkarte aufrufen und kann ihn gleich wieder verlassen. Dann ein Neustart des Rechners. Falls das Netzwerk einwandfrei startet ypbind aktivieren mit:
inssev ypbind rcypbind start
Der Rechner sollte nun unter Linux laufen.
Kleinigkeiten
Festplatten ueberwachen
smartmontools (siehe linuxuser 10/2004 S 56)
smartctl -A /dev/hda smartctl -H /dev/hda
Anzeige benutzer Ports (sockets)
socklist
Bildschirmschoner abschalten
setterm -blank 0 die Zeitangabe bis zum Abschalten
im grafischen Display mit
xset erlaubt die Einstellungen xset s off xset dpms force off schaltet den Bildschirm z.B. ab xset -q zeigt Status xset -dpms schaltet die Stromsparfunktion aus
Proxy mit wget
export http_proxy="http://king:3128/"
oder .wgetrc im Homeverzeichnis anlegen mit:
http_proxy=http://proxy:3128 proxy_user=name proxy_passwd=passwd
find und grep
Suchen und weiterbearbeiten
find /home -name prefs.js -exec ls -la {} \;
Löschen der Cache-Ordner
find /home -name cache -type d -exec rm -rv {} \;
Nie angemeldete Benutzer find /home -name nfs -empty -exec ls -lad {} \;
Postfach durchsuchen
find /home -name Sent -exec grep -iH fuck {} \;
Eingeloggten Benutzer im Netz abschiessen:
kill -9 <pid> stty sane < /dev/tty1 (Konsole 1 restaurieren)
rsync
rsync ist ein sehr nützliches Programm, um ganze Verzeichnisse zwischen Rechnern zu synchronisieren. Es werden nur Dateien zum Zielrechner übertragen, die dort nicht, oder in einer älteren Version vorhanden sind:
rsync -azv -essh /home/ 192.168.1.2:/home
Hier stehen die Parameter für:
- a Archiv Mode
- z Compress
- v Verbose
- e remote Shell, hier SSH
und dann natürlich Quelle und Ziel.
Inkrementelles rsync
In der c't 9/2006 findet sich auf Seite 126 ein interessanter Artikel über inkrementelle Backups mit rsync. Im Artikel geht es zwar um Windows, rsync ist aber ein Standard Linux-Tool. Mit dem Schalter --link-dest kann man ein Verzeichnis angeben, in dem sich das vorherige Backaup befindet. Für alle unveränderten Dateien im aktuellen Backup werden dann nur Hardlinks angelegt, also kaum noch Speicherplatz verbraucht.

