Я заблокировал IP-адрес злоумышленника, который отправлял мне множество UDP-пакетов.
iptables -I ВВОД 1 -s IP_OF_ATTACKER -j ОТБРОС
Это правило работало отлично.
iptables -nvL --line-numbers
Трафик 22G был заблокирован на 2-3 дня:
num pkts bytes target prot opt in out source destination
1 3203K 22G DROP all -- * * ATTACKER_IP 0.0.0.0/0
Однако, с последних 2-3 дней это правило больше не работает. Атакующий отправляет UDP-пакеты, а iptables их не блокирует.
num pkts bytes target prot opt in out source destination
1 707K 3553M DROP all -- * * ATTACKER_IP 0.0.0.0/0
Что может быть причиной?
PS: Пожалуйста, не предлагайте обращаться к хостинг-провайдеру, если бы они могли помочь, меня бы здесь не было :)
Редактировать
Я использовал wireshark/tcpdump для анализа/перехвата пакетов. Он показывает, что все пакеты являются UDP. Я использую команду iptables (как упоминалось выше), чтобы увидеть, сколько данных заблокировало правило iptables. Выше приведен вывод заблокированных данных iptables. Когда iptables блокировал все данные, наш сервер работал нормально.
**IP Table rules**
# Generated by iptables-save v1.4.21 on Mon Jun 15 23:26:40 2015
*raw
:PREROUTING ACCEPT [8393:667810]
:OUTPUT ACCEPT [7043:795032]
COMMIT
# Completed on Mon Jun 15 23:26:40 2015
# Generated by iptables-save v1.4.21 on Mon Jun 15 23:26:40 2015
*nat
:PREROUTING ACCEPT [2517:112725]
:INPUT ACCEPT [2517:112725]
:OUTPUT ACCEPT [1018:179752]
:POSTROUTING ACCEPT [1018:179752]
COMMIT
# Completed on Mon Jun 15 23:26:40 2015
# Generated by iptables-save v1.4.21 on Mon Jun 15 23:26:40 2015
*mangle
:PREROUTING ACCEPT [8393:667810]
:INPUT ACCEPT [8393:667810]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [7043:795032]
:POSTROUTING ACCEPT [7043:795032]
COMMIT
# Completed on Mon Jun 15 23:26:40 2015
# Generated by iptables-save v1.4.21 on Mon Jun 15 23:26:40 2015
*filter
:INPUT ACCEPT [23:1500]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18:2068]
:fail2ban-ssh - [0:0]
-A INPUT -s xx.xxx.xx.xx/32 -j DROP
COMMIT
# Completed on Mon Jun 15 23:26:40 2015
решение1
Я не совсем понимаю ваш список iptables или как он таким стал. Однако, похоже, есть таблицы nat и mangle, и поэтому вполне возможно, что ваши проблемные пакеты не проходят через обычную цепочку INPUT, а направляются через iptables по другому пути на этапе предварительной маршрутизации (который, кстати, будет проходить только один раз за соединение). Вы можете попробовать добавить:
sudo iptables -t raw -A PREROUTING -s IP_OF_ATTACKER -j DROP
Я сделал это на своем тестовом компьютере, и, кажется, все работает нормально:
$ sudo iptables-save -c
# Generated by iptables-save v1.4.21 on Tue Jun 16 11:12:51 2015
*raw
:PREROUTING ACCEPT [40:2664]
:OUTPUT ACCEPT [33:4520]
[31:2696] -A PREROUTING -s 192.168.111.103/32 -j DROP
COMMIT
# Completed on Tue Jun 16 11:12:51 2015
# Generated by iptables-save v1.4.21 on Tue Jun 16 11:12:51 2015
*nat
:PREROUTING ACCEPT [15:1344]
...
Примечание: я разместил этот же ответ на вашемРазмещение сообщений на форумах Ubuntu.