Linux

Aus Debacher-Wiki
Wechseln zu: Navigation, Suche


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.

Links

http://forums.gentoo.org/viewtopic-t-470291-highlight-.html