Linux Sicherheit
Speichermedien zuverlässig löschen
-
dd if=/dev/null of=/dev/sda Überschreibt die Platte mit Nullen.
-
dd if=/dev/null of=file.dat bs=1Mx1024 Schreibt eine Datei mit Nullen (Größe 1M x 1000 = 1GB) in den aktuellen Ordner, bzw.
-
dd if=/dev/urandom | pv | dd of=file.dat bs=1M Schreibt Zufallsdaten und gibt dabei den Durchsatz an (pv).
-
badblocks -c 10240 -wsvt random /dev/sda Überschreibt die Platte mit Werten, die keine guten Zufallsdaten sind. Schneller als /dev/urandom!
Unnötige Dienste deaktivieren
Bluetooth
-
hciconfig hci0 down Schaltet das Interface aus.
-
echo disable > /proc/acpi/ibm/bluetooth Setzt den korrekten Status (für ThinkPads)
Offene Ports
-
netstat -npl Listet alle Ports auf, auf denen Dienste lauschen.
System-Hardening
Users and logins
| Datei |
Parameter |
empfohlene Einstellung |
Standardeinstellung |
/etc/adduser.conf |
DIR_MODE |
0700 |
0755 |
/etc/login.defs |
SULOG_FILE |
/var/log/sulog |
auskommentiert |
| |
PASS_MAX_DAYS |
365 |
9999 |
/etc/ssh/sshd_config |
PermitRootLogin |
no |
|
| |
MaxAuthTries |
5 |
5 |
| |
AllowUsers |
andreas georg |
nicht gesetzt (Liste mit Leerzeichen separiert!) |
Webserver
Mountoptionen in /etc/fstab
Vorschlag:
-
nosuid Für /boot, /home, /opt, /var
-
noexec Für /boot (nicht für /var!)
Weitere Informationen:
Krypto
Passwörter erzeugen und verwalten
Praktische Funktionen zur Erzeugung von "zufälligen" Passwörtern:
-
dd if=/dev/urandom of=<keyfile> bs=512 count=4 Speichert einen Pseudo-Zufallsstring in keyfile.
-
tail -f /dev/urandom > <datei> Speichert einen Pseudo-Zufallsstring in datei.
-
md5sum <datei> Berechnet die md5 -Checksumme einer Datei.
Ein netter Service zum Vergleich von Passwortsicherheit:
HammerOfGod 
Passwörter merkt man sich nicht:
http://www.keepassx.org/
Festplatte verschlüsseln
Siehe eigene Seite:
Festplattenverschlüsselung
Dateien verschlüsseln
Hier ist das Programm
aespipe zu empfehlen.
SSH
Ein gutes Tutorial zur Einrichtung von Public-Key-Authentication für
ssh:
http://sial.org/howto/openssh/publickey-auth/
Die wichtigsten Befehle:
-
ssh-keygen -t rsa -b 1024 Erzeugt ein Schlüsselpaar vom Typ rsa (alternativ auch dsa möglich) mit 1024 Bit Schlüssellänge.
-
echo rsa_key > ~/.ssh/authorized_keys Trägt den öffentlichen (!) Teil des Schlüssels serverseitig ein. Evtl. muss noch in der ~/.ssh/ssh_config die Public-Key-Authentifizierung aktiviert werden:
Host *
RSAAuthentication yes
PasswordAuthentication no
UsePAM no
# IdentityFile ~/.ssh/rsa_key_new
- Global wird der ssh-Login in der Datei
/etc/ssh/sshd_config configuriert. Hier sollte für reine Public-Key-Authentifizierung stehen:
PermitRootLogin no
RSAAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
PermitEmptyPasswords no
UsePAM no
-
ssh-keygen -f /home/andreas/.ssh/known_hosts -R <server> Entfernt einen Fingerprint aus der lokalen Konfiguration.
OpenSSL
Die Erzeugung von Zertifikaten unter Linux funktioniert z.B. so (vgl.
http://www.html-world.de/program/apache_9.php 
):
-
openssl genrsa -out apache.key -des3 2048 Erstellt einen RSA-Schlüssel.
-
openssl req -new -x509 -days 1560 -key apache.key -out apache.crt Erstellt ein selbstsigniertes Zertifikat auf Basis des Schlüssels. Achtung: Der Common Name muss der Domainname des Servers sein!
-
openssl rsa -in apache.key -out apache.pem Wandelt das Zertifikat in eine unverschlüsselte Version für den Einsatz am Server um.
Dann sollte aber das Zertifikat durch das Dateisystem geschützt werden!
#ssl.conf
LoadModule ssl_module modules/mod_ssl.so
Listen 443
#Leichte Beschleunigung bei der SSL Session Cache
SSLSessionCache dbm:/usr/local/apache2/logs/ssl_scache
<VirtualHost _default_:443>
DocumentRoot "/usr/local/apache2/htdocs"
ServerName 192.168.0.11:443
ServerAdmin ServerAdmin@domain1.org
ErrorLog /usr/local/apache2/logs/error_ssl_log
TransferLog /usr/local/apache2/logs/access_ssl_log
# SSL Einschalten
SSLEngine on
# Das Zertifikat für den Server
SSLCertificateFile /usr/local/apache2/conf/server.crt
# Die Schlüsseldatei für den Server
SSLCertificateKeyFile /usr/local/apache2/conf/server.key
# Bereitstellung der Standardvariablen für PHP, SSI und CGI
SSLOptions +StdEnvVars
# Bereitstellung der Standardvariablen für das CGI Verzeichnis
SSLOptions +StdEnvVars
# Eine eigene SSL Logdatei
CustomLog ssl_log "$t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x %b"
</VirtualHost>
PGP for Email
Ein gutes Tutorial zur Erzeugung und Verwendung von PGP-Schlüsseln findet sich unter
http://www.gnupg.org/howtos/de/GPGMiniHowto.html 
.
Firewalls
Rechtemanagement
Cracking
WPA
Hier ist eine Seite, die kommerziell WPA-Keys mit Wörterbuchangriff sucht:
http://www.wpacracker.com 
. Ein vielleicht hilfreicher Blog ist
http://stacksmashing.net/ 
.
Und hier schließlich ein
HowTo
Password-Hashes
Ein guter Artikel zum Thema:
The Gawker desaster
Zip-Archive
Siehe z.B.
fcrackzip. Weitere Infos:
Projekt-Homepage 
oder
Ubuntu-Geeks
Interessante Seiten