Правила для Firewall

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Правила для Firewall

Непрочитанное сообщение Reken » 2015-12-24 11:40:13

Подскажите мне пожалуйста... Что то я запутался...

Конфиги Firewall я уже приводил, но лучше повторю:

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

###FIREWALL###
/sbin/ipfw -q -f flush #SBROS VSEH PRAVIL
fwcmd="/sbin/ipfw -q" #OBOZNACHENIE KOMANDI
LIF="rl0" #LOKALNI INTERFEIS
LIP="`ifconfig $LIF|awk '/inet/{print \$2}'`" #LOKALNI IP
LAN="$LIP/24" #LOKALNAYA SET
WIF="bfe0" #VNESNI INTERFEIS
WIP="`ifconfig $WIF|awk '/inet/{print \$2}'`" #VNESHNI IP
WAN="$WIP/24" #VNESHNAYA SET

##################################################

${fwcmd} add 1100 allow ip from any to any via lo0
${fwcmd} add 1110 deny ip from any to 127.0.0.0/8
${fwcmd} add 1120 deny ip from 127.0.0.0/8 to any

${fwcmd} add 1150 allow ip from me to me

${fwcmd} add 1200 deny ip from $LAN to any in via $WIF
${fwcmd} add 1210 deny ip from $WAN to any in via $LIF

#${fwcmd} add 2000 deny ip from any to 10.0.0.0/8 in via $WIF
${fwcmd} add 2005 deny ip from any to 172.16.0.0/12 in via $WIF
#${fwcmd} add 2010 deny ip from any to 192.168.0.0/16 in via $WIF
${fwcmd} add 2050 deny ip from any to 0.0.0.0/8 in via $WIF

${fwcmd} add 2055 deny ip from any to 169.254.0.0/16 in via $WIF
${fwcmd} add 2060 deny ip from any to 244.0.0.0/4 in via $WIF
${fwcmd} add 2065 deny ip from any to 240.0.0.0/4 in via $WIF

#${fwcmd} add 2100 deny ip from 10.0.0.0/8 to any out via $WIF
${fwcmd} add 2105 deny ip from 172.16.0.0/12 to any out via $WIF
#${fwcmd} add 2110 deny ip from 192.168.0.0/16 to any out via $WIF
${fwcmd} add 2175 deny ip from 0.0.0.0/8 to any out via $WIF
${fwcmd} add 2180 deny ip from 169.254.0.0/16 to any out via $WIF
${fwcmd} add 2185 deny ip from 224.0.0.0/4 to any out via $WIF
${fwcmd} add 2190 deny ip from 240.0.0.0/4 to any out via $WIF

${fwcmd} add 3000 allow ip from any to $LAN in via $LIF
${fwcmd} add 3005 allow ip from $LAN to any out via $LIF

${fwcmd} add 3010 allow icmp from any to $WIP icmptypes 0,3,4,11,12 in via $WIF
${fwcmd} add 3011 allow icmp from $WIP to any icmptypes 3,8,12 out via $WIF
${fwcmd} add 3012 allow icmp from $WIP to any frag out via $WIF
${fwcmd} add 3014 deny icmp from any to any in via $WIF

${fwcmd} add 3100 allow udp from any to $WIP 53 in via $WIF
${fwcmd} add 3110 allow udp from $WIP 53 to any out via $WIF
${fwcmd} add 3120 allow udp from any 53 to $WIP in via $WIF
${fwcmd} add 3130 allow udp from $WIP to any 53 out via $WIF

${fwcmd} add 3200 allow udp from any to any 123 via $WIF
${fwcmd} add 3300 allow tcp from any to $WIP 53 in via $WIF setup


###############################################################

#SSH CONNECTION#
${fwcmd} add 3450 deny tcp from any to me dst-port 22
${fwcmd} add 3455 deny tcp from any to me dst-port 2298
${fwcmd} add 3505 deny tcp from any to me dst-port 81
${fwcmd} add 3555 deny tcp from any to me dst-port 5222

###############################################################

${fwcmd} add 10000 nat 1 all from any to any via $WIF
${fwcmd} add 65533 allow all from any to any
${fwcmd} add 65534 deny all from any to any
В rc.conf включено следующее:
firewall_nat_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall.my"

Ещё раз повторюсь, что над FreeBSD есть вышестоящий шлюз, поэтому во внешнюю сетевуху FreeBSD смотрит сетка 192.168.99.*

С такой конфигурацией firewall, у меня на компах которые идут после FreeBSD нет интернета, и на FreeBSD похоже тоже нет. По логам squid на FreeBSD видно, что не получается подключиться к вышестоящему шлюзу 192.168.99.*

Но когда я в скрипте за комментировал строчку:
${fwcmd} add 10000 nat 1 all from any to any via $WIF # заварачиваем все что проходит через внешний интерфейс в нат
То всё начинает работать... И ИНЕТ на компах которые подключены к внутренней сетевой FreeBSD и т.д.

Почему не работает NAT, потому что есть вышестоящий ШЛЮЗ? Если напрямую к ИНЕТУ подключу freebsd, то NAT должен же заработать?
Заранее спасибо...

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

ldb
проходил мимо
Сообщения: 3
Зарегистрирован: 2015-12-28 7:59:10

