1

Тема: IPFW. Не срабатывает правило с not адресом (not xxx.xxx.xxx.

Не работает - запретить всем локальным машинам сети, кроме ...0.52 ходить в Инет (to any, any to, via, всяко болт)
add deny ip from not 192.168.0.52 to any


Хотя например запретить всем кроме нее ходить конкретно на aport.ru отлично работает
add deny ip from not 192.168.0.52 to 194.186.121.42


Где я не догоняю?

2

Re: IPFW. Не срабатывает правило с not адресом (not xxx.xxx.xxx.

А так?

add allow ip from 192.168.0.52 to any
add deny ip from 192.168.0.0/24 to any

3

Re: IPFW. Не срабатывает правило с not адресом (not xxx.xxx.xxx.

Ну вроде после срабатывания разрешающего правила дальнейшие не рассматриваются. Надо, чтобы запрещенных сразу откидывало, а разрешенных пропускало дальше на отработку правил нат, портов почты и пр.

Решил задачу через жп.
Так как инверсия запрета не работает почему-то, запретил всему узлу сети - пул адресов dhcp (список айпи в table 1) и удалил из таблицы тех, кому доступ нужен. Не стал заморачиваться с интерфейсами и направлениями трафика, просто обрубил, чтобы ходили через сквид.
Еще пришлось пролукапить (nslookup) почтовые сервера и разрешить ходить на них всем без исключения (table 2).

А ведь если создать таблицу с айпи разрешенных счастливчиков, это всего около 5 адресов. Но NOT Table 1 не отрабатывает, точнее закрывает доступ абсолютно всем.

!/bin/sh
FwCMD="/sbin/ipfw"
LanOut="em0"
LanIn="em1"
IpIn="192.168.0.11"
NetMask="24"
NetIn="192.168.0.0/24"
NetOut="188.95.0.0/28"
IpOut="188.95.185.110"
#
${FwCMD} -f flush
#
${FwCMD} -f pipe flush
#
${FwCMD} -f queue flush
#загрузка таблицы ip с полным доступом
ipfw table 1 flush
cat /usr/local/etc/table/onlyproxy.txt | while read line; do
ipfw table 1 add $line
done
#загрузка таблицы ip разрешенных почтовых серверов
ipfw table 2 flush
cat /usr/local/etc/table/AlMlSv | while read line; do
ipfw table 2 add $line
done
#
${FwCMD} add allow ip from any to any via lo0
${FwCMD} add allow all from any to any via ${LanIn}
#
${FwCMD} add deny ip from any to 127.0.0.0/8
${FwCMD} add deny ip from 127.0.0.0/8 to any
#всем кроме списка таблицы - запрет- ходите через прокси сквид. table1 - кому нельзя. table2 - куда можно (почта и пр)
${FwCMD} add deny all from "table(1)" to not "table(2)"
${FwCMD} add deny all from not "table(2)" to "table(1)"

Добавлено через 2 минуты
и далее правила продолжаются для избранных

4

Re: IPFW. Не срабатывает правило с not адресом (not xxx.xxx.xxx.

Ну вроде после срабатывания разрешающего правила дальнейшие не рассматриваются.

правильно. Но то что привел Санта сработает только для одного хоста, как вы и хотели