Принялся я тут банить всяких спамеров и прочих неблагонадёжных граждан просто по IP. И в один прекрасный день оказалось, что соответствующее правило перестало восприниматься файерволом. Начал ковыряться в поисках проблемы и совершил небольшое открытие.
Оказалось, что виной тому не длина строки, у которой есть некое ограничение. А оно действительно есть (ходят слухи, что 1024 символа). А количество IP адресов в строке. В моём случае предел — 15 адресов. А вот, собственно, так выглядит само правило:
- ${fwcmd} add 00001 deny all from 192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5,192.168.0.6,192.168.0.7,192.168.0.8,192.168.0.9,192.168.0.10,192.168.0.11,192.168.0.12,192.168.0.13,192.168.0.14,192.168.0.15 to any in
Списки адресов взяты произвольно. В данном конкретном случае было проще указать диапазон адресов, вместо их перечисления. А как это сделать я писал в другой статье.
Посмотреть какие правила файервола работают можно командой:
- ipfw show