Linux vServer absichern
Als System Administrator ist es immer wichtiger geworden, Systeme regelmäßig zu aktualisieren, abzusichern und auf Generelle Sicherheit zu achten und diese zu gewährleisten. Gerade deshalb habe ich mich mit meinem Hosting Partner ST-Hosting für dieses Tutorial entschieden, um nochmals generell auf dieses Thema einzugehen und auch Anleitungen zu veröffentlichen. In diesem Beitrag erfährst Du, wie Du deinen Linux vServer/Rootserver absichern kannst gegen Angriffe oder generelle Sicherheitslücken.
Schritt 1: SSH gegen Bruteforce Attacken absichern
Gerade der Zugang zum Rootserver sollte gut abgesichert sein. Sollte man meinen man hat doch kaum Angreifer, so täuscht man sich gewaltig. Denn bereits im Hintergrund versuchen schon beim öffnen des SSH Ports, Angreifer zumeist auch automatische Scan Skripte von den Angreifern, Login versuche zu testen. Damit wir dies unterbinden, werden wir die Anzahl an Login versuchen begrenzen und beim überschreiten dieser Grenze, die IP des Angreifers automatisch mittels Fail2Ban sperren. Zudem ändern wir zur Sicherheit den SSH Port und begrenzen den Traffic für den Rootserver zum Schutz gegen Port Scanning.
# fail2ban installieren
apt-get install fail2ban -y
# Kopiere die Config .conf zu .local
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# Öffne jail.local mit z.B nano
nano /etc/fail2ban/jail.local
# Whitelist IP:
#Suche in der Config mit STRG+W und gebe "ignoreip" und unkommentiere die # weg
ignoreip = 127.0.0.1/8
# Edit:
bantime = 10m #(Sperrt den Nutzer 10 Minuten lang1)
findtime = 600 #(Innerhalb des Zeitraumes wird der Fehlerhafte Login Versuch gemerkt).
maxretry = 5 # Wie viele Versuche dürfen maximal Fehlschlagen?
# Go to [sshd] and put this config
[sshd]
enabled = true # Aktiviert die Regel
port = 22 #your ssh port (default: 22)
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
# Startet fail2ban neu
service fail2ban restart
# Überprüft nun ob Fail2ban aktiv ist siehe Foto.
service fail2ban status
Jetzt wird es spannend: Wir testen in diesem 2 Minuten Video die Funktionalität unserer Setups bei Fail2Ban.
Schritt 2: Sich gegen Port Scanning absichern
Port Scanning macht es den Angreifern möglich, Dienste herauszufinden die auf den Server laufen. Wenn wir hier in dem Fall unseren SSH Dienst Standardmäßig von 22 auf z.B 1254 setzen, so kann der Angreifer mittels Port Scanning versuchen, diesen Port wieder herauszufinden. Zwar würde unsere Fail2Ban dann im Einsatz kommen und den Angreifer bei zu viel Fehlgeschlagenen Login Versuchen wieder aussperren. Doch um jetzt davor einen Riegel zu setzen, werden wir eingehende Anfragen zum Server drosseln und somit das Port Scanning zu verlangsamen oder gar zu verhindern. Hierbei setzen wir auf PortSentry und wir werden natürlich hierbei noch die Regeln auf Permanent setzen um somit den Server dauerhaft abzusichern.
# Wir installieren das Paket portsentry
echo portsentry portsentry/warn_no_block string "" | debconf-set-selections
apt-get install -y portsentry
# Mit dem Befehl sed -i, setzen wir bestimmte Einträge in der portsentry Config
sed -i 's/TCP_MODE="tcp"/TCP_MODE="atcp"/' /etc/default/portsentry
sed -i 's/UDP_MODE="udp"/UDP_MODE="audp"/' /etc/default/portsentry
sed -i 's/BLOCK_UDP="0"/BLOCK_UDP="1"/' /etc/portsentry/portsentry.conf
sed -i 's/BLOCK_TCP="0"/BLOCK_TCP="1"/' /etc/portsentry/portsentry.conf
sed -i 's/RESOLVE_HOST = "0"/RESOLVE_HOST = "1"/' /etc/portsentry/portsentry.conf
sed -i 's/^KILL_ROUTE/#&/' /etc/portsentry/portsentry.conf
sed -i 's/^#\?KILL_ROUTE="\/sbin\/iptables -I INPUT -s $TARGET$ -j DROP"/KILL_ROUTE="\/sbin\/iptables -I INPUT -s $TARGET$ -j CHAOS"/' /etc/portsentry/portsentry.conf
# Wir Whitelisten unsere eigene IP-Adresse
echo "ALL: ${LAN_IP}/${LAN_NM}" >> /etc/hosts.allow
echo "${LAN_IP}/${LAN_NM}" >> /etc/portsentry/portsentry.ignore.static
# Wir restarten portsentry
systemctl restart portsentry
# Jetzt setzen wir für fail2ban eine Sicherheitsregel die automatisch die IP sperrt, die unseren Server mittels Port scanning angreifen tut.
> /var/lib/portsentry/portsentry.history
cat << EOF > /etc/fail2ban/jail.d/portsentry.conf
[portsentry]
enabled = true
EOF
# Anschließend starten wir fail2ban neu
systemctl restart fail2ban
# Im Log /var/log/fail2ban.log sehen wir auch schon, dass unsere Sicherheitsregel aktiviert wurde.
2022-12-10 01:40:04,902 fail2ban.jail [1952]: INFO Jail 'sshd' started
2022-12-10 01:40:04,903 fail2ban.jail [1952]: INFO Jail 'portsentry' started
2022-12-10 01:40:39,902 fail2ban.filter [1952]: INFO [portsentry] Found 192.168.8.199 - 2022-12-10 01:40:39
2022-12-10 01:40:40,156 fail2ban.actions [1952]: NOTICE [portsentry] Ban 192.168.8.199
2022-12-10 01:50:40,941 fail2ban.actions [1952]: NOTICE [portsentry] Unban 192.168.8.199
Schritt 3: SSH Port ändern
Da wir nun eine aktive Firewall zum Schutz gegen Port Scanning und Bruteforce Attacken haben, können wir zusätzlich den SSH Port abändern. Somit wird es den Angreifer 1. Unmöglich sein auf die schnelle den Port Rauszufinden da unsere Anti-Port Scanning Firewall aktiv im Hintergrund läuft. Zudem sollte der Angreifer doch den geänderten SSH Port rausfinden, so greift natürlich noch die Fail2Ban SSH Bruteforce Protection. Aber wie sagt man so schön: Sicher, ist sicher!
# Öffne mit dem "nano" Editor die SSH Config deines Linux Servers.
nano /etc/ssh/sshd_config
#Port 22 - Das # entfernen und anschließend die gewünschte Port eingeben und dann mit STRG+O speichern und mit STRG+X die Config wieder verlassen.
Port = 1254
Möchtest Du mehr über Methoden zum absichern eines Linux Servers lesen? Hast Du Ideen, weißt aber nicht wie Du es am besten umsetzen kannst, so schreibe gerne und auch komplexere Themen in die Kommentarfunktion und lass es uns wissen 🙂 Wir werden dann unsere Schritte zum Schutz eines Linux Servers erweitern.
Wie hilfreich war dieser Beitrag?
Klicke auf die Sterne um zu bewerten!
Durchschnittliche Bewertung 0 / 5. Anzahl Bewertungen: 0
Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.
Schreibe einen Kommentar