10 Linux-Härtungstipps für SysAdmins für Anfänger
Linux-Systeme sind von Natur aus sicher und bieten robuste Verwaltungstools. Unabhängig davon, wie gut ein System gestaltet ist, hängt seine Sicherheit vom Benutzer ab.
Anfänger brauchen oft Jahre, um die besten Sicherheitsrichtlinien für ihre Maschinen zu finden. Aus diesem Grund geben wir diese wichtigen Tipps zum Härten von Linux für neue Benutzer wie Sie weiter. Probieren Sie es aus.
1. Erzwingen Sie Richtlinien für sichere Kennwörter
Kennwörter sind die primäre Authentifizierungsmethode für die meisten Systeme. Unabhängig davon, ob Sie ein Heimanwender oder ein Profi sind, ist die Durchsetzung solider Passwörter ein Muss. Deaktivieren Sie zunächst leere Kennwörter. Sie werden nicht glauben, wie viele Leute sie noch benutzen.
awk -F: '($2 == "") {print}' /etc/shadow
Führen Sie den obigen Befehl als root aus, um anzuzeigen, welche Konten leere Kennwörter haben. Wenn Sie jemanden mit einem leeren Passwort finden, sperren Sie den Benutzer sofort. Sie können dies mithilfe der folgenden Schritte tun.
passwd -l USERNAME
Sie können auch die Kennwortalterung einrichten, um sicherzustellen, dass Benutzer keine alten Kennwörter verwenden können. Verwenden Sie dazu den Befehl chage von Ihrem Terminal aus.
chage -l USERNAME
Dieser Befehl zeigt das aktuelle Ablaufdatum an. Verwenden Sie den folgenden Befehl, um das Ablaufen des Kennworts nach 30 Tagen festzulegen. Benutzer können Linux-Kennwortmanager verwenden, um Online-Konten sicher zu halten .
chage -M 30 USERNAME
2. Sichern Sie wichtige Daten
Wenn Sie Ihre Daten ernst nehmen, richten Sie regelmäßige Sicherungen ein. Auf diese Weise können Sie die Daten auch bei einem Systemabsturz schnell wiederherstellen. Die Auswahl der richtigen Sicherungsmethode ist jedoch für die Linux-Härtung von entscheidender Bedeutung.
Wenn Sie ein Heimanwender sind, kann das Klonen der Daten auf eine Festplatte ausreichen. Unternehmen benötigen jedoch ausgefeilte Backup-Systeme, die eine schnelle Wiederherstellung ermöglichen.
3. Vermeiden Sie ältere Kommunikationsmethoden
Linux unterstützt viele Remote-Kommunikationsmethoden. Ältere Unix-Dienste wie Telnet, Rlogin und FTP können jedoch schwerwiegende Sicherheitsprobleme verursachen. Versuchen Sie also, sie zu vermeiden. Sie können sie vollständig entfernen, um die damit verbundenen Sicherheitsprobleme zu verringern.
apt-get --purge remove xinetd nis tftpd tftpd-hpa telnetd
> rsh-server rsh-redone-server
Dieser Befehl entfernt einige weit verbreitete, aber veraltete Dienste von Ubuntu / Debian-Computern. Wenn Sie ein RPM-basiertes System verwenden, verwenden Sie stattdessen Folgendes.
yum erase xinetd ypserv tftp-server telnet-server rsh-server
4. Sichern Sie OpenSSH
Das SSH-Protokoll ist die empfohlene Methode für die Remotekommunikation unter Linux. Stellen Sie sicher, dass Sie Ihre OpenSSH-Serverkonfiguration (sshd) sichern. Weitere Informationen zum Einrichten eines SSH-Servers finden Sie hier .
Bearbeiten Sie die Datei / etc / ssh / sshd_config , um Sicherheitsrichtlinien für ssh festzulegen . Im Folgenden finden Sie einige allgemeine Sicherheitsrichtlinien, die jeder verwenden kann.
PermitRootLogin no # disables root login
MaxAuthTries 3 # limits authentication attempts
PasswordAuthentication no # disables password authentication
PermitEmptyPasswords no # disables empty passwords
X11Forwarding no # disables GUI transmission
DebianBanner no # disbales verbose banner
AllowUsers *@XXX.X.XXX.0/24 # restrict users to an IP range
5. Beschränken Sie die Verwendung von CRON
CRON ist ein robuster Job Scheduler für Linux. Administratoren können damit Aufgaben unter Linux mithilfe der crontab planen . Daher ist es wichtig zu beschränken, wer CRON-Jobs ausführen darf. Mit dem folgenden Befehl können Sie alle aktiven Cronjobs für einen Benutzer ermitteln.
crontab -l -u USERNAME
Überprüfen Sie die Jobs für jeden Benutzer, um herauszufinden, ob jemand CRON ausnutzt. Möglicherweise möchten Sie alle Benutzer außer Ihnen daran hindern, crontab zu verwenden. Führen Sie dazu den folgenden Befehl aus.
echo $(whoami) >> /etc/cron.d/cron.allow
# echo ALL >> /etc/cron.d/cron.deny
6. Erzwingen Sie PAM-Module
Linux PAM (Pluggable Authentication Modules) bietet leistungsstarke Authentifizierungsfunktionen für Apps und Dienste. Sie können verschiedene PAM-Richtlinien verwenden, um die Anmeldung des Systems zu sichern. Die folgenden Befehle beschränken beispielsweise die Wiederverwendung von Kennwörtern.
# CentOS/RHEL
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/system-auth
# Ubuntu/Debian
echo 'password sufficient pam_unix.so use_authtok md5 shadow remember=5' >>
> /etc/pam.d/common-password
Sie beschränken die Verwendung von Passwörtern, die in den letzten fünf Wochen verwendet wurden. Es gibt viele weitere PAM-Richtlinien, die zusätzliche Sicherheitsebenen bieten.
7. Entfernen Sie nicht verwendete Pakete
Durch das Entfernen nicht verwendeter Pakete wird die Angriffsfläche auf Ihrem Computer verringert. Wir empfehlen Ihnen daher, selten verwendete Pakete zu löschen. Sie können alle derzeit installierten Pakete mit den folgenden Befehlen anzeigen.
yum list installed # CentOS/RHEL
apt list --installed # Ubuntu/Debian
Angenommen, Sie möchten das nicht verwendete Paket vlc entfernen. Sie können dies tun, indem Sie die folgenden Befehle als root ausführen.
yum remove vlc # CentOS/RHEL
apt remove vlc # Ubuntu/Debian
8. Sichere Kernel-Parameter
Eine weitere effektive Methode zum Härten von Linux ist das Sichern der Kernelparameter. Sie können diese Parameter mit sysctl oder durch Ändern der Konfigurationsdatei konfigurieren. Im Folgenden finden Sie einige gängige Konfigurationen.
kernel.randomize_va_space=2 # randomnize address base for mmap, heap, and stack
kernel.panic=10 # reboot after 10 sec following a kernel panic
net.ipv4.icmp_ignore_bogus_error_responses # protects bad error messages
net.ipv4.ip_forward=0 # disables IP forwarding
net.ipv4.icmp_ignore_bogus_error_responses=1 # ignores ICP errors
Dies sind nur einige grundlegende Konfigurationen. Sie werden mit Erfahrung verschiedene Arten der Kernelkonfiguration lernen.
9. Konfigurieren Sie iptables
Linux-Kernel bieten über ihre Netfilter-API robuste Filtermethoden für Netzwerkpakete. Sie können iptables verwenden, um mit dieser API zu interagieren und benutzerdefinierte Filter für Netzwerkanforderungen einzurichten. Im Folgenden finden Sie einige grundlegende iptables-Regeln für sicherheitsorientierte Benutzer.
-A INPUT -j REJECT # reject all inbound requests
-A FORWARD -j REJECT # reject traffic forwarding
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT # allow traffic on localhost
# allow ping requests
-A OUTPUT -p icmp -j ACCEPT # allow outgoing pings
# allow established/related connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow DNS lookups
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
# allow http/https requests
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
# allow SSH access
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
10. Protokolle überwachen
Sie können Protokolle verwenden, um Ihren Linux-Computer besser zu verstehen. Ihr System speichert mehrere Protokolldateien für Apps und Dienste. Wir skizzieren hier die wesentlichen.
- /var/log/auth.log — protokolliert Autorisierungsversuche
- /var/log/daemon.log — protokolliert Hintergrund-Apps
- / var / log / debug — protokolliert Debugging-Daten
- /var/log/kern.log — protokolliert Kerneldaten
- / var / log / syslog — protokolliert Systemdaten
- / var / log / faillog — protokolliert fehlgeschlagene Anmeldungen
Beste Linux-Härtungstipps für Anfänger
Das Sichern eines Linux-Systems ist nicht so schwierig wie Sie denken. Sie können die Sicherheit verbessern, indem Sie einige der in diesem Handbuch genannten Tipps befolgen. Mit zunehmender Erfahrung werden Sie mehr Möglichkeiten zur Sicherung von Linux beherrschen.