FreeBSD-шники ещё остались?

Nov 27, 2018 16:35

Решил вспомнить детство, собрал гейт на фряхе+ipfw. Но так как на тип файрвола "open" у меня адская интоксикация, захотел закрыть всё, и открывать по чуть чуть. И вот тут-то у меня начались проблемы: либо у меня проходят пакеты в обе стороны, либо ваще никак. В идеале разрешить самому рутеру лезть куда захочется, а вот приватным адресам разрешать ( Read more... )

freebsd, Вынос мозга, ИТ

Leave a comment

iadminko November 28 2018, 19:34:40 UTC
Да сейчас там всё просто, как жёппа новорождённого:

Ведро собрано с параметрами
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPDIVERT
options DUMMYNET

Что по умолчанию блокирует всё в конце, но это именно то, что я хотел.

Далее, скрипт:
#!/bin/sh

fwcmd="/sbin/ipfw -q"
if_public="em0"
# Публичный интерфейс на DHCP, поэтому адрес определяем командой, а не вбиваем ручками
ip_public=$(/sbin/ifconfig em0 | /usr/bin/awk '/inet/{print substr($2,0)}')
if_private="em1"
network_local="192.168.1.0/24"
${fwcmd} flush

# Сам NAT, вставлен автоматом фряхой. Именно два правила на один номер. Работают оба по отдельности. Зачем так надо, я так и не догнал.
${fwcmd} add 00050 divert 8668 ip4 from any to any via ${if_public}
${fwcmd} add 00050 nat 123 ip4 from any to any via ${if_public}

# Разрешаем всё на внутреннем интерфейсе
${fwcmd} add 00100 allow ip from any to any via lo0
# И не выпускаем это наружу
${fwcmd} add deny ip from any to 127.0.0.0/8
${fwcmd} add deny ip from 127.0.0.0/8 to any

# Проверочные пинги
${fwcmd} add allow icmp from any to any

# Начало фильтрации
# Разрешаем всё на интерфейсе внутренней сети
${fwcmd} add allow ip from any to any via ${if_private}

# Открываем ssh для доступа
${fwcmd} add allow ip from any to any 22 via ${if_public}
${fwcmd} add allow ip from any 22 to any via ${if_public}

# И тут у меня начинаются проблемы
# Данное правило разрешает ВСЁ на публичном интерфейсе - а я этого не хочу
${fwcmd} add allow ip from any to any via ${if_public}

# Если павило выше убрать и заменить на
${fwcmd} add allow ip from ${ip_public} to any out xmit ${if_public}
# то связь с внешним миром отрубается нахрен, хотя с самого интерфейса, вроде ходить не запрещено.

Вот пока на этом я и застрял.
Про фильтрацию внутренних пакетов наружу я пока даже и не заикаюсь.

Reply


Leave a comment

Up