如何在 Ubuntu 12.04 中取消特定 IP 的所有目前通訊?

如何在 Ubuntu 12.04 中取消特定 IP 的所有目前通訊?

我正在研究 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 -auntgrep 來尋找 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 stopthen 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

我希望這有幫助。

相關內容