我正在研究 Ubuntu 12.04 防火牆。我想在運行時拒絕任何IP。我正在使用“ufw拒絕IP”。它正在為未來的連接而努力。但它並沒有像 ssh 那樣取消現有的連線。
如何取消特定IP目前的所有通訊?
問候,
答案1
我發現的最佳選擇是使用tcpkill
.當我安裝它時,它是軟體包的一部分dsniff
,所以我必須先安裝它。然後,您將像這樣使用它:
$ 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
一旦 tcpkill 偵測到匹配的流量,它將終止連線。
若要查看 IP 也造訪您的系統的其他位置,您可以使用netstat -aunt
grep 來尋找 IP 位址。例如,
$ 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
如有必要,建立進一步的 ufw 規則。
重新啟動 ssh 是選項嗎?
您可以使用sudo /etc/init.d/sshd stop
then sudo /etc/init.d/sshd start
,或使用服務機制:
$ sudo service ssh stop
ssh stop/waiting
$ sudo service ssh start
ssh start/running, process 4427
如果可以的話,您可以暫時刪除該介面。
有一個名為“cutter”的應用程式應該可以運行,並以 IP 位址和連接埠作為參數。但是,我無法從以下位置正確安裝軟體包
$ sudo apt-get install cutter
它應該像這樣工作(假設 ssh 的標準連接埠 22):
$ cutter 10.10.10.10 22
您也可以查看類似denyhosts
包裹之類的東西。
答案2
我不確定,但你可以嘗試iptables
:
sudo iptables -A INPUT -p tcp --dport 22 --source 192.168.1.1 -j REJECT
或者如果你想迂腐一點
sudo iptables -A INPUT -p tcp --dport 22 --source 192.168.1.1 REJECT --reject-with icmp-host-prohibited
檢查這個教學:https://help.ubuntu.com/community/IptablesHowTo
我希望這有幫助。