Строим полноценный шлюз на базе FreeBSD (bridge+ipfw+wifi+DNS+DHCP)

Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

На рынке сейчас огромное количество разнообразных маршрутизаторов (роутеров), с огромным количеством функции, но они в основном подходят для малых офисов и частных квартир и стоимость их довольна низкая. Но все кардинально меняется когда подключаешь крупные офисы, где нагрузка на роутеры довольно велика, соответственно стоимость таких устройств бьет по карману. Выходом может послужить Ваш старенький компьютер, в который можно докупить сетевые платы и wi-fi карточку и получить отличный роутер, который будет служить верой и правдой очень долгое время.

 И так в предыдущиbх статьях, мы настроили DNS и DHCP server, собрали новое ядро с файрволом и мостом.

 

Настройка DNS

Настройка DHCP

Настройка IPFW

Настройка WiFi

 

Пример

re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether bc:5f:f4:64:5d:b7
hwaddr bc:5f:f4:64:5d:b7
inet 10.102.15.43 netmask 0xffffff00  
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active


vr0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:1c:f0:d1:1a:75
hwaddr 00:1c:f0:d1:1a:75
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (none)
status: no carrier

wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether e8:94:f6:4f:2f:7a
hwaddr e8:94:f6:4g:2f:9a
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: no carrier

У нас три сетевых платы:

re0 - смотрит в сторону провайдера (WAN)

vr0 - локальный интерфейс

wlan0 - wifi адаптер

Настроим wifi адаптер

Если Ваш адаптер не появляется в ifconfig. Возможно он просто выключен или FreeBSD не поддерживает данный адаптер.

Ишем wifi адаптер

pciconf -vl | grep Wireless

device = 'AR9227 Wireless Network Adapter'

Создаем интерфейс wifi

ifconfig wlan0 create wlandev ath0

Так как мы строим шлюз с wifi, то прописываем в rc.conf

nano /etc/rc.conf

#wifi
hostapd_enable="YES"
wlans_ath0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="up ssid mywifi mode 11g channel 10 txpower 40"

Создаем файл hostapd

nano /etc/hostapd.conf

interface=wlan0
debug=4
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=mywifi
wpa=2
wpa_passphrase=Ваш пароль
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
macaddr_acl=0 фильтрация по mac адресам (По умолчанию выключена)

Включаем фильтрацию по mac

macaddr_acl=1
accept_mac_file=/etc/accept_mac

 

Настроим Мост (bridge0)

Объединяем два физических интерфейса

Прописываем

nano /etc/rc.conf

#bridge
cloned_interfaces="bridge0"
ifconfig_bridge0="inet 192.168.9.1 netmask 255.255.255.0 addm vr0 addm wlan0 up" 

На интерфейсе vr0 прописывать ничего не надо, как и на wlan0

! При настройке DHCP в rc.conf интерфейс нужно указывать  bridge0

Перезагружаем машину

reboot

После перезагрузки наблюдаем

ifconfig

re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
ether bc:5f:f4:64:5d:b7
hwaddr bc:5f:f4:64:5d:b7
inet 10.102.15.43 netmask 0xffffff00 
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active


vr0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
ether 00:1c:f0:d1:1a:75
hwaddr 00:1c:f0:d1:1a:75
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (none)
status: no carrier

wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether e8:94:f6:4f:2f:7a
hwaddr e8:94:f6:4f:2f:7a
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 10 (2457 MHz 11g) bssid e8:94:f6:4f:2f:7a
regdomain 32924 country CN indoor ecm authmode WPA2/802.11i
privacy MIXED deftxkey 2 TKIP 2:128-bit TKIP 3:128-bit txpower 20
scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfs
groups: wlan

bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 02:be:20:6c:a6:00
inet 192.168.9.1 netmask 0xffffff00 broadcast 192.168.9.255
nd6 options=9<PERFORMNUD,IFDISABLED>
groups: bridge

Посмотреть клиентов подключенных можно командой

less /var/db/dhcpd/dhcpd.leases

Теперь Мы можем пользоваться своим роутером. Удачи.

Добавить комментарий