Я работаю на брандмауэре Ubuntu 12.04. Я хочу запретить любой IP во время выполнения. Я использую "ufw deny from 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
Надеюсь, это поможет.