Проблема следующего плана. Есть список российских ip-сетей, необходимо закрыть все остальное кроме них, но строк получается несколько тысяч, в итоге вероятно это скажется на загрузке OS, как выйти из ситуации? В смысле оптимально реализовать эту идею. Тоже и касается и для linux-оидных фильтров.
>Проблема следующего плана. Есть список российских ip-сетей, необходимо закрыть все остальное кроме
>них, но строк получается несколько тысяч, в итоге вероятно это скажется
>на загрузке OS, как выйти из ситуации? В смысле оптимально реализовать
>эту идею. Тоже и касается и для linux-оидных фильтров.
Это только для FreeBSD 5.x и выше, для 4.х прийдется каждую сеть вбивать отдельно, по крайней мере мне так и не удалось реализовать это в 4.11
#!/bin/sh -
...
runet="x.x.x.x/m,x.x.x.x/m,...,x.x.x.x/m"
# тут список конечно будет не маленький, но всеже мне кажется что не пару тысяч строк, хотя могу и ошибаться
mynet="y.y.y.y/m"
...
ipfw add drop all from not ${runet} to any in via fxp0
...если не принципиально на чем делать, посмотри в сторону pf от OpenBSD
...
table <runet> persist file "/etc/runet"
# в /etc/runet вписать все русские сети
...
block in on fxp0 from not <runet> to any
...успехов!
Можно посмотреть в сторону ipfw 2 (table).
>Можно посмотреть в сторону ipfw 2 (table).Вопрос как 2 пальца, как установить (запустить) ipfw2,
да и только у меня в FreeBSD 5.4 config kernel'a не понимает options ICMP_BANDLIM и options RST_RESTRICT...???
>>Проблема следующего плана. Есть список российских ip-сетей, необходимо закрыть все остальное кроме
>>них, но строк получается несколько тысяч, в итоге вероятно это скажется
>>на загрузке OS, как выйти из ситуации? В смысле оптимально реализовать
>>эту идею. Тоже и касается и для linux-оидных фильтров.
>
>
>Это только для FreeBSD 5.x и выше, для 4.х прийдется каждую сеть
>вбивать отдельно, по крайней мере мне так и не удалось реализовать
>это в 4.11
>#!/bin/sh -
>...
>runet="x.x.x.x/m,x.x.x.x/m,...,x.x.x.x/m"
># тут список конечно будет не маленький, но всеже мне кажется что
>не пару тысяч строк, хотя могу и ошибаться
>mynet="y.y.y.y/m"
>...
>ipfw add drop all from not ${runet} to any in via fxp0
>
>...
>
>если не принципиально на чем делать, посмотри в сторону pf от OpenBSD
>
>...
>table <runet> persist file "/etc/runet"
># в /etc/runet вписать все русские сети
>...
>block in on fxp0 from not <runet> to any
>...
>
>успехов!
А не проще ли это организовать при помощи vlan'ов + bgp и дальше уже в ход пускать ipfw/pf?
>Проблема следующего плана. Есть список российских ip-сетей, необходимо закрыть все остальное кроме
>них, но строк получается несколько тысяч, в итоге вероятно это скажется
>на загрузке OS, как выйти из ситуации? В смысле оптимально реализовать
>эту идею. Тоже и касается и для linux-оидных фильтров.В "linux-оидных фильтрах" можно делать не простой перебор тысяч условий,
а иерархические структуры условий
>>Проблема следующего плана. Есть список российских ip-сетей, необходимо закрыть все остальное кроме
>>них, но строк получается несколько тысяч, в итоге вероятно это скажется
>>на загрузке OS, как выйти из ситуации? В смысле оптимально реализовать
>>эту идею. Тоже и касается и для linux-оидных фильтров.
>
>В "linux-оидных фильтрах" можно делать не простой перебор тысяч условий,
>а иерархические структуры условийАга какая уж тут иерархия - тупые номера сетей.
Для начала можно попробовать уменьшить список агрегированием по маске или взять список сетей у провайдера (которые он считает российскими), не думаю что он будет в несколько тысячь.
Ну и если уж действительно есть такая необходимость то засовывать то что получиться в правила фильтрации (лучше ИМХО в таблицы pf)
А вообще такие вещи делаються совсем другими средствами