Jump to content
Калькуляторы

Как можно лимитировать udp-пакеты в pf?

Для tcp там есть max-src-conn-rate.

А как можно настроить лимиты на udp?

Share this post


Link to post
Share on other sites

max-src-states ещё есть, оно и к юдп должно применятся, по идее.

А в чём задумка?

Share this post


Link to post
Share on other sites

это стейты плодить. а стейты - это мало того что дорого... но еще и глупо для stateless-протокола.

Share this post


Link to post
Share on other sites

DNS защитить. У меня BIND 9.8, там RRL нет.

А чего не поставить с ррл?

Share this post


Link to post
Share on other sites

Поставлю скоро, но это время займет — нужно обновить систему, порты и только потом переустановить BIND.

А грузят сервер сейчас. Закрыть снаружи не могу, нужно временное решение.

 

это стейты плодить. а стейты - это мало того что дорого... но еще и глупо для stateless-протокола.

Зачем стейты?

Просто считать хиты на IP-адрес.

В iptables помоему такое я видел.

Share this post


Link to post
Share on other sites

Зачем стейты?

Просто считать хиты на IP-адрес.

В iptables помоему такое я видел.

iptables hashlimit. но это всё равно форма стейтов.

Share this post


Link to post
Share on other sites

Зачем стейты?

Просто считать хиты на IP-адрес.

В iptables помоему такое я видел.

iptables hashlimit. но это всё равно форма стейтов.

 

Работают эти стейты действительно ОЧЕНЬ быстро и оверхедят сравнительно мало по отношению к классике state - коннтреку.

Share this post


Link to post
Share on other sites

Снова спрошу.

Есть сервер с FreeBSD и pf, на сервере работает два DNS-сервера, NSD и Unbound.

На сервере в логах периодически попадается "[zone: pf states] PF states limit reached".

pfctl -ss показывает несколько тысяч стейтов (сейчас их 5600), практически все это DNS.

pf.conf такой:

rdr on $if_ext proto {tcp udp} from !<netpub> to $if_dns port 53 -> $if_dns port 5353
nat on $if_ext proto {tcp udp} from !<netpub> to $if_dns port 53 -> $if_dns port 5353
nat on $if_ext proto {tcp udp} from $if_dns port 5353 to !<netpub> -> $if_dns port 53
...
pass in quick on $if_ext proto {tcp udp} to self port 53
pass in quick on $if_ext proto {tcp udp} from !<netpub> to $if_dns port 5353

Связано это с тем, что для внутренней сети на 53 порту должен отвечать Unbound, а для внешней сети на 53 порту должен отвечать NSD (который на самом деле работает на порту 5353).

Как я понимаю, отключать стейты (указать no state) мне нельзя.

Не посоветуете, что можно сделать? Увеличить лимиты или все же отключить стейты?

По поводу отключения — тут пишут, что pf игнорирует no state.

У меня тоже не отключается — если указать для последних двух правил no state, то стейты все равно создаются.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this