FreeBSD: Конфигурирование точки доступа Wi-Fi и авторизации

Итак, после приобретения Wi-Fi карты D-Link G-520 я озаботился созданием беспроводной сети в моей квартире. Итак. Что мы имеем. В качестве домашнего сервера рабочая станция с процессором VIA C3, гигабитный сетевой адаптер на чипе RealTek 8169SB/8110SB. Установлена ОС FreeBSD 6.2 со всеми последними патчами. Предполагается, что  данная машина будет играть роль точки доступа Wi-Fi, хранилища файлов, прокси, и файрвола для локальной сети. Проблема которая возникла - состоит в следующем.  На официальном сайте FreeBSD и в сети полно документации по настройке беспроводного соединения. Но описываются полностью только настройки клиентов беспроводных сетей. Документация о том как поднять точку доступа Wi-Fi не содержит ровным счетом ничего на тему, как сделать авторизацию для своей частной сети. Как закрыть сеть от вторжения извне. Посему данная статья и возникла. Здесь будет описано как поднять точку доступа  на базе FreeBSD и настроить авторизацию штатными средствами. Итак. У нас есть адаптер определившийся в системе как ral0. Для того чтобы настроить его работу как точки доступа freebsdap достаточно выполнить команду.

ifconfig inet 192.168.0.1 netmask 0xfffffff0 ssid freebsdap channel 11 mediaopt hostap

Чтобы сеть включалась постоянно при старте машины просто впишите в /etc/rc.conf

ifconfig_ral0="inet 192.168.0.1 netmask 0xfffffff0 ssid freebsdap channel 11 mediaopt hostap"

Теперь мы имеем точку доступа для локальной сети 192.168.0.0/24 Для настройки же авторизации и шифрования надо задействовать надо задействовать программу hostapd(8). Для нее нужно создать файл /etc/hostapd.conf В моем случае - я выбрал WPA-TKIP авторизацию - файл выглядит примерно так:

#интерфейс который нам нужен
interface=ral0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
#имя точки доступа
ssid=freebsdap
macaddr_acl=0
auth_algs=3
eapol_key_index_workaround=0
own_ip_addr=127.0.0.1
wpa=1
#Фраза авторизации
wpa_passphrase=Здесь был мой пароль :)
wpa_key_mgmt=WPA-PSK WPA-EAP
wpa_pairwise=TKIP CCMP

Чтобы демон hostapd запускался при старте машины надо вписать в /etc/rc.conf строчку:

hostapd_enable="YES"

Вот собственно и все. Теперь можно присоединяться к сети с ноутбука.

Комментарии

Submitted by azir (не проверено) on
> wpa_passphrase=Здесь был мой пароль мне, нубу, объясните: прямо в незашифрованном виде??? можно как-нить зашифровать? или смысла нет?

Submitted by Azarov on
Хм. А кто просит давать доступ на /etc/hostapd.conf кому то кроме пользователя root? :) Или у вас все файлы в каталоге /etc/ доступны кому не попадя? :)

Submitted by igor (не проверено) on
Можно использовать отдельный файл для psk, причём, для каждого mac адреса можно иметь отдельный psk у меня так: cat hostapd.conf interface=ath0 driver=bsd logger_syslog=1 logger_syslog_level=2 logger_stdout=-1 logger_stdout_level=1 debug=3 dump_file=/tmp/hostapd.dump ctrl_interface=/var/run/hostapd ctrl_interface_group=0 ssid=mynet macaddr_acl=0 ieee8021x=0 auth_algs=3 eapol_key_index_workaround=0 own_ip_addr=127.0.0.1 wpa=1 wpa_psk_file=/etc/hostapd.wpa_psk wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP cat /etc/hostapd.wpa_psk # List of WPA PSKs. Each line, except for empty lines and lines starting # with #, must contain a MAC address and PSK separated with a space. # Special MAC address 00:00:00:00:00:00 can be used to configure PSKs that # anyone can use. PSK can be configured as an ASCII passphrase of 8..63 # characters or as a 256-bit hex PSK (64 hex digits). 00:15:e9:a4:5e:b1 dlink_secret 00:00:00:00:00:00 another_passphrase for all STAs

Submitted by POPKA (не проверено) on
Всем привет, вообщем я купил данный девайс, как предполагалось он заработает ну в итоге я получил следующие [code]ndis0@pci0:15:0: class=0x028000 card=0x3c091186 chip=0x03021814 rev=0x00 hdr=0x00 vendor = 'Ralink Technology, Corp' class = network [/code] немного поморичевшись я собрал модуль при помощи ndisgen подгрузил его и о чуда wi-fi карта поднялась, немного пошаманив я настроил её как точку доступа, подключаюсь к ней проходит пару раз пинг и всё машина сразу в панику, хотелось бы узнать есть ли вариант обойти это, есть дрова на линукс интересно подойдут ли они? Если нет, то что можно сделать? [code]uname -r 6.2-RELEASE-p8 [/code]

