Приветствую!
Вопрос по повлду настройки шлюза с firewall: PF(Pocket Filter),
на предмет хождения netbios пакетов из одной сети в другую и обратно безпрепятственно, - может быть кто сталкивался.
Вводные:
Есть сетка рабочая, есть некая DMZ, в DMZ есть файловый сервер и требуеться его видеть через microsoft nighthood(сетевое окружение), монтировать в винде сетевые диски и так далие...
Обе сети соединяет шлюз FreeBSD 6.2 RC1 с двумя сетевыми интерфейсами.Я незнаю как такие вещим делаються и потому задаю вопрос здесь.
Вот что я пробывал:
1) сделать натинг широковещательных пакетов из одной сети в другую, - не вышло
2) сделать редирект широковещательных пакетов из одной сети в другую от имени сервера..
всё эт несработало ибо зачем ходить локальным широковещательным пакетам одной сети, скажем 192.168.0.0/24(work) в подсеть 192.168.1.0/24(DMZ)?:(
3) я попытался настроить мост с помощью options if_bridge в ядре и соответствующих настроек для нового интерфейса моста. Широковещал стал проходить но отказался нормально работать dhcp стоящий на сервере - он незнал с какого интерфейса какая подсеть приходит, ибо на bridge0 оно всё перемешивалось, и в сеть work стал выдавать ип-ки и настройки сети DMZ:))
Очень надеюсь увидеть от вас какие нибудь идеи, и/или примеры относительно данной задачи.С Уважением, xkw@
>3) я попытался настроить мост с помощью options if_bridge в ядре и
>соответствующих настроек для нового интерфейса моста. Широковещал стал проходить но отказался
>нормально работать dhcp стоящий на сервере - он незнал с какого
>интерфейса какая подсеть приходит, ибо на bridge0 оно всё перемешивалось, и
>в сеть work стал выдавать ип-ки и настройки сети DMZ:))- Очень правильное решение!
И оно будет работать!cat /etc/rc.conf:
# Routing enabling:
gateway_enable="YES"
router="/sbin/routed"
router_enable="YES"
router_flags="-q"# Network Bridging:
cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up" # bridget interfases# Firewall:
pf_enable="YES"
pf_rules="/etc/pf.conf"
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_program="/sbin/pflogd"#DHCP:
dhcpd_enable="YES"
dhcpd_ifaces="fxp0 fxp1" # But not brigre0!!!==============
cat /etc/pf.conf:work_if="fxp0" # Work Network
dmz_if="fxp1" # DMZ zone interfacework_net="192.168.0.0/24"
dmz_net="192.168.1.0/24"# Logging blocked packets:
block in log all
block out log all# WORK NETWORK:
pass in on $work_if proto tcp from any to $work_if port 22 keep state
pass in on $work_if from $work_net to any keep state
block out on $work_if all
state# DMZ:
pass in on $dmz_if proto tcp from any to $dmz_if port 22 keep state
pass in on $dmz_if from $dmz_net to !$work_net keep state
block out on $dmz_if all
pass out on $dmz_if proto { tcp, udp } from any to $dmz_net port { 21 22 53 80 2049 111 745 } keep state
pass out on $dmz_if proto { tcp, udp } from $flat_net to $dmz_net port { 139 137 } keep state
================Коротко о проделанном:
- в rc.conf мы указали для dhcp - работатьтолько на конкретных интерфейсах, без bridge0; Теперь он не путаеться:)
- в pf.conf сначало заблокировали всё, потом отдельно по каждому интерфейсу прописали ограничение на вход и на выход пакетов:
1) для рабочей сети - в любую другую без ограничений, и ответы от серверов разрешать.
на вход - никого.
плюс разрешить подключаться на шлюз по 22 порту;2) для DMZ: разрешить подключаться на шлюз по 22 порту;
разрешить любые исходящие соединения из сети DMZ кроме как в рабочую сеть work(например разрешить серверам доступ к интернету)
заблокировать все входящие в сеть DMZ соединения, кроме портов типа 21, 22, 53, 80, ... , и 139, 137 - это порты нашего NETBIOS samba;Всё, можно жить долго и счастливо! Удачи!)))
regards, procool@