BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Passwortliste generieren

Möchte man eine Liste mit zufälligen Passwörtern generieren, so hilft folgendes Skript weiter:

#!/bin/sh
dd if=/dev/random bs=2000 count=5 | tr -cd "[:alnum:]" | fold -w 10 | pr -7 -t | pr -t -n3

Auf OpenBSD muss /dev/urandom anstatt von /dev/random verwendet werden.

Wem die generierten Passwörter zu viele Umlaute und Ähnliches (z.B. ëÃÃò8IÎ39) besitzen, der kann "[:alnum:]" durch eine konkrete Liste mit den möglichen Zeichen ersetzen: z.B. tr -cd abcdfeghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW0123456789!?,.:

Dieser Artikel wurde von GS eingesandt. Danke!

Comments (1)  Permalink

SSH nur mit Public Key Authentifizierung erlauben

Aus Sicherheitsgründen kann man das Einloggen per SSH nur noch mit Public-Key Authentifizierung erlauben. Dazu muss zuerst ein Schlüsselpaar erzeugt werden:

# ssh-keygen -t rsa

Es empfiehlt sich eine Passphrase für den Schlüssel zu setzen. Danach kann der Public-Key auf den Rechner geladen werden:

# cd ~/.ssh && cat id_rsa.pub | ssh <Benutzer>@<Rechner> "cat >> .ssh/authorized_keys"

Nun muss die sshd.conf angepasst werden. Diese befindet sich sowohl auf FreeBSD, als auch auf OpenBSD unter /etc/ssh/sshd_config.

# echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
# echo "PasswordAuthentication no" >> /etc/ssh/sshd_config

Nun muss der SSH-Daemon neu gestartet werden. Auf FreeBSD wird dies wie folgt gemacht:

# /etc/rc.d/sshd restart

Auf OpenBSD kann dies so gemacht werden:

# kill -HUP `ps -ax | grep sbin/sshd | grep -v grep | awk '{print $1}'`

Nun kann man sich nur noch mit der Public-Key Authentifizierung anmelden. Sollte man allerdings seinen Private-Key verlieren, so hat man sich per SSH aus dem Rechner ausgesperrt. Es lohnt sich also eine Sicherheitskopie von seinem Private-Key (~/.ssh/id_rsa) an einem sicheren Ort aufzubewahren.

Comments (3)  Permalink

Treppeneffekt beim Einfügen von Text im vi verhindern

Fügt man Text mittels Copy/Past in den vi ein, kann es zu einem sogenannten Treppeneffekt kommen, dass heisst der Text wird in jeder Zeile weiter eingerückt. Um dies zu verhindern, muss vor dem Einfügen das automatische Einrücken deaktiviert werden.

Das automtische Einrücken rückt die nächste Zeile so wie die vorhergehende automatisch ein. Dies ist normalerweise auch sehr nützlich, nur beim Einfügen von Text ist es störend.

Zuerst muss man sich im Kommandomodus befinden (dies erreicht man, indem man die Esc-Taste drückt) und danach mit dem Doppelpunkt in den ex Modus wechselt. Anschliessend lässt sich mit set noai das automatische Einrücken deaktivieren. Danach kann man den Text eingefügen. Das automatische Einrücken wird nach dem Einfügen mit set ai im ex Modus wieder aktiviert.

Related Entries:
Rechtschreibprüfung im vi
vi Fenster teilen
Abkürzungen im vi benutzen
vi Makros benutzen
vi Kurzreferenz
Comments (3)  Permalink

ISO-Image erstellen

Möchte man Daten auf eine CD brennen, so muss zuerst ein ISO-Image erstellt werden. Ein ISO-Image kann mit mkisofs(8) erstellt werden. mkisofs befindet sich im sysutils/cdrtools Port. Zuerst müssen alle Daten, die später im Image vorhanden sein sollen, in ein Verzeichnis kopiert werden. Danach kann aus diesem Verzeichnis ein Image erstellt werden:

# mkisofs -o <Name des Images> <Pfad zu Verzeichnis mit Daten>

Wird die CD später mit einem unixoiden Betriebssystem verwendet, so empfiehlt es sich noch die -r Option zu verwenden, damit die Rock Ridge Erweiterung aktiviert wird, und die Dateirechte und der Besitzer auf vernünftige Werte gesetzt werden.

Soll die CD mit Windows verwendet werden, so sollte die Joliet Erweiterung mit der -J Option aktiviert werden. Werden Dateinamen die länger als 64 Zeichern sind verwendet, so kann die -joliet-long Option zusätzlich verwendet werden.

Im folgenden Beispiel wird der Inhalt von /var/backups in ein Image namens backup.iso gepackt und die Rock Ridge Erweiterung wird aktiviert:

# mkisofs -r -o backup.iso /var/backups

Möchte man danach den Inhalt des Images nochmals ansehen, so kann das Image wie folgt gemountet werden:

# mdconfig -a -t vnode -f <Pfad zu Image> -u 0
# mount -t cd9660 /dev/md0 /mnt/

Nun ist der Inhalt unter /mnt sichtbar. Das Image kann nun wie folgt wieder geunmountet werden:

# umount /mnt/
# mdconfig -d -u 0

Jetzt kann das ISO-Image mit burncd(8) gebrannt werden.

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

NSSWITCH(nss_method_lookup): nis, group_compat, endgrent, not found

