Назад | Перейти на главную страницу

Контрмеры против входящей атаки с отражением DNS

В настоящее время я испытываю атаку отражения DNS на мой сервер. Я получаю огромное количество ответов через UDP с порта 53, которые мой сервер никогда не запрашивал:

02: 53: 57.626156 IP (tos 0x0, ttl 50, id 0, смещение 0, флаги [DF], протокол UDP (17), длина 267) REFLECTING.OPEN.DNS.SERVER.domain> mydomain.com.11803: 30781 - q: RRSIG? . 0/13/1 нс:. NS A.SOMENAMESERVER.NET.,. [| Домен]

02: 53: 57.626382 IP (tos 0x0, ttl 50, id 0, смещение 0, флаги [DF], протокол UDP (17), длина 267) REFLECTING.OPEN.DNS.SERVER.domain> mydomain.com.11803: 30781 - q: RRSIG? . 0/13/1 нс:. NS B.SOMENAMESERVER.NET.,. [| Домен]

02: 53: 57.627804 IP (tos 0x0, ttl 50, id 0, смещение 0, флаги [DF], протокол UDP (17), длина 267) REFLECTING.OPEN.DNS.SERVER.domain> mydomain.com.24188: 30781 - q: RRSIG? . 0/13/1 нс:. NS C.SOMENAMESERVER.NET.,. [| Домен]

Итак, контрмера, о которой я подумал, - это ограничение количества входящих пакетов с исходным портом 53. Не должно быть проблем с iptables, верно?

Итак, я собрал это вместе с моими небольшими навыками работы с iptables:

-A INPUT -s A.TRUSTED.NAMESERVER -j ACCEPT

-A ВВОД -s B.ДОВЕРЕННЫЙ.NAMESERVER -j ПРИНЯТЬ

-A ВВОД -s C.ДОВЕРЕННЫЙ.NAMESERVER -j ПРИНЯТЬ

-A INPUT -p udp -m udp --sport 53 -m limit --limit 10 / min -j LOG --log-prefix "53 DENY FROM:" --log-level 7

-A INPUT -p udp -m udp --sport 53 -m limit --limit 10 / min --limit-burst 20 -j ACCEPT

Регистрация атаки и разрыв ее, когда ее становится слишком много. Я бы не стал писать здесь, если бы получилось.

Что-то должно быть не так, и я не могу понять, что. Он регистрирует правильно, но не УДАЛЯЕТ никакие пакеты, даже если число> предела пакета.

Я очень благодарен за помощь.

Приветствует Марселя

Я не вижу DROP в ваших правилах. Возможно, вы хотите добавить

-A INPUT -p udp -m udp --sport 53 -j DROP

в конце ваших правил?

Если отраженные пакеты отправляются на закрытый порт UDP, то ядро ​​на принимающей стороне будет генерировать сообщение об ошибке ICMP. Эта обработка довольно дешевая, поэтому время обработки, необходимое для обработки пакета UDP и отправки ошибки ICMP, вероятно, будет наименьшей из ваших проблем.

В некоторых сценариях пропускная способность восходящего потока, потребляемая ошибками ICMP, может быть реальной проблемой. В таких сценариях может потребоваться ограничение скорости ошибок ICMP.

Однако не рекомендуется молча отбрасывать все UDP-пакеты без отправки ошибки ICMP. Ошибки ICMP - это единственный сигнал владельцев задействованных DNS-серверов, который может сообщить им, что их DNS-сервер участвует в отражающей атаке. Другими словами, молча отбрасывая пакеты, вы скрываете атаку от тех самых людей, которые могли бы ее смягчить.

Технически возможно создать DNS-сервер с автоматическим подавлением атак отражения. Однако такое смягчение последствий должно полагаться на сообщения об ошибках ICMP. Если такие методы смягчения последствий получат широкое распространение, вы станете более легкой мишенью для DDoS-атаки, молча сбросив весь трафик атаки.

Если отраженные пакеты UDP будут поступать на открытый порт UDP, то обработка этих отраженных пакетов станет более затратной с точки зрения процессорного времени. В таких сценариях было бы целесообразно использовать правила iptables для ОТКЛОНЕНИЯ пакетов с исходным портом 53 или любыми другими, используемыми службами, часто используемыми в атаках отражения, и чей порт назначения совпадает с портом службы, которую вы запускаете. Я бы все равно не БРОСИЛ их, а лучше использовал REJECT target вызвать ошибку ICMP, идентичную той, что наблюдается на закрытом порту.