Похоже, что это, к сожалению, не работает. Вот как я проверил. Используем два сервера — 1.1.1.1 и 2.2.2.2. 1.1.1.1 будет отправлять пакеты, 2.2.2.2 будет слушать.
Для начала настроим сниффинг на 2.2.2.2:
➢ ~ sudo tcpdump -vv 'источник 1.1.1.1'
tcpdump: прослушивание на eth0, тип ссылки EN10MB (Ethernet), размер захвата 262144 байт
Теперь давайте отправим пакет на порт 995 на этот IP:
$ zmap --whitelist-file=<(эхо 2.2.2.2) -p 995 -n 1
Как и ожидалось, мы видим трафик с 1.1.1.1 на 2.2.2.2:
11:18:49.330632 IP (tos 0x0, ttl 250, id 54321, смещение 0, флаги [нет], proto TCP (6), длина 40)
1.1.1.1.47495 > 2.2.2.2.pop3s: флаги [S], cksum 0x5e8a (верно), seq 4248475135, win 65535, длина 0
11:18:49.331688 IP (tos 0x0, ttl 59, id 0, смещение 0, флаги [DF], proto TCP (6), длина 40)
1.1.1.1.47495 > 2.2.2.2.pop3s: флаги [R], cksum 0x5e87 (верно), seq 4248475136, win 0, длина 0
Теперь давайте попробуем заблокировать это на 1.1.1.1 и повторить проверку:
$ /sbin/iptables -A ВЫВОД -d 2.2.2.2 -j УДАЛИТЬ
$ zmap --whitelist-file=<(эхо 2.2.2.2) -p 995 -n 1
К сожалению, мы видим еще некоторые данные tcpdump. Это означает, что это не сработало.
В конце концов я решил проблему на другом уровне, используя функциональность брандмауэра моего облачного провайдера.