Страница 1 из 1

FREEBSD + PF и непонятный DNS-трафик

Добавлено: 2012-10-09 6:40:54
stealer
Всем привет! Ситуация такая: несколько дней подряд на сервак идет большой DNS-трафик (логи растут со скоростью 40кб/сек, благо размер их ограничен). Содержимое логов таково:

Код: Выделить всё

09-Oct-2012 10:49:31.455 client 199.243.65.249#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.457 client 212.36.222.179#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.457 client 213.212.212.245#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.458 client 193.188.135.43#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.459 client 50.116.85.83#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.459 client 23.23.137.230#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.460 client 212.77.211.241#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.461 client 145.248.193.7#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.461 client 199.243.65.249#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.478 client 145.248.193.7#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.480 client 212.36.222.179#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.489 client 213.212.212.245#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.497 client 23.23.137.230#53: query: ripe.net IN ANY +ED
09-Oct-2012 10:49:31.507 client 180.150.140.238#53: query: ripe.net IN ANY +ED
...и т.д.
в основном это около 20 IPшников. Запросы самим BIND'ом откидываются нормально, как левые. Траф безлимитный, но факт ддоса нозит. Решил резать эти IPшники скриптом на автомате. Скрипт парсит логи и ддосеров посылает на pfctl -t bad -T add $bad_ip. Скрипт отрабатывает идеально, в указанной таблице IPшники светятся. В pf.conf в правилах первым делом стоит следующее:

Код: Выделить всё

block in all                                                                # DENY IN ALL
pass in quick on $ext_if from $work to any keep state                           # ALLOW WORK
block in log (all) quick on $ext_if from <bad> to any                           # BLOCK <BAD>
...бла-бла-бла
pass in log (all) on $ext_if proto {tcp,udp} from any to any port 53 keep state   # ALLOW DNS
...и далее по необходимости
казалось бы, все должно быть в ажуре. Но...логи также засираются как и раньше, т.е. до BIND'a запросы продолжают доходить. Спрашивается, какого хера??? Почему UDP-трафик на 53 порту игнорится PF'ом?

Запускаю tcpdump -netttti pflog0, там все в норме, выводятся только разрешенные запросы, левых нет, при этом в tcpdump -netttti tun0 port domain они валятся вагонами.
Наблюдаю за картиной через pftop -vrules -s1 - там этих пакетов вообще не видно.

Кто как видит эту ситуацию, подскажите, что можно сделать еще? Точнее, как нужно сделать ))

Re: FREEBSD + PF и непонятный DNS-трафик

Добавлено: 2012-10-09 9:16:16
stealer
очень странно...перезагрузка помогла, все отсекается. А вот команда pfctl -f /etc/pf.conf не помогала.