FreeBSD härten

Einleitung

Willkommen zu unserer FreeBSD Härtungsanleitung. Obwohl FreeBSD standardmäßig ziemlich sicher und konservativ ist, gibt es genug, was Sie tun können, um die Sicherheit Ihres FreeBSD-Systems über das Standardniveau hinaus zu verbessern. Darin liegt der Schwerpunkt dieses Howtos.

Das System härten

1. /etc/login.conf

Ändern Sie die Passwort-Hashing-Funktion von MD5 auf Blowfish:

:passwd_format=blf:\

Erstellen Sie nun die Login-Datenbank neu:

# cap_mkdb /etc/login.conf

2. /etc/sysctl.conf

kern.securelevel=2
security.bsd.see_other_uids=0
security.bsd.stack_guard_page=1
net.inet.ip.random_id=1

3. /etc/periodic.conf

daily_clean_tmps_enable="YES".

4. Einrichtung und Aktivierung der Firewall

Ich empfehle, den pf-Paketfilter zu verwenden, den FreeBSD von OpenBSD erhalten hat. Es ist eine gute Vorgehensweise, nur auf einer Schnittstelle zu filtern. Typischerweise das externe.

root@bsdbox:/root # vi /etc/pf.conf # Regelsatz bearbeiten
root@bsdbox:/root # pfctl -nf /etc/pf.conf # test ruleset
root@bsdbox:/root # pfctl -f /etc/pf.conf # Regelsatz anwenden
root@bsdbox:/root # pfctl -e # firewall aktivieren

5. Kernel-Sicherheit

Um das Firewall-Regelset in Beton zu gießen, führen Sie sysctl kern.securelevel=3 in der Shell aus. Dadurch wird verhindert, dass der Kernel das Firewall-Regelset einmalig in der Sicherheitsstufe 3 überschreibt. Um diese Einstellung dauerhaft zu erhalten, fügen Sie die Einstellung zu der Datei /etc/sysctl.conf hinzu und die Einstellung wird beim Hochfahren automatisch angewendet.

root@bsdbox:/root # echo 'kern.securelevel=3' >> /etc/sysctl.conf

Software-Sicherheit

6. Überwachung von Sicherheitsupdates installierter Ports

Installieren Sie Portaudit aus der Ports-Sammlung, um Ihren installierten Port zu überwachen, wenn eine Sicherheitskorrektur erforderlich ist.

root@bsdbox:/root # cd /usr/ports/ports/ports-mgmt/portaudit
root@bsdbox:/usr/ports/ports-mgmt/portaudit # make install clean clean

7. Wissen, welche tcp- und udp-Ports offen sind.

FreeBSD hat standardmäßig keine Anwendungen, die Ports öffnen, sondern einen Web- und/oder E-Mail-Service, was sich ändert. Um zu wissen, welche Ports von welchem Prozess geöffnet werden, verwenden Sie den Befehl sockstat.

root@bsdbox:/root # sockstat -4l
BENUTZERBEFEHL PID FD PROTO LOKALE ADRESSE AUSLANDSADRESSE    

ungebunden ungebunden ungebunden 7620 5 udp4 127.0.0.0.1:53 :
ungebunden ungebunden 7620 6 tcp4 127.0.0.0.1:53 :
root sendmail 831 3 tcp4 127.0.0.0.1:25 :
root sshd 803 4 tcp4 :22 :
root syslogd 677 7 udp4 :514 :

sockstat -4l zeigt lauschende IPv4-Sockel an. Sie können auch sockstat -6l verwenden, um lauschende IPv6-Sockel oder sogar nur sockstat -l für IPv4- und IPv6-Sockel anzuzeigen.

Hier in meinem Beispiel können ungebundene und sendmail nicht aus dem Netzwerk erreicht werden, da die Dienste an localhost (127.0.0.0.1) gebunden sind, aber sshd und syslogd könnten erreicht werden. Hängt von Ihren Firewall-Regeln ab. Überprüfen Sie Ihr System

Für weitere Ratschläge können Sie ein Open-Source-Sicherheitsaudit-Tool wieLynis installieren und ausführen.

# pkg install security/lynis
root@bsdbox:/root # lynis

Wussten Sie schon?

Wusstest du das HardenedBSD Projekt? Dies ist ein Nebenprojekt, das sich auf die Sicherheit von FreeBSD konzentriert, indem es ASLR und DEP zu FreeBSD bringt. Bis ein kompletter Patch fertig gestellt, überprüft und von den FreeBSD-Betreuern akzeptiert ist, wird viel Zeit vergehen. Ich empfehle dir, beim Testen von HardenedBSD zu helfen und deine Erfahrungen mit der Community zu teilen. Feedback

Feedback und Input sind ausdrücklich erwünscht. Lasst mich wissen, was ihr denkt, was fehlt, was ich hinzufügen sollte oder auch euch gefallen hat und was hilfreich war.