Es ist eine fünfminütige Übung, um die Sicherheit auf einem IPv4-adressierten Computer zu erhöhen. Der Zweck des in diesem Tutorial beschriebenen Setups besteht darin, Port-Scanner und böswillige Port-Öffner für einen bestimmten Zeitraum zu sperren. Diese Übung wird nur auf Debian Jessie ausprobiert und angewendet. Während der Übung wird jeder Befehl als root festgeschrieben. Es ist Ihre Sache, wie Sie Root-Zugriff erhalten.
Entweder su -, sudo, Konsolenanmeldung usw....
Anleitung für faule Anfänger:Wenn ich den Bash-Prompt darstelle, kopieren Sie einfach den fettgedruckten Teil des Textes in Ihren eigenen.
Die Zutaten
- Die fail2ban-Software ist in der Lage, Ihre Firewall-Regeln dynamisch zu handhaben, um Bösewichte auszusperren.
- Der tinyhoneypot ist in der Lage, einen TCP/IP-Port abzuhören und Details des Öffners zu protokollieren.
- Der xinetd-Dienst startet tinyhoneypot und verwaltet seine Überwachungsports.
Zutaten installieren: (Kopieren Sie einfach den fett gedruckten Teil des Textes)
[email protected]:~# apt-get install tinyhoneypot fail2ban xinetd
Einstellungen
Um SSH dazu zu bringen, auf einem anderen Port zu lauschen, ersetzen Sie Ihre SSH-Konfigurationsdatei durch einen alternativen SSH-Port:
[email protected]:~# sed -i.orig 's/Port 22/Port 2201/m' /etc/ssh/sshd_config
Ihre ursprüngliche /etc/ssh/sshd_config-Konfiguration wird als /etc/ssh/sshd_config.orig
gespeichertWenn Sie Ihren SSH-Dienst neu starten, lauscht er jetzt auf Port 2201 (nicht auf Port 22).
[email protected]:~# Service-SSH-Neustart
[E-Mail geschützt]:~# netstat -lptn | grep ssh
tcp 0 0 0.0.0.0:2201 0.0.0.0:* LISTEN 4313/sshd
tcp6 0 0 :::2201 :::* LISTEN 4313/sshd
So weit, so gut..
Konfigurieren Sie Xinetd so, dass es tinyhoneypot startet und Port 22 von TCP abhört:
[email protected]:~# cp -v /usr/share/doc/tinyhoneypot/examples/xinetd.d/thp-pasv /etc/xinetd.d/
Bearbeiten Sie Ihre /etc/xinetd.d/thp-pasv wie folgt:
[email protected]:~# cat /etc/xinetd.d/thp-pasv
# default:on# description:thp-ftpd ruft das generische thpsvcs mit param "ftp" auf,# was zu einer ftpd emulation.service thp-pasv{ type =UNLISTED socket_type =stream protocol =tcp port =22 wait =no user =thpot server =/usr/sbin/thpot server_args =nullresp nice =10 disable =no instances =1 per_source =1}
(RE)Starten Sie xinetd mit Ihren neuen Einstellungen und stellen Sie sicher, dass es auf Port 22 lauscht.
[email protected]:~# Dienst xinetd neu starten
[E-Mail geschützt]:~# netstat -lptn | grep xinetd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4567/xinetd
Stellen Sie sicher, dass es funktioniert
Öffnen Sie eine SSH-Verbindung von einem anderen Computer aus.
[email protected]:~$ ssh 192.168.88.212
Nach einer Weile sollte nichts passieren, unterbrechen Sie es mit [Strg + C]
Und überprüfen Sie die Protokolleinträge auf Ihrem Testcomputer:
[email protected]:~# cat /var/log/thpot/captures
29. Februar 13:02:10 SID=56D4334221165.nullresp PID=4837 SRC=192.168.88.242 SPT=47187 ET=00:00:11 BYTES=39
Falls alles gut gegangen ist, sollte es einen Eintrag in Ihrem Erfassungsprotokoll geben.
Lassen Sie uns Ihren Fail2Ban so einstellen, dass er mit TinyHoneyPot zusammenarbeitet
[E-Mail-geschützt]:~# cd /etc/fail2ban/
[email protected]:/etc/fail2ban# cp -v jail.conf jail.local
Bearbeite niemals deine jail.conf!! Erstellen Sie eine Kopie davon als jail.local und nehmen Sie NUR Änderungen in der .local-Datei vor!
Suchen Sie den Abschnitt [ssh] in Ihrer jail.local und ändern Sie ihn abhängig von [Port 2201] von /etc/ssh/sshd_config
[ssh]enabled =trueport =2201filter =sshdlogpath =/var/log/auth.logmaxretry =6
Make und Eintrag im Abschnitt JAIL von jail.local:
Dadurch wird Fail2Ban dazu veranlasst, die Protokolldatei von tinyhoneypot zu lesen und die abzulehnende IPv4-Adresse abzurufen. Ich empfehle, es nach dem Abschnitt [ssh] zu platzieren. Es geht um die 137. Reihe.
[thp-ssh]enabled =trueport =allfilter =thpotlogpath =/var/log/thpot/capturesbanaction =iptables-allportsmaxretry =1findtime =1800bantime =99999
Fail2ban sollte einen Filter haben, um zu wissen, was abzulehnen ist. Dort
[email protected]:~# cat /etc/fail2ban/filter.d/thpot.local
failregex =SRC=
ignoreregex =
Es ist vollbracht!
Nur ein kurzer Test....
[email protected]:~# Dienst fail2ban Neustart
Am Ende von /var/log/fail2ban.log
sollte etwas Ähnliches zu sehen sein2016-02-29 13:54:06,915 fail2ban.jail [6102]:INFO Neues Jail 'thp-ssh' erstellen2016-02-29 13:54:06,915 fail2ban.jail [6102]:INFO Jail 'thp -ssh' verwendet pyinotify2016-02-29 13:54:06,920 fail2ban.jail [6102]:INFO Initiiertes 'pyinotify'-Backend2016-02-29 13:54:06,922 fail2ban.filter [6102]:INFO Hinzugefügte Protokolldatei =/var/ log/thpot/captures2016-02-29 13:54:06,923 fail2ban.filter [6102]:INFO Set maxRetry =12016-02-29 13:54:06,925 fail2ban.filter [6102]:INFO Set findtime =18002016-02- 29 13:54:06,926 fail2ban.actions[6102]:INFO Set banTime =999992016-02-29 13:54:06,934 fail2ban.jail [6102]:INFO Jail 'ssh' started2016-02-29 13:54:06,940 fail2ban .jail [6102]:INFO Jail 'thp-ssh' gestartet
Sie können Ihre benutzerdefinierten Werte von jail.local sehen und sie bei Bedarf anpassen.
findtime =1800bantime =99999
Sehen Sie sich Ihre aktuellen iptables-Regeln an:
[email protected]:~# iptables-save
# Generiert von iptables-save v1.4.21 am Mo. Feb 29 14:05:17 2016*filter:INPUT ACCEPT [2:64]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:fail2ban -ssh - [0:0]:fail2ban-thp-ssh - [0:0]-A INPUT -p tcp -j fail2ban-thp-ssh-A INPUT -p tcp -m multiport --dports 2201 -j fail2ban- ssh-A fail2ban-ssh -j RETURN-A fail2ban-thp-ssh -j RETURNCOMMIT# Abgeschlossen am Mo. Feb. 29 14:05:17 2016
Lassen Sie uns die Verweigerungsregel von einem anderen Computer aus überprüfen:
[E-Mail-geschützt]:~# ssh 192.168.88.212
^C
[E-Mail-geschützt]:~# ssh 192.168.88.212
ssh:Verbindung zu Host 192.168.88.212 Port 22 herstellen:Verbindung abgelehnt
Die erste Aktion wird nichts tun. Der Angreifer wird es wahrscheinlich nach einer Weile unterbrechen. Die zweite Aktion wird abgelehnt.
Ihre iptables-Regeln sollten jetzt so aussehen:
[email protected]:~# iptables-save
# Generiert von iptables-save v1.4.21 am Mo. Feb 29 14:10:53 2016*filter:INPUT ACCEPT [4:542]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [1:88]:fail2ban -ssh - [0:0]:fail2ban-thp-ssh - [0:0]-A INPUT -p tcp -j fail2ban-thp-ssh-A INPUT -p tcp -m multiport --dports 2201 -j fail2ban- ssh-A fail2ban-ssh -j RETURN-A fail2ban-thp-ssh -s 192.168.88.242/32 -j REJECT --reject-with icmp-port-unreachable-A fail2ban-thp-ssh -j RETURNCOMMIT# Abgeschlossen am Mo 29. Februar 14:10:53 2016
Das Ergebnis ist:Der PC des Angreifers wird auf jedem Port ABGEWIESEN.
Das Postscript
Als dieses HowTo geschrieben wurde, war weder Fail2Ban noch tinyhoneypot in der Lage, mit IPv6 umzugehen. Wenn Sie dieses HowTo nützlich finden, teilen Sie es! Informieren Sie Ihre Freunde darüber.