Прошу помощи в настройки IPFW

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

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

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
tangichhan
рядовой
Сообщения: 24
Зарегистрирован: 2011-09-29 9:37:47

Прошу помощи в настройки IPFW

Непрочитанное сообщение tangichhan » 2016-06-10 3:26:22

Добрый день, уважаемые знатоки своего дела. Прошу помощи в настройки встроенного IPFW на FreeBSD10. Помощь в настройки громко сказано, скорее разобраться в принципе работы самого IPFW. Я не селен в таких дела, прошу ногами не пинать.
На просторах интернета нашел конфиг:

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

#!/bin/sh -
fwcmd=/sbin/ipfw
# Данные по внешней сети
LanOut="rl0"
IPOut="195.195.95.5"
NetOut="24"
MaskOut="255.255.255.0"

# Данные по локальной сети
LanIn="rl1"
IPIn="192.168.10.1"
NetInIP="192.168.10.0"
NetInMask="24"
MaskIn="255.255.255.0"

# Привелигированные адрес (доступ избранным)
# Смотри примечание
MyIP1="192.168.10.97"
MyIP2="192.168.10.98"
MyIP3="192.168.10.99"

# Первый ДНС адрес наш. Ниже он ни где не используется, но можно указать фильтрацию UDP 53 если вы хотите, чтобы
# доступ к вашей зоне имел только ограниченный круг серверов. Лучший выход из положения использовать для службы DNS
# окружение chroot - jail - sandbox - называйте как хотите :)
dns1="192.168.10.1"
dns2="195.195.95.50"
dns3="195.190.90.9"

# Сбросить все правила которые устанавливались ранее
${fwcmd} -f flush

# Пропускать все пакеты сгенерированные сервером (кажется что lo0 настолько понятно, что не знаешь как еще обьяснить :))
# Без этого вообще ничего работать не будет :)
${fwcmd} add pass all from any to any via lo0

# Stop private networks (RFC1918) from entering the outside interface.
# Как видим из названия - это адреса, которым не место во внешней сети и появление их из Интернета на интерфейс,
# смотрящий в Инет - недопустимо - смело отбрасываем :)
${fwcmd} add deny ip from 192.168.0.0/16 to any in via ${LanOut}
${fwcmd} add deny ip from 172.16.0.0/12 to any in via ${LanOut}
${fwcmd} add deny ip from 10.0.0.0/8 to any in via ${LanOut}

# Принудительно заворачивать всех внутренних пользователей обращающихся к любым адресам по протоколам http,https,ftp
# на squid (смотри примечание 1 и 2)
# Правило fwd должно быть выше правила divert иначе оно не будет работать
${fwcmd} add fwd 127.0.0.1,3128 tcp from ${NetInIP}/${NetInMask} to any http,https,ftp via ${LanIn}

# Отправляем пакеты из внутренней сети наружу и с наружи для внутренней сети на обработку NAT
${fwcmd} add divert natd ip from ${NetInIP}/${NetInMask} to any out via ${LanOut}
${fwcmd} add divert natd ip from any to ${IPOut} in via ${LanOut}

# Это и следующее правила значительно облегчают жизнь файрволу :)
# Пропускаем все соединения с установленным битом RST или ACK
# По другому - пропускаем установленные соединения соединение
${fwcmd} add pass tcp from any to any established
# Разрешаем все пакеты выходящие из внешнего интерфейса с внешнего IP
${fwcmd} add pass ip from ${IPOut} to any out xmit ${LanOut}

# Избранным беспрепятственный доступ (все открывать неразумно)
${fwcmd} add pass tcp from ${MyIP1} to any 20,21,22,23,80,443,4000
${fwcmd} add pass tcp from any 20,21,22,23,80,443,4000 to ${MyIP1}
${fwcmd} add pass tcp from ${MyIP2} to any 20,21,22,23,80,443,4000
${fwcmd} add pass tcp from any 20,21,22,23,80,443,4000 to ${MyIP2}
${fwcmd} add pass tcp from ${MyIP3} to any 20,21,22,23,80,443,4000
${fwcmd} add pass tcp from any 20,21,22,23,80,443,4000 to ${MyIP3}

# Запрещаем - FTP, терминал, Squid - снаружи
${fwcmd} add deny tcp from any to any 20,21,22,23,3128 in via ${LanOut}
# Запрещаем - www, FTP, терминал - изнутри
${fwcmd} add deny tcp from any to any 20,21,22,23,80,443 in via ${LanIn}
${fwcmd} add deny tcp from any to any 8000-8104 in via ${LanIn}

# Разрешаем почту, DNS
${fwcmd} add pass tcp from any to any 25,110 via ${LanOut}
${fwcmd} add pass tcp from any 25,110 to any via ${LanOut}
${fwcmd} add pass udp from any to any 53 via ${LanOut}
${fwcmd} add pass udp from any 53 to any via ${LanOut}

${fwcmd} add pass all from any to any via ${LanIn}

# Доступен сервер www из внешнего мира
${fwcmd} add pass tcp from ${IPOut} 80 to any via ${LanOut}
${fwcmd} add pass tcp from any to ${IPOut} 80 via ${LanOut}

#ICMP
${fwcmd} add allow icmp from any to ${IPOut} in via ${LanOut} icmptype 0,3,4,11,12
${fwcmd} add allow icmp from any to ${NetInIP}/${NetInMask} in via ${LanOut} icmptype 0,3,4,11,12
${fwcmd} add allow icmp from ${IPOut} to any out via ${LanOut} icmptype 3,8,12
${fwcmd} add allow icmp from ${IPOut} to any out via ${LanOut} frag

${fwcmd} add deny log all from any to any via ${LanOut}

${fwcmd} add deny log ip from any to any

Как срабатывает правило при прохождении пакета, по первому или по последнему правилу удовлетворяющее условие?
Последний раз редактировалось f_andrey 2016-06-22 11:54:18, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.

Хостинговая компания 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/

LBV
ефрейтор
Сообщения: 60
Зарегистрирован: 2014-09-03 10:18:00

Прошу помощи в настройки IPFW

Непрочитанное сообщение LBV » 2016-06-10 10:31:18

Фаервол ipfw это обширная тема и я думаю ни у кого нет желания разжевывать его, тем более на форуме, т.к. уже есть предостаточно вменяемых статей на этом сайте, например: http://www.lissyara.su/articles/freebsd ... /ipfw_nat/ изучай. Там и ответ есть на твой вопрос.

Andrei12
проходил мимо
Сообщения: 6
Зарегистрирован: 2016-06-21 10:27:25

Прошу помощи в настройки IPFW

Непрочитанное сообщение Andrei12 » 2016-06-22 10:58:57

Добрый день. Да понятно что есть маны и статьи но то что мне нужно не нашел. Есть нас freebsd10 mpd5+radius+билинг. Билинг и радиус на других серваках. Билинг тем пользователям которые не оплатили инет выдает пул адресов 172.17.0.0.16 и доступа в инет нет как с помощью ipfw завернуть пользователей на заглушку типа закончились деньги или на сайт компании? Ниже конфиг ipfw там заблокированные пользователи имеют доступ в инет, как запретить знаю. Спасибо

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

---------------------------------------------------------------------------------------------------------------------------------------
#!/bin/sh

ipfw=echo
ipfw=ipfw
add="$ipfw add"

$ipfw -q -f flush

IF_WAN=ххх.ххх.ххх.ххх
IF_LAN101=vlan101
IF_LAN=vlan4020

IP_NAT1=ххх.ххх.ххх.ххх

$ipfw nat 1 config ip $IP_NAT1
$add 1 deny all from "table(0)" to any via $IF_WAN
#$add 5 fwd 127.0.0.1,3128 tcp from 172.18.0.0/32 to "table(1)" dst-port 80
#$ipfw nat 5 config ip 10.10.240.119 redirect_port tcp 127.0.0.1:80 80
$add 10 allow ip from any to any via lo0
$add 11 allow all from 172.20.2.10 53 to me #DNS
$add 12 allow all from me to 172.20.2.10 53 #DNS
$add 15 allow icmp from any to me
$add 20 skipto 10000 ip from any to any in recv $IF_WAN
$add 30 skipto 20000 ip from any to any out xmit $IF_WAN
$add 40 skipto 30000 ip from any to any in recv vlan4020
$add 41 skipto 30000 ip from any to any in recv vlan101
$add 50 skipto 40000 ip from any to any in recv "ng*"
$add 60 allow ip from any to any out
$add 70 deny log ip from any to any
$add 10020 check-state
$add 10100 nat 1 ip from any to $IP_NAT1
$add 11000 deny log ip from any to any
$add 20000 nat 1 ip from 172.16.0.0/16 to any
$add 20001 nat 1 ip from 172.17.0.0/16 to any
$add 21000 allow ip from me to any keep-state
$add 22000 deny log ip from me to any
$add 30000 allow ip from any to me
$add 31000 deny log ip from any to any
$add 40000 deny ip from any to any dst-port 35691
$add 40010 deny tcp from any to 'table(10)' dst-port 80
$add 41020 allow ip from 172.16.0.0/16 to any
$add 41021 allow ip from 172.17.0.0/16 to any
$add 41050 deny log ip from any to any

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Прошу помощи в настройки IPFW

Непрочитанное сообщение Alex Keda » 2016-06-23 22:34:49

есть какой-то глубинный смысл загружать именно с номерами правил?
Убей их всех! Бог потом рассортирует...