Я работаю над брандмауэром Ubuntu 12.04. Я хочу запретить любой IP во время выполнения. Я использую "UFW отказ от IP". Это работает для будущих соединений. Но это не отменяет существующие соединения, такие как ssh.
Как я могу отменить все текущие сообщения с определенного IP?
С уважением,
Я не уверен, но вы можете попробовать с 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
Надеюсь, это поможет.
Лучший вариант, который я нашел, это использовать 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
, затем sudo /etc/init.d/sshd start
или использовать сервисный механизм:
$ sudo service ssh stop
ssh stop/waiting
$ sudo service ssh start
ssh start/running, process 4427
Вы можете временно удалить интерфейс, если это опция.
Есть приложение под названием «резак», которое должно работать, принимая IP-адрес и порт в качестве аргументов. Однако я не смог заставить пакет установить правильно из
$ sudo apt-get install cutter
Предполагалось, что он будет работать примерно так (предполагается, что стандартный порт 22 для ssh):
[ 1121]$ cutter 10.10.10.10 22
Вы также можете проверить что-то вроде пакета denyhosts
.