Документация по ОС FreeBSD
Вторник, 04.11.2025, 03:04
Главная
Регистрация
Вход
Приветствую Вас
Гость
|
RSS
Меню сайта
Главная страница
Новости в мире Unix
NEW
Каталог файлов
NEW
Установка и настройка
Ports & Packages
cvs
Безопасность
Работа с железом
X Window
Multimedia
Man pages
Net
Apache
DNS
FTP
Mail
Samba
Squid
SSH
VPN
РРР
Shell
IPFW
Tips'n'tricks
RFC
Книги по FreeBSD
Темы экзамена BSDA
Гостевая книга
Форум на bsdportal.ru
Каталог сайтов
Самый свежий софт
Каталог ссылок
Категории каталога
Apache
[58]
DNS
[25]
FTP
[27]
Mail
[74]
Samba
[24]
Squid
[46]
SSH
[23]
VPN
[35]
РРР
[20]
Net
[173]
Главная
»
Статьи
»
Сеть
»
Net
Ralink 2870 и FreeBSD – настраиваем точку доступа [2011]
Сразу предупреждаю: заработало у меня только на freebsd 8.2, на 7.4 не стало, хотя здесь утверждают, что должно работать.
Итак, есть машинка с
FreeBSD selena.ski-elfa 8.2-STABLE FreeBSD 8.2-STABLE #5: Thu May 12 12:35:47 VOLST 2011 root@selena.ski-elfa:/usr/obj/usr/src/sys/selena i386
А так же USB wifi адаптер tp-link TL-WN727N, построенный на чипе Ralink 2870. Начиная с freebsd8.1 в системе есть драйвера для этого чипа, чтобы карточка опозналась, надо подгрузить модули ядра:
# kldload runfw
# kldload if_run
Либо добавляем их в /boot/loader.conf. Кроме того, нужен еще модуль wlan_xauth, соответственно, с ним поступаем так же.
Адаптер после этого определится как run0, однако с помощью ifconfig с ним работать не получается, надо создать виртуальное устройство wlan0, заодно сразу перевести его в режим точки доступа (hostap):
# ifconfig wlan0 create wlandev run0 wlanmode hostap ssid selena
Здесь wlanmode - режим работы (hostap – точка доступа, может быть еще BSS – режим клиента, и monitor – вообще ненужная рядовому обывателю штука. А нерядовые могут об этом почитать в man run), ssid - имя нашей сети, мы его будем видеть в списке сетей на клиенте.
Теперь надо включить аутентификацию, мы же не хотим, чтобы к нам в сеть ходили кто попало? Значит, создаем файлик /etc/hostapd.conf:
interface=wlan0
debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=selena
wpa=3
wpa_passphrase=mypassphrase
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
ну тут понятно, указали интерфейс, который обслуживать, указали имя сети, включили wpa2 (wpa=3, как ни странно, и wpa_pairwise=CCMP). mypassphrase – ключевое слово для доступа в сеть, его будут спрашивать у клиентов. Проявите фантазию, и вообще, меняйте ее почаще, нынче ломают все подряд.
Создаем папочку, которую в конфиге объявили:
# mkdir /var/run/hostapd
теперь надо запустить демона hostapd, который как раз и занимается аутентификацией:
/etc/rc.d/hostapd forcestart
Собственно, если после этого ifconfig показывает нам что-то наподобие:
wlan0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 2290
ether 00:11:43:54:65:76
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:43:54:65:76
authmode WPA privacy MIXED deftxkey 2 TKIP 2:128-bit TKIP 3:128-bit
txpower 31.5 scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250
roam:rssi11g 7 roam:rate11g 5 protmode CTS burst dtimperiod 1
То уже почти работает. Почему почти? потому-что надо еще настроить бридж между своей внутренней сетевкой и wifi адаптером. Не, если внутренней сетевки нету, то для wlan0 с помощью ifconfig нормально настраивается обычная сеть, но у меня как раз внутренняя проводная сеть и дополнительных маршрутов я вводить не хочу, поэтому буду делать bridge, у меня там еще и dhcp до кучи, в общем, будет удобно.
Для этого грузим соответствующий модуль и создаем мост:
# kldload if_bridge
# ifconfig bridge0 create
Объединяем в мост внутренний проводной интерфейс и беспроводной и поднимаем мост:
# ifconfig bridge0 addm wlan0 addm nfe0
# ifconfig bridge0 up
Вместо nfe0 следует подставить имя своего интерфейса.
Все, после этого я с ноута смог подцепиться к сети, ходить в интернет и иметь доступ к локальным ресурсам.
С автоматизацией процесса, однако, у меня не заладилось. Точнее, не заладился перевод адаптера в hostap. Умные люди для этого советую в /etc/rc.conf вставтиь строчку
wlans_run0="wlan0"
ifconfig_wlan0="ssid selena mode 11g mediaopt hostap"
Однако моя система на подобную конструкцию обижается фразой device not configured и ничего не работает. Я бился-бился, но так и не смог совладать с чудом враждебной техники, посему просто сляпал скрипт, который поднимает интерфейс и мост:
#!/bin/sh
/sbin/ifconfig wlan0 create wlandev run0 wlanmode hostap ssid selena
/sbin/ifconfig bridge0 create
/sbin/ifconfig bridge0 addm wlan0 addm nfe0
/sbin/ifconfig bridge0 up
/etc/rc.d/hostapd forcestart
И запускаю его вручную. Собственно, то же самое можно впихать в /etc/rc.local и тогда оно поднимается автоматически, но я рассудил, что мне wifi нужно редко, и нефиг ему светить по соседям, да еще подниматься не через правильный rc.conf а откуда-то сбоку. Собственно, если кто надоумит, как сделать правильно, то буду очень благодарен.
Если бы wlan0 корректно поднимался через /etc/rc.conf, то мост надо было бы поднимать там же, вставив туда вот такое:
cloned_interfaces="bridge0"
ifconfig_bridge0="up addm run0 addm nfe0"
Имя интерфейса не забываем менять.
Заодно тогда надо в /etc/rc.conf добавить
hostapd_enable="YES"
Однако при ручной загрузке из скрипта или автоматической из /etc/rc.local эта конструкция вызывает неработоспособность системы, так что я hostapd запускаю последней строчкой в скрипте.
Модули я гружу из /boot/loader.conf:
runfw_load="YES"
if_run_load="YES"
wlan_xauth_load="YES"
if_bridge_load="YES"
Источник:
http://www.daemony.ru/?p=1118
Категория:
Net
| Добавил:
oleg
(15.05.2011) | Автор:
skiangel
Просмотров:
1028
| Рейтинг:
0.0
/
0
|
- Оценить -
Отлично
Хорошо
Неплохо
Плохо
Ужасно
Всего комментариев:
0
Добавлять комментарии могут только зарегистрированные пользователи.
[
Регистрация
|
Вход
]
Форма входа
Друзья сайта
Google+
Copyright MyCorp © 2025