Операционную систему FreeBSD отличает стабильность и простота конфигурации. Именно поэтому она является хорошим выбором для шлюза в интернет для небольшого офиса. Восемь лет назад мы уже рассматривали простую конфигурацию, которую можно развернуть буквально за полчаса.
За прошедшее время точка доступа WiFi перестала быть чем-то экзотическим и стала обязательным атрибутом любого офиса. Далее будет показано как можно дополнить описанную ранее конфигурацию точкой доступа WiFi.
Краткий план: добавить в сервер WiFi-адаптер, настроить программную точку доступа (hostapd), объединить в мост (bridge) сетевые интерфейсы точки доступа и проводной локальной сети, и наконец поправить конфигурацию pf.
В качестве сетевого адаптера мы будем использовать TP-Link TL-WN781ND, который отличается низкой ценой, хорошей поддержкой во FreeBSD и за несколько лет эксплуатации показал себя исключительно стабильным и беспроблемным решеним.
Ещё одно небольшое уточнение: за прошедшие восемь лет ОС на сервере была пошагово обновлена до FreeBSD 11.1: сервис "named" был удалён из базовой поставки и теперь предоставляется пакетом "bind912", а dhcp-сервер - пакетом "isc-dhcp44-server". В остальном конфигурация не изменилась (и даже сами файлы конфигурации не изменны, разве что настройки "named" переместились из "/etc/namedb" в "/usr/local/etc/namedb").
Приступаем к настройке. Начнём с точки доступа. Добавим в "/etc/rc.conf" строки:
# Связываем сетевой интерфейс wlan0 с физическим ath0 wlans_ath0="wlan0" # wlan0 будет работать в режиме точки доступа create_args_wlan0="wlanmode hostap" # Разрешаем запуск демона hostapd hostapd_enable="YES"
Следующим шагом нужно сконфигурировать демон программной точки доступа (hostapd). Для этого нужно создать файл "/etc/rc.conf" следующего содержания:
# Имя интерфейса interface=wlan0 # Уровень отладки debug=7 # Сокет, через который можно будет управлять демоном ctrl_interface=/var/run/hostapd # Группа пользователей, которая будет иметь возможность управления ctrl_interface_group=wheel # Видимое имя сети ssid=best-company # Будем использовать шифрование WPA2 wpa=2 # Пароль нашей сети wpa_passphrase=p4330wrd # Протокол управления ключами wpa_key_mgmt=WPA-PSK # Канал, на котором будет работать наша точка доступа. channel=7
На этом настройка hostapd закончена и можно переходить к созданию моста. Напомним что у нас два проводных интерфейса: "em0" смотрит в локальную сеть и "le0" смотрит в интернет. Мы будем объединять "em0" и "wlan0" в мост "bridge0".
Сначала надо убрать (или закомментировать) в файле "/etc/rc.conf" связанные с "em0" настройки. Затем добавляем в этот же файл строки:
# Виртуальные интерфейсы, которые нам надо создать cloned_interfaces="bridge0" # Описываем настройки bridge0 ifconfig_bridge0="inet 172.31.255.1 netmask 255.255.255.0 addm em0 addm wlan0 up" # Входящие в мост интерфейсы должны быть подняты ifconfig_em0="up" ifconfig_wlan0="up"
Приступаем к настройке DHCP-сервера. Здесь надо только изменить имя интерфейса, на котором слушает DHCP-сервер. За это отвечает параметр "dhcpd_ifaces" в файле "/etc/rc.conf":
dhcpd_ifaces="bridge0"
В последнюю очередь меняются настройки файрволла. По сравнению с исходной конфигурацией изменений почти нет. Только в качестве внутреннего интерфейса в файле "/etc/pf.rules" теперь надо указывать "bridge0":
if_int = "bridge0"
На этом изменения в конфигурации заканчиваются и приходит время перезагрузить сервер. После перезагрузки всё должно работать: можно подключиться к точке доступа с помощью любого гаджета с WiFi и выйти в интернет или обратиться к компьютерам в локальной сети. Если что-то не работает как надо следут смотреть и анализировать логи:)
На этом всё. Приятной работы!