Ich arbeite an einer Firewall für Ubuntu 12.04. Ich möchte jede IP zur Laufzeit ablehnen. Ich verwende „ufw deny from IP“. Das funktioniert für zukünftige Verbindungen. Aber es bricht die bestehenden Verbindungen nicht wie SSH ab.
Wie kann ich die gesamte aktuelle Kommunikation von einer bestimmten IP abbrechen?
Grüße,
Antwort1
Die beste Option, die ich gefunden habe, ist die Verwendung von tcpkill
. Als ich es installiert habe, war es Teil des dsniff
Pakets, also musste ich es zuerst installieren. Dann würden Sie es wie folgt verwenden:
$ sudo tcpkill ip host 20.129.11.86 and port 22
tcpkill: listening on eth0 [ip host 20.129.11.86 and port 22]
10.206.22.202:42532 > 20.129.11.86:22: R 1785992582:1785992582(0) win 0
10.206.22.202:42532 > 20.129.11.86:22: R 1785992732:1785992732(0) win 0
10.206.22.202:42532 > 20.129.11.86:22: R 1785993032:1785993032(0) win 0
20.129.11.86:22 > 10.206.22.202:42532: R 4065251855:4065251855(0) win 0
20.129.11.86:22 > 10.206.22.202:42532: R 4065301087:4065301087(0) win 0
20.129.11.86:22 > 10.206.22.202:42532: R 4065399551:4065399551(0) win 0
Sobald tcpkill entsprechenden Datenverkehr erkennt, wird die Verbindung beendet.
Um zu sehen, wo sonst noch die IP auf Ihrem System auftaucht, können Sie netstat -aunt
nach der IP-Adresse greppen. Beispiel:
$ netstat -aunt | egrep 115.125.
tcp 0 0 10.20.22.25:56156 115.125.225.67:80 ESTABLISHED
tcp 0 0 10.20.22.25:42360 115.125.225.1:80 ESTABLISHED
tcp 0 0 10.20.22.25:35210 115.125.225.64:80 ESTABLISHED
Erstellen Sie bei Bedarf weitere UFW-Regeln.
Ist ein Neustart von SSH eine Option?
Sie können sudo /etc/init.d/sshd stop
dann verwenden sudo /etc/init.d/sshd start
oder den Servicemechanismus nutzen:
$ sudo service ssh stop
ssh stop/waiting
$ sudo service ssh start
ssh start/running, process 4427
Sie könnten die Schnittstelle vorübergehend löschen, falls das eine Option ist.
Es gibt eine App namens „cutter“, die funktionieren sollte und die IP-Adresse und den Port als Argumente verwendet. Ich konnte das Paket jedoch nicht korrekt installieren von
$ sudo apt-get install cutter
Es sollte ungefähr so funktionieren (unter der Annahme des Standardports 22 für SSH):
$ cutter 10.10.10.10 22
denyhosts
Sie können sich auch etwas wie das Paket ansehen .
Antwort2
Ich bin nicht sicher, aber Sie können es mit Folgendem versuchen iptables
:
sudo iptables -A INPUT -p tcp --dport 22 --source 192.168.1.1 -j REJECT
Oder wenn Sie pedantisch sein wollen
sudo iptables -A INPUT -p tcp --dport 22 --source 192.168.1.1 REJECT --reject-with icmp-host-prohibited
Schauen Sie sich dieses Tutorial an:https://help.ubuntu.com/community/IptablesHowTo
Ich hoffe das hilft.