Страница 1 из 1
IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-21 10:41:09
Dampire
Фаервол
Код: Выделить всё
#!/bin/sh
int0="stge0"
ext0="stge1"
ext1="stge2"
ip_ats="192.168.0.2"
skip="skipto 10010"
ipfw -q flush
# атс-ка работает через один канал, локалка через другой
ipfw add 7 setfib 0 ip from not ${ip_ats} to any in via ${int0}
ipfw add 8 setfib 1 ip from ${ip_ats} to any in via ${int0}
# разрешаем для безопасного
ipfw add 9 allow ip from any to any via ${int0}
ipfw add 10 allow ip from any to any via lo0
ipfw add 15 check-state
# разрешаем определенный порт (сокращенный список)
ipfw add 1000 ${skip} tcp from any to any 80 out via ${ext0} setup keep-state
# запрещаем все, что не по правилам
ipfw add 9998 deny ip from any to any via ${ext0}
upfw add 9999 deny ip from any to any via ${ext1}
# NAT
ipfw nat 1 config if ${ext0} same ports reset deny_in
Ipfw nat 2 config if ${ext1} same ports reset deny_in
ipfw add 10010 nat 1 ip from any to any via ${ext0}
ipfw add 10011 nat 2 ip from any to any via ${ext1}
# разрешаем все, что вышло из NAT-а
ipfw add 50000 allow ip from any to any
По моей логике: правило 1000, скип до ната и правило 50000, вход снаружи по причине keep-state, скип до ната, и снова правило 50000. Интернета нет. Стучусь из локалки, открываю по IP (разрешения до днс пока не прописывал, чтобы не усложнять осмысливание). Ткните пальцем, что не так.
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-21 12:16:15
Shuba
Попробуй в 1000 правиле убрать сохранение состояния
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-21 21:14:16
Dampire
Т.е. нат сам поддерживает двунаправленное соединение? Пока дотянуться до компа не могу, выходные. В понедельник попробую.
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-24 13:42:32
Dampire
Не то.
Upd.
Моя невнимательность. Забыл после setup скипать "establihed" подключения. Разобрался, заработало. Мб кому поможет.
Код: Выделить всё
ipfw add 11 ${skip} ip from any to any established
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-24 14:40:43
Dampire
Теперь другая бида. DNS не срабатывает. Файл тот-же. Добавились строки из предыдущего поста и сия строчка:
Код: Выделить всё
ipfw add 1001 ${skip} udp from any to any 53 out via ${ext0} setup
Телнетом цепляется, а nslookup - таймаут.
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-24 15:25:23
skeletor
А как ты можешь цепляться telnet'ом к udp порту?
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-24 16:02:40
Dampire
Первоначально прописывал ip (any), поэтому и цеплялся. Потом погуглил и пришел к выводу, что чаще в манах упоминается udp и переделал на него.
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-25 9:00:48
Dampire
Спасибо, что позволяете разобраться самому
Код: Выделить всё
ipfw add 1002 ${skip} udp from any to any 53 via ${ext0}
ipfw add 1003 ${skip} udp drom any 53 to any via ${ext0}
Волшебный setup не работает в отношении DNS и ICMP-запросов, а keep-state выводит пакеты из фаервола до NAT-а.
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-09-25 11:36:42
skeletor
Да, для UDP setup не работает

Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-10-03 14:39:39
Dampire
И это снова я.
есть правила (остальные закомментил, чтобы не мешали)
Код: Выделить всё
# ${int0} - локальный интерфейс
# ${ext1} - смотрит в инет
ipfw add 8 setfib 1 ip from ${local_ip} to any in via ${int0}
ipfw add 10 allow ip from any to any via ${int0}
ipfw add 11 allow ip from any to any via lo0
ipfw add 2003 skipto 10020 ip from ${whitelist} to any in via ${ext1}
ipfw add 2004 skipto 10020 ip from any to ${whitelist} out via ${ext1}
ipfw add 9999 deny ip from any to any via ${ext1}
ipfw nat 2 config if ${ext1} same_ports redirect_addr ${local_ip} ${external_ip}
ipfw add 10020 nat 2 ip from any to any via ${ext1}
ipfw add 10030 allow ip from any to any
Правила исправно проходят через 2003, заходят в нат (счетчики растут одновременно). Слушал tcpdump-ом порт 22 на интерфейсе наружу и интерфейсе в локалку. Снаружи пакеты приходят, до локалки не доходят. При это deny счетчики не растут.
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-10-03 14:50:07
Dampire
Нашел косяк. Пакеты какого-то черта уходят на другой интерфейс. Назовем его ${ext0}, который является дефолтным интернетом для роутера.Вопрос, почему...
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-10-03 15:21:52
skeletor
пакеты уходят согласно маршрутизации, если иное не сделано через файервол.
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-10-03 16:53:32
Dampire
Пакеты, приходящие с 192.168.0.2 уходят в fib 1, в таблице маршрутизации которого ясно прописано - все посылать через ${ext1}
Но тут даже до этого не доходит (по крайней мере насколько я понимаю эту тему). Пакет приходит из ${ext1}, якобы натится и вместо того, чтобы уйти в локалку на ${local_ip} он отправляется назад в сторону ${whitelist}, от имени интерфейса ${ext1} через интерфейс ${ext0} (что вполне здраво, ведь в fib 0 загоняется трафик от совершенно иного IP). Специально добавил блокировку всего трафика, идущего через основной канал.
Код: Выделить всё
ipfw add 9998 deny ip from any to any via #{ext0}
Счетчик этого правила растет одновременно со счетчиком правил 2003, 10020, 10030, количество пакетов/байт инфы абсолютно идентичны...
Re: IPFW + IPFW NAT + Включаемый фаервол.
Добавлено: 2012-10-04 9:32:49
Dampire
redirect_port работает, redirect_addr - нет. Это бага системы или моя?
FreeBSD 9.0