IPFW и опция one-pass

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
goombert
проходил мимо
Сообщения: 5
Зарегистрирован: 2018-05-01 21:01:10

IPFW и опция one-pass

Непрочитанное сообщение goombert » 2018-05-06 10:20:48

изучаю по местному мануалу ipfw
http://www.lissyara.su/articles/freebsd ... #example_1
Вопрос по первому же примеру:

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


# разрешаем все через интерфейс локальной сети
add 1040 allow ip from any to any via fxp0

# боимся непонятного
add 1050 deny ip from any to 192.168.0.0/16 in recv em0
add 1060 deny ip from 192.168.0.0/16 to any in recv em0
add 1070 deny ip from any to 172.16.0.0/12 in recv em0
add 1080 deny ip from 172.16.0.0/12 to any in recv em0
add 1090 deny ip from any to 10.0.0.0/8 in recv em0
add 10100 deny ip from 10.0.0.0/8 to any in recv em0
add 10110 deny ip from any to 169.254.0.0/16 in recv em0
add 10120 deny ip from 169.254.0.0/16 to any in recv em0

# настройка ната.
# опции переноса строк "\" надо убрать все должно быть в одну строчку
# опции redirect_port приведены для примера - как делать "проброс портов"
nat 1 config log if em0 reset same_ports deny_in \
redirect_port tcp 1.2.3.4:6881 6881 \
redirect_port udp 1.2.3.4:4444 4444 \
redirect_port tcp 192.168.1.24:25 25

# заварачиваем все что проходит через внешний интерфейс в нат
add 10130 nat 1 ip from any to any via em0

# боимся непонятного
add 65534 deny all from any to any
Не понятен момент с прохождением пакета на выход через NAT. Вот пишут:
После этого в точке (9) трафик выйдет из подсистемы нат и будет передан обратно в точку (6), заново попав в ip_output(). Так как значение one_pass выставлено в 1 (то есть разрешено) то трафик выйдет из ipfw (как если бы для него было применено правило allow) и уйдет в интернет через em0.

Непоянтно вот что, тут нет правило которое разрешало бы трафик исходящий на em0, тут только 2 правила которое 1) пуляет в нат пакеты и 2) запрещает любой трафик. Так по какому правилу папкет обработанный NAT выпускается в сеть?

И непонятен второй момент, если бы опция one-pass была отключена, то следовательно после прохождения нат пакет повторно попадает в ipfw и пробегает правила снова, и снова он доходит до правила 10130 и заруливается в нат, т.е. получается петля и так до бесконечности. Поясните кто в состоянии в чем я ошибаюсь.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
skeletor
майор
Сообщения: 2445
Зарегистрирован: 2007-11-16 18:22:04
Откуда: Kiev
Контактная информация:

IPFW и опция one-pass

Непрочитанное сообщение skeletor » 2018-05-07 11:02:56

Я не силён в ipfw, но видимо

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

add 10130 nat 1 ip from any to any via em0
как раз и разрешает локалке выходить в инет.
Встречный вопрос: с такими правилами, у самого сервера инет есть? AFAIK, не должно быть. Кстати, как вы смотрите актуальные правила: конфиг или ipfw show?
"Винда съела дрова и резет здесь не фурычит."
"Все говорят, что у меня /dev/hands криво и я всё делаю через /dev/ass. А у меня этих фалов вообще нет!"