Правила для Firewall

Непрочитанное сообщение ldb » 2015-12-28 8:14:18

Здравствуйте.

У меня очень простой вопрос

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

nat 1 config log if $external reset same_ports deny_in
nat 1 all from any to any via $external
Пакет которому не будет найдено соответствие в таблице NAT?:
1. Дропнится на месте
2. Выйдет из NAT дальше проходить правила

Вода: Не понял по документации deny_in, останавливает проход в контексте NAT или всего фаирвола. Точнее из документации следует, что пакет полностью прекращает весь дальнейший обход в случае если не найдет соответствие. Но мне кажется это очень не логично, что NAT может удалять пакеты, динамическая таблица правил (keep-state) такое себе не позволяет, она возвращает пакет после своих таблиц.

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Правила для Firewall

Непрочитанное сообщение Reken » 2015-12-28 11:19:26

ldb, это Вы так "странно" ответили на мои вопросы выше? Или это Вы задали свои вопрос в чужой теме?

snorlov
подполковник
Сообщения: 3929
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Правила для Firewall

Непрочитанное сообщение snorlov » 2015-12-28 11:35:29

Reken писал(а):ldb, это Вы так "странно" ответили на мои вопросы выше? Или это Вы задали свои вопрос в чужой теме?
Статью http://www.lissyara.su/articles/freebsd ... /ipfw_nat/ читали? Если нет, то еще раз и на ночь тоже...
Настройка файрволла требует собственных знаний, а не вопросов/ответов в форуме...

ldb
проходил мимо
Сообщения: 3
Зарегистрирован: 2015-12-28 7:59:10

Правила для Firewall

Непрочитанное сообщение ldb » 2015-12-28 11:37:07

Это называет затупил. Я должным образом не изучил Вашу тему... И решил, что это общий топик по вопросам с фаирволом.

snorlov
подполковник
Сообщения: 3929
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Правила для Firewall

Непрочитанное сообщение snorlov » 2015-12-28 11:47:57

Reken писал(а):Подскажите мне пожалуйста... Что то я запутался...

Но когда я в скрипте за комментировал строчку:
${fwcmd} add 10000 nat 1 all from any to any via $WIF # заварачиваем все что проходит через внешний интерфейс в нат
То всё начинает работать... И ИНЕТ на компах которые подключены к внутренней сетевой FreeBSD и т.д.
Почему не работает NAT, потому что есть вышестоящий ШЛЮЗ? Если напрямую к ИНЕТУ подключу freebsd, то NAT должен же заработать?
Заранее спасибо...
Разберитесь что такое нат и как он работает, глядишь и вопросы исчезнут...

ldb
проходил мимо
Сообщения: 3
Зарегистрирован: 2015-12-28 7:59:10

Правила для Firewall

Непрочитанное сообщение ldb » 2015-12-28 13:39:18

Reken
А где у Вас описание NAT?
Что-то вроде этого:

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

nat 1 config log if $ВНЕШНИЙ_ИНТЕРФЕЙС ip $ЕСЛИ_СТАТИЧЕСКИЙ_АДРЕС_ДО_КУЧИ_ДОПИСАТЬ_ МОЖНО reset same_ports
Ps Если где-то скопировали набор правил, то Вам действительно следует почитать про ipfw и ipfw+NAT

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Правила для Firewall

Непрочитанное сообщение Reken » 2015-12-28 14:22:39

snorlov Спасибо за всю Вашу помощь оказанную мне на этом форуме, но я Вам уже ранее написал, я знаю что такое NAT, мне просто трудно было понять ipfw+nat, как там это всё крутится и вертится...
ldb Вы это имели ввиду? вот моё описание:

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

${fwcmd} nat 1 config log if $WIF reset same_ports deny_in redirect_port tcp 192.168.0.6:1723 1723 redirect_proto gre 192.168.0.6
${fwcmd} add 10000 nat 1 all from any to any via $WIF    #WIF=внешний интерфейс

snorlov
подполковник
Сообщения: 3929
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Правила для Firewall

Непрочитанное сообщение snorlov » 2015-12-28 14:39:17

Reken,
В статье, ссылку на которую я вам указал, ваш пример это номер 6... Когда вы выключаете свой нат, то ваш комп превращается в простой роутер, поскольку маршруты везде прописаны, то и работает без проблем. Впрочем может вы что-то не договариваете...

Reken
лейтенант
Сообщения: 619
Зарегистрирован: 2014-06-30 11:23:24

Правила для Firewall

Непрочитанное сообщение Reken » 2015-12-28 14:48:54

snorlov писал(а): В статье, ссылку на которую я вам указал, ваш пример это номер 6... Когда вы выключаете свой нат, то ваш комп превращается в простой роутер, поскольку маршруты везде прописаны, то и работает без проблем. Впрочем может вы что-то не договариваете...
Ну у меня наподобие настроено:

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

${fwcmd} nat 1 config log if $WIF reset same_ports deny_in redirect_port tcp 192.168.0.6:1723 1723 redirect_proto gre 192.168.0.6
${fwcmd} add 10000 nat 1 all from any to any via $WIF    #WIF=внешний интерфейс
Всё договариваю...
NAT работает