Befinden sich in /var/log/debug.log und /var/log/cron folgende Fehlermeldungen:

Oct 15 13:01:00 fenchurch cron[62903]: NSSWITCH(nss_method_lookup): nis, group_compat, setgrent, not found
Oct 15 13:01:00 fenchurch cron[62903]: NSSWITCH(nss_method_lookup): nis, group_compat, endgrent, not found
Oct 15 13:01:00 fenchurch cron[62903]: NSSWITCH(nss_method_lookup): nis, passwd_compat, endpwent, not found
Oct 15 13:02:00 fenchurch cron[64716]: NSSWITCH(nss_method_lookup): nis, group_compat, setgrent, not found
Oct 15 13:02:00 fenchurch cron[64716]: NSSWITCH(nss_method_lookup): nis, group_compat, endgrent, not found
Oct 15 13:02:00 fenchurch cron[64716]: NSSWITCH(nss_method_lookup): nis, passwd_compat, endpwent, not found

So kann der Inhalt der /etc/nsswitch.conf in Folgenden geändert werden, damit diese Meldungen verschwinden:

group: files
hosts: files dns
networks: files
passwd: files
shells: files
Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

Festplatte auf Fehler überprüfen

Möchte man eine Festplatte überprüfen, zum Beispiel weil sie komische Geräusche von sich gibt oder man Einträge in den Logdateien findet, die auf ein Problem mit der Festplatte hin deuten, so helfen einem die smartmontools weiter.

Auf FreeBSD und OpenBSD findet man die smartmontools in den Ports unter sysutils/smartmontools.

Um die Festplatte zu prüfen, braucht man die device-Bezeichnung der Festplatte. Diese findet man zum Beispiel mit mount heraus. Auf FreeBSD beginnen IDE/ATA-Platten mit ad, SCSI-Platten mit da. Auf OpenBSD beginnen IDE/ATA-Platten mit wd, SCSI-Platten mit sd.

Um Informationen über die Festplatte anzuzeigen, kann die -a Option verwendet werden. Folgendes Beispiel zeigt auf OpenBSD die Informationen von wd0. Wichtig auf OpenBSD ist das c nach der Bezeichnung, welches auf die ganze Festplatte zeigt:

# smartctl -a /dev/wd0c

Um einen short-Test auf ad0 unter FreeBSD ausführen zu lassen, kann man die -t short Option verwenden. Dieser Test kann im laufenden Betrieb durchgeführt werde.

# smartctl -t short /dev/ad0
smartctl version 5.36 [i386-portbld-freebsd6.1] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Sat Oct 14 14:38:43 2006

Use smartctl -X to abort test.

Dieser Test geht nur einige Minuten und danach kann das Ergebnis wie folgt betrachtet werden:

# smartctl -l selftest /dev/ad0
smartctl version 5.36 [i386-portbld-freebsd6.1] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 4090 -

Dieser Test verlief ohne Fehler, danach kann ein ausführlicherer Test gestartet werden. Dieser dauer allerdings einiges länger, lässt sich aber auch im laufenden Betrieb durchführen:

# smartctl -t long /dev/ad0
smartctl version 5.36 [i386-portbld-freebsd6.1] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 55 minutes for test to complete.
Test will complete after Sat Oct 14 15:44:09 2006

Use smartctl -X to abort test.

Ist der Test beendet, kann das Ergebnis gleich wie beim short-Test betrachtet werden.

# smartctl -l selftest /dev/ad0
smartctl version 5.36 [i386-portbld-freebsd6.1] Copyright (C) 2002-6 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 4091 -
# 2 Short offline Completed without error 00% 4090 -

Natürlich gibt es keine Garantie, wenn mit smartctl(8) keine Fehler gefunden werden, dass mit der Festplatte alles in Ordnung ist. Findet man allerdings Fehler sollte man sich langsam gedanken über eine neue Platte machen.

 Permalink

Eine TCP-Verbindung trennen

Manchmal möchte man aus gewissen Gründen eine TCP-Verbindung trennen, zum Beispiel weil eine SSH oder FTP-Sitzung nicht sauber beendet worden ist. Dazu muss man zuerst herausfinden, welche Verbindung man kappen möchte. Dies findet man mit fstat auf OpenBSD oder sockstat -c auf FreeBSD heraus. Um die Verbindung zu beenden, braucht man die IP-Adresse und den TCP-Port vom Absender und dem Zielrechner.

Folgendermassen wird dann mit tcpdrop(8) eine Verbindung getrennt:

# tcpdrop <Lokale IP-Adresse> <Lokaler TCP-Port> <IP-Adresse des Benutzers> <TCP-Port>

Möchte man nun auf FreeBSD die SSH-Verbindung vom test-Benutzer trennen, muss man zuerst die benötigten Daten herausfinden und kann danach die Verbindung trennen:

# sockstat -c | grep sshd
test sshd 51960 3 tcp4 10.0.0.2:22 10.0.0.155:52711
# tcpdrop 10.0.0.2 22 10.0.0.155 52711

Auf OpenBSD findet man die benötigten Daten wie folgt:

# fstat | grep 'sshd.*internet.*<--'
test sshd 19075 5* internet stream tcp 0xd694bc84 10.0.0.1:22 <-- 10.0.0.155:53325

tcpdrop befindet sich sowohl in FreeBSD als auch in OpenBSD im Basissystem.

 Permalink
1-7/7