Защита Iptables от сканеров портов без уязвимости DoS

Защита Iptables от сканеров портов без уязвимости DoS

Archwiki предлагает статью с предложениями помежсетевой экран iptables с отслеживанием состояния. Они рекомендуют некоторыеправила для обмана сканеров портов, но сообщают, что они открывают уязвимость для DoS-атак. В частности, запрещая доступ IP-адресам, которые постоянно пытаются получить доступ к закрытым портам, потенциальный злоумышленник может отправлять эти пакеты с поддельным IP-адресом, так что мой брандмауэр заблокирует легитимных пользователей.

Предлагаемые правила TCP следующие:

# iptables -I TCP -p tcp -m recent --update --rsource --seconds 60 --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset
# iptables -A INPUT -p tcp -m recent --set --rsource --name TCP-PORTSCAN -j REJECT --reject-with tcp-reset

Мой вопрос в том, могу ли я ограничить эффективность этой DoS-атаки, если добавлю TTL пакета в правила? СогласноСтраница руководства iptables:

--rttl:[···] это сузит соответствие, чтобы оно срабатывало только тогда, когда адрес есть в списке, а TTL текущего пакета совпадает с пакетом, который попал в правило --set. Это может быть полезно, если у вас есть проблемы с людьми, подделывающими свой исходный адрес, чтобы провести DoS-атаку через этот модуль, запретив другим доступ к вашему сайту, отправляя вам поддельные пакеты.

Сработает ли это или я что-то упускаю?

решение1

Есть пара проблем с использованием опции TTL для этой цели. По сути, вы предлагаете использовать TTL как дополнительный компонент идентификации при идентификации адресов.

Однако точно так же, как злоумышленники могут подделывать IP-адреса, чтобы заблокировать легитимных клиентов, они также могут подделывать значения TTL пакетов; любой может генерировать пакеты с произвольными значениями TTL, они не ограничены началом с предполагаемого начального значения.

Кроме того, по мере изменения сетевой инфраструктуры количество переходов между вами и злоумышленником будет меняться с течением времени, что ограничивает практическую полезность TTL как уникального идентификатора.

Последняя проблема с этой техникой заключается в том, что вполне возможно, что злоумышленник окажется с таким же количеством переходов между собой и вами, как и между многими легитимными хостами и вами. Поэтому даже без подмены TTL они, вероятно, смогут достичь некоторого уровня DoS-атаки.

решение2

Это не совсем ответ на ваш вопрос, потому что это что-то за пределами iptables, но если вы хотите защититься от сканирования портов, PSAD — лучший вариант. Вы можете настроить его на блокировку любого ip, который сканирует порты вашей системы. http://cipherdyne.org/psad/

Здесь используется iptables, но это не обязательно просто правило iptables.

Связанный контент