Настройка сетевого моста в FreeBSD

03.08.2010 - 09:03

Необходимо было защитить сервер доступа к турникетам на платформе SecurOS. Было принято решение настроить брандмауэр на основе сетевого моста.
Схема сети:

Diagram5.png

Для работы моста требуются не менее два сетевых адаптера. У меня это vr0 и rl0.
Для включения поддержки сетевого моста, необходимо добавить строчку в ядре:
# cd /usr/src/sys/i386/conf
# cp GENERIC PFBRIDGE
# ee PFBRIDGE

#Включение в ядро функции сетевого моста
device          if_bridge

Так, как я использую межсетевой экран PF, я добавлю его поддержку в ядро:

# Package Filter
options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_PRIQ
options ALTQ_NOPCC
device pf
device pflog
device pfsync

Собираем ядро:

# cd /usr/src
# make buildkernel KERNCONF=PFBRIDGE
# make installkernel KERNCONF=PFBRIDGE
#reboot

Добавим параметры в /etc/sysctl.conf:

#Для фильтрации пакетов на входящих и исходящих интерфейсах
net.link.bridge.pfil_member=1
                                                                                                                                                             
#Для фильтрации пакетов на интерфейсе bridge0
net.link.bridge.pfil_bridge=0

далее в /etc/rc.conf пишем:

#назначаем IP сетевым интерфейсам
ifconfig_vr0="inet 192.168.100.20  netmask 255.255.255.0"
ifconfig_rl0="inet 192.168.100.30  netmask 255.255.255.0"

#создаем новый интерфейс bridge0
cloned_interfaces="bridge0"

#добавляем сетевые для роботы в качестве моста
ifconfig_bridge0="addm vr0 addm rl0 up"

Перезагружаем сервер и проверяем работоспособность моста.
Вот что должно появиться у вас после перезагрузки:

firewall# ifconfig
vr0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:1a:g0:cа:01:02
        inet 192.168.100.20 netmask 0xffffff00 broadcast 192.168.100.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8<VLAN_MTU>
        ether 00:01:6b:f2:0e:a1
        inet 192.168.100.30 netmask 0xffffff00 broadcast 192.168.100.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000
pfsync0: flags=0<> metric 0 mtu 1460
        syncpeer: 224.0.0.240 maxupd: 128
pflog0: flags=141<UP,RUNNING,PROMISC> metric 0 mtu 33204
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        ether 52:83:60:2d:31:9f
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: rl0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
        member: vr0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>

Ваша оценка: Нет Средняя: 2.3 (3 голосов)