>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 interface
work_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@