Submitted by Azarov on
Попробуйте сделать cvsup исходников ядра.
router#uname -r
6.2-STABLE
Потом посмотрите документацию на тему сборки с драйвером ral и wi-fi. Я делал так. ndis во фре дрянь однако. Да, и еще. Виндовые драйвера к данной сетевухе кривые сами по себе могут быть. Тоже один из вариантов.

Submitted by Анонимный польз... (не проверено) on

Если у меня на клиентах стоят PCMCIA wi-fi от CISCO aironet (350 series), они не поддерживают WPA, как можно защитить точку доступа(freebsd 7.2) от "левых подключений". Трафик, я так понял, лучше по IPSec?
Спасибо!

Submitted by mirtipalov (не проверено) on

Хотел бы поинтересоваться, а получится ли то же самое сделать на FreeBSD 7.2 если у меня карточка Intel Pro Wireless 3945 ?
Дело в том, что я ранее пробовал настроить точку доступа в linux, так встроенный модуль iwl3945 никакого WPA не умеет, только ad-hoc с wep шифрованием создать можно.
Узнал, что нужно поставить ipw3945 драйвер - скачал его с сайта Intel - так там сначала нужно поставить ieee80211 subsystem - а она не ставится (то ошибки в коде компилятор находит, то ей не нравится что у меня уже есть какие-то файлы ieee80211) - знающие люди подсказали, что после 2.6.21 ядра вместо ieee80211 стоит mac80211 и скомпилировать ieee80211 под новые ядра нельзя. Попытался скомпилировать более старое ядро - тоже не идёт, компилятор ошибки в исходниках находит и не идёт дальше. А вот новые ядра linux нормально компилируются. Но они мне, понятное дело, не нужны.
Вот я и думаю, как обстоит дело с ipw3945 в freebsd - стоит ли пробовать настроить точку доступа там?

Submitted by Гость (не проверено) on

Во FreeBSD 8.0 этот способ не работает. Погуглив тему нашёл способ подъёма для ath0:

wlans_ath0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 172.16.1.1 netmask 255.255.255.0 ssid TEST mode autoselect"

Автор этого способа пишет, что всё работает. Одолжив у товарища карту D-Link DWA-520 на Atheros, я в этом сам убедился - действительно работает. Клиент подключается, АР пингуется.

Но мой DWA-510 (Ralink rt61) ни в какую! По аналогии, заменил ath0 в вышеприведённом примере на ral0.

wlans_ral0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 172.16.1.1 netmask 255.255.255.0 ssid TEST mode autoselect"

Клиент вроде бы подключается к точке, но тут же отваливается.

В выводе ifconfig меня смущает [b]txpower 0[/b].

Кто-нибудь решал подобную проблему?

Submitted by Никита (не проверено) on

Та же проблема, клиент подключается но регулярно отпадает, радиус его работы не более 3х метров.
FreeBSD ap.mike.local 8.0-STABLE FreeBSD 8.0-STABLE #0: Sat Apr 17 14:57:32 UTC 2010

ral0: flags=8843 metric 0 mtu 2290
ether 00:15:e9:47:0f:65
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
status: running

wlan0: flags=8843 metric 0 mtu 1500
ether 00:15:e9:47:0f:65
inet 192.168.8.1 netmask 0xfffffff8 broadcast 192.168.8.7
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g
status: running
ssid BSD channel 1 (2412 Mhz 11g) bssid 00:15:e9:47:0f:65
country US authmode WPA2/802.11i privacy MIXED deftxkey 3
TKIP 2:128-bit TKIP 3:128-bit txpower 0 scanvalid 60 pureg
protmode CTS dtimperiod 1 -dfs

Submitted by Azarov on

Чипы разные + там с мощностью недо поиграться.

man ifconfig  как раз на тему txpower читайте. Все там есть. И еще. Карты D-link все же говно в этом плане - там надо с параметрами играться чтоб сетка была стабильной.  Я в итоге упростил задацу и купил wi-fi роутер acorp(он же ADSL модем)

Submitted by Anubis (не проверено) on

Господа, подскажите как повесить все это хозяйство на DHCP сервак что бы он раздавал ажреса и по WIFI и по кабелю? желательно в одной подсети:) Спасибо.