Die ist Teil 2 der HomeServer Reihe. Natürlich kann das auch alles bei einem normalen Scientific Linux 6, CentOS 6 oder RedHat Enterprise Linux 6 Installation angewendet werden um es zu sichern.
Unnötige Dienste abschalten
Folgende Dienste brauchen wir nicht und können Abgeschaltet werden:
chkconfig bluetooth off
Durch die Minimalinstallation ist die Liste der aktivierten Dienste angenehm überschaubar.
Anpassen der IPv4 Settings
Um die IPv4 Einstellungen anzupassen fügen wir in die Datei /etc/sysctl.conf folgende Zeilen ein:
net.ipv4.icmp_ignore_bogus_error_messages=1
kernel.exec-shield=1
kernel.randomize_va_space=1
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.all.accept_source_route=0
net.ipv4.icmp_echo_ignore_broadcasts=1
Abschalten des Reboot bei STRG + ALT + ENTF
Wer kennt es nicht von Windows, “Drücken Sie STRG + ALT + ENTF zum Anmelden”, das löst unter Linux normalerweise einen Neustart aus, und ist sehr unerwünscht. Damit der Server auch Sicher in der Nähe von Windows Administratoren ist, wird in der Datei /etc/init/control-alt-delete.conf vor der Zeile „exec /sbin/shutdown -r now „Control-Alt-Delete pressed““ ein # einfügen.
Anpassen der FSTAB
Nun werden die Parameter in der Datei /etc/fstab noch angepasst, das sie so aussieht (WICHTIG: nur die Parameter “defaults” modifizieren, auf keinen Fall etwas mit “/” ändern oder die Zahlen. Zeilen in denen nichts geändert werden muss, lasse ich hier weg!!!)
UUID=94363183-fcdc-4297-838c-ff7545cecb5c /boot ext4 defaults,nosuid,noexec,nodev 1 2
/dev/mapper/vg_hort-lv_home /home ext4 defaults,nosuid,nodev 1 2
/dev/mapper/vg_hort-lv_shares /shares ext4 defaults,nosuid,nodev 1 2
/dev/mapper/vg_hort-lv_var /var ext4 defaults,nosuid,nodev 1 2
/dev/mapper/vg_hort-lv_log /var/log ext4 defaults,nosuid,nodev,noexec 1 2
Password Authentification Managment (PAM)
Damit nicht jeder der auf das System Zugriff hat, wird der Zugriff auf den SuperUser root begrenzt auf Mitglieder der Guppe “wheel”. Dazu wird in der Datei /etc/pam.d/su das “#” aus der Zeile
“#auth required pam_wheel.so use_uid”
entfernt. Wer nicht möchte das die Administratoren das root Kennwort benötigen kann auch das “#” aus der Zeile
“#auth sufficient pam_wheel.so trust use_uid”
entfernen.
Automatisches Abmelden nach 15 Minuten Inaktivität (Auto-Logout)
Hierzu wird eine neue Datei ”/etc/profile.d/autologout.sh” angelegt. In diese Datei wird die Zeile: “readonly TMOUT=900″ eingefügt. Anschließend wird die Datei noch mit dem Befehl: “chmod +x /etc/profile.d/autologout.sh” ausführbar gemacht. Wer den Linuxnutzern die Möglichkeit geben möchte das aufzuheben, der kann das „readonly“ weglassen. Dann kann mit „unset TMOUT“ das Autologout abgeschaltet werden.
Anlegen des persönlichen Adminusers
Bevor wir den SSH Dienst richtig absichern können, wird erst einmal ein persönlicher Benutzer für die Administratoren benötigt. Der wird angelegt mit dem Befehl useradd, die Syntax ist einfach:
useradd -c “KOMMENTAR” -G wheel -m USERNAME
Bei Kommentar können auch Leerzeichen, Klein- und Großbuchstaben und auch Zahlen verwendet werden. Der Username darf nur aus Kleinbuchstaben und Zahlen bestehen.
Für diesen Benutzer muss noch ein Kennwort mit “passwd USERNAME” erstellt werden.
Anschließen legen wir für den User einen SSH Key an:
ssh-keygen -b 4096 -f FILENAME
Wer Windows benutzen möchte, der kann sich meine älteren Artikel SSH ohne Kennwörter mit Zertifikaten, eine SSH SingleSignOn Lösung anschauen.
>>>!!! Dieser Schritt sollte nicht übersprungen werden, sonst kann sich nach der nächsten Änderung nicht mehr über SSH anmeldet werden !!!<<<
Anpassungen des SSHD
In der Datei /etc/ssh/sshd_config müssen ein paar Zeilen angepasst werden:
Alter Zeileninhalt | Neuer Zeileninhalt |
#PermitRootLogin yes | PermitRootLogin no |
PasswordAuthentication yes | PasswordAuthentication no |
#MaxAuthTries 6 | MaxAuthTries 3 |
Abschalten von USB-Sticks
Wer gerne verhindern möchte das USB-Sticks genutzt werden können, der kann eine neue Datei /etc/modprobe.d/blacklist-usbstorage mit dem Inhalt: “blacklist usb-storage” erstellen.
RKHunter – Der Rootkit Jäger
Das Prgram rkhunter untersucht das System nach bekannten Rootkits und wird im EPEL Repository angeboten. Zum installieren einfach „yum install rkhunter“ eingeben. Danach einfach mal mit „rkhunter –update –propupd –check“ einmal durchlaufen lassen. Finden solle er nichts , aber man kann sehen wir er arbeitet und wie viele Rootkits es für Linux mittlerweile gibt. Allerdings wird er ein paar Warnungen ausgeben, z.B.
- Checking for passwd file changes
- Checking for group file changes
Dies ist beim ersten Scan normal.
- Checking if SSH protocol v1 is allowed
- Checking if SSH root access is allowed
Nach der SSH Konfig ist das nicht richtig. Auch ist ein Root Login nicht möglich, die Meldung kommt, weil RKHunter hier noch alte Parameter im Test verwendet (Siehe /var/log/rkhunter/rkhunter.log).
In der Konfiguration /etc/rkhunter.conf sollten nun noch ein paar Anpassungen gemacht werden:
ALLOW_SSH_ROOT_USER=no
ALLOW_SSH_PROT_V1=0
RKHunter trägt sich automatisch unter /etc/cron.daily/rkhunter ein, und wird so täglich schauen, ob was alles in Ordnung ist.
Logwatch
Logwatch verschickt einmal am Tag eine Zusammenfassung der Logfiles. So hat mal alles wichtige auf einem Blick. Die istallation ist sehr einfach:
yum install logwatch
Grafische Oberfläche oder nicht
Wer sich nicht an dem Bildschirm am Server einloggt, sondern SSH benutzt oder keinen Grafischen Desktop benötigt, der sollte ihn abschalten. Dazu muss in der Datei /etc/initab die Zeile: „id:5:initdefault:“ in „id:3:initdefault:“ geändert werden.
Die Sicherheit der Physik
Neben den üblichen Hinweisen zu sicheren Serverräumen (Die hier wohl etwas übertrieben wären) gibt es noch etwas anderes, was oft Vergessen wird. Nach der Installation im BIOS des Computers einstellen das nur von Festplatte gebootet wird, und das BIOS mit einem Kennwort sichern. Bitte auch keine Post-IT mit Kennwörtern auf die Server kleben!
Abschließende Worte
Natürlich sollte man noch viele weitere Dinge beachten, aber ich denke die würden hier den Rahmen sprengen. Ich empfehle auf jeden Fall die Lektüre der weiteren Quellen. Auch sollte man schauen wie man die Anwendungen auf dem System möglichst sicher bekommt. Auch denkbar wäre bei einem Webserver zum Beispiel /var/www im nur lesenden Zugriff zu mounten. Ihr seht, es gibt noch viele Möglichkeiten.
Im Nächsten Teil kümmern wir uns dann um die Überwachung der Festplatten, des RAID und der Weiterleitung aller wichtigen Meldungen an den Administrator per E-Mail.
Updates
- Logwatch eingefügt.