Показаны сообщения с ярлыком точка доступа. Показать все сообщения
Показаны сообщения с ярлыком точка доступа. Показать все сообщения

18 февраля 2015

Wi-Fi на BSD системах

Думаю у многих есть желание добавить функционал точки доступа к своему FreeBSD серверу. Очевидно, зачем покупать лишнее устройство в виде отдельно стоящего Wi-Fi-роутера, если практически тоже самое можно получить от вашего сервера с минимальными затратами.

Но  те, кто уже сталкивались с этой задачей, знают, что не все так гладко. Поэтому в этой статье я постараюсь описать все грабли, на которые не следует наступать и быстро настроить wi-fi сеть.

Нам понадобится обычная wi-fi карта, USB или PCI [Express].

И тут появляется первая проблема, с которой вы можете столкнуться. Он связана с тем, что не все карточки поддерживаются драйверами. Поэтому важно знать, как подобрать подходящую и рабочую карту.

Для чипов разных производителей с разными интерфейсами шин существуют отдельные драйверы. Например, для Broadcom на PCI это bwi, для Atheros  на  PCI- ath, atheros на USB - uath, Ralink на USB - run, rum и т.д.

На страницах man есть подробные описания последних версий каждого из них, включая какие конкретно модели карточек поддерживаются.
 
От версии к версии эти списки пополняются, поэтому с большой вероятностью ваш старенький адаптер будет работать.

Проверить поддерживаемые беспроводные адаптерв можно непосредственно на сайте в разделе GetFreeBSD>Release Information> Hardware Notes> 3.5. Wireless Network Interfaces
 
Если вашего адаптера нет в числе поддерживаемого, то можно попробовать использовать windows драйвер в обертке NDIS. Но имейте в виду, что такой драйвер  не сможет работать в режиме точки доступа!

Здесь есть полный список и поддерживаемых чипов всех производителей для BSD-систем. 
Что бы узнать на каком чипе ваша карточка, достаточно открыть ее описание на сайте wikidevi.com. Обращайте внимание, что некоторые модели имеют несколько ревизий на разных чипах, поэтому внимательно сверяйте версии. Они указываются на наклейках коробки или самих устройствах.

Так же обращайте внимание, что не все драйверы поддерживают 11n режим, даже если на самом устройстве написано, что оно работает. На текущий момент его поддерживают всего три драйвера ath, iwn и mwl.

Посмотрев, что предлагается в ближайших магазинах мой выбор пал на два адаптера D-Link DWA-140 и DWA-160, оба собраны на чипах Ralink и поддерживаются драйвером run, но пока только в 11g режиме. Их основное отличие - второй может работать в двух диапазонах 2,4 и 5 ГГц. Стоимость 580 и 850 руб соответственно.
 
Будем считать, что подходящий адаптер у вас имеется. Теперь приступаем непосредственно к настройке.

Опишем общий процесс поиска, как узнать какое устройство подключено.
После того, как вы подключили устройство, посмотрим, что оно из себя представляет.

Если это  USB устройство, то пишем
# usbconfig dump_device_desc
Находим там ваш адаптер по ключевым словам 802.11
ugen4.2: <802.11 n WLAN Ralink> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (450mA)

bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x2001
idProduct = 0x3c20
bcdDevice = 0x0101
iManufacturer = 0x0001 <Ralink>
iProduct = 0x0002 <802.11 n WLAN>
iSerialNumber = 0x0003 <1.0>
bNumConfigurations = 0x0001
Берем его idProduct и ищем в этом списке. Таким образом вы узнаете полное наименование и даже чип.

Если это PCI, то воспользуемся утилитой pciconf.
# pciconf -lv
Получите список всех PCI устройств с указанием драйвера, идентификатора производителя, наименования, класса и подкласса. Например,
rl0@pci0:0:9:0: class=0x020000 card=0x813910ec chip=0x813910ec rev=0x10 hdr=0x00
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL-8139/8139C/8139C+'
    class      = network
    subclass   = ethernet
После того, как вы узнали на каком чипе ваше устройство и какой нужен драйвер. Обращаемся к справке man, там сказано, что необходимо прописать в /boot/loader.conf  для загрузки модуля драйвера. В моем случае это.
if_run_load="YES"
runfw_load="YES"
После перезагрузки у вас должно появится новое устройство.
# ifconfig
run0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 2290
        ether ac:f1:df:01:e5:64
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
        status: running
Если нет, то дайте команду:
# ifconfig wlan0 create wlandev run0
И посмотрите создался ли у вас интерфейс wlan0.
# ifconfig wlan0
Если создался, то удалим:
# ifconfig wlan0 destroy
Дальше в /etc/rc.conf  напишем
ifconfig_wlan0="inet 192.168.0.1/24"
wlans_run0="wlan0"
create_args_wlan0="wlanmode hostap channel 7 country RU"
hostapd_enable=YES
Далее настроим WPA2 аутентификацию. 
И создадим файл
# vi /etc/hostapd.conf
С таким содержимым
interface=wlan0
hw_mode=g
ssid=Your_name
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
# 1 - WPA1; 2 - WPA2; 3 - WPA1+WPA2
wpa=3
wpa_passphrase=Password
# алгоритм управления
wpa_key_mgmt=WPA-PSK
# алгоритмы шифрования
wpa_pairwise=CCMP
Во избежание раскрытия пароля закрываем доступ на чтение файла всем кроме root.
# chmod 700 /etc/hostapd.conf
Вешаем dhcp на wlan0, прописываем в rc.conf
dhcpd_ifaces="wlan0"
Настраиваем фаервол. Для примера добавим в ipfw правило разрешающее все через интерфес wlan0.
add 1098 allow all from any to any via wlan0
Запускаем hostapd
# service hostapd forcestart
И вуаля, у вас появилась сеть  "Your_name".

Но если вдруг за место этого у вас появилось "panic: page fault" типа такого


не отчаивайтесь, у меня такое тоже наблюдалось на FreeBSD 10.1-RELEASE и исключительно на x86, на amd64 все четко. Мне помогло обновление мира до последней текущей версии, 10.1-STABLE #4 r278159.
 
Перед запуском Wi-Fi сети очень важно узнать какие частотные каналы еще не заняты и выбрать любой свободный. Иначе будут проблемы в работе. Например вы просто не сможете подключиться к вашей сети.

Если понадобится удалить точку доступа, то пишем
# ifconfig wlan0 destroy
Вручную создать
# ifconfig wlan0 create wlandev run0 wlanmode hostap ssid Your_name
Сканировать на доступные сети
# ifconfig wlan0 up scan
Или так
# ifconfig wlan0 list scan
Посмотреть, на каких каналах может работать ваш адаптер.
# ifconfig -v wlan0 list channel
И вручную установить нужный канал
# ifconfig wlan0 channel 13
Включить/выключить сеть.
 # ifconfig wlan0 down
 # ifconfig wlan0 up
Перезапустить wlan0 по настройкам из /etc/rc.conf
# service netif restart wlan0

12 июня 2013

Wi-fi точка доступа средствами Windows

Wi-FiОказывается можно организовать точку доступа на ноутбуке или персональном компьютере стандартными средствами самой ОС Windows. Технология называется Virtual Wi-Fi, но имеется одно незначительное ограничение разрешается только одна виртуальную точка доступа с обязательным шифрованием WPA2-PSK/AES.

Начиная с Windows 7 в network shell были включены новые команды для управления Virtual Wi-Fi. Рассмотрим их.
netsh wlan set hostednetwork [mode=]allowed|disallowed
Разрешить или запретить использование сети   
netsh wlan set hostednetwork [ssid=]<Имя сети> [key=]<пароль> [keyUsage=]persistent|temporary
Настройка параметров сети,
где SSID – идентификатор SSID сети;
Key- Ключ безопасности;
keyUsage указывается ключ безопасности постоянным или временным

netsh wlan show setting
Посмотреть свойства сети и ее состояние можно командой

netsh wlan show hostednetwork setting=security
Параметры безопасности размещенной сети. Показывает, ключ безопасности и пароль заданный в netsh wlan set hostednetwork

netsh wlan start hostednetwork
Запуск сети
netsh wlan stop hostednetwork
Остановка сети

Разберем процесс создания Virtual Wi-Fi на практике. 
Для создания новой сети запускаем командную строку от имени администратора и
выполняем в ней следующую команду
netsh wlan set hostednetwork mode=allow ssid="Name" key="password" keyUsage=persistent 
В сетевых подключениях появится новая сеть

Теперь нужно разрешить общий доступ к интернету для этой сети. Открываете свойства подключения, через которое выходите в интернет, переходите на вкладку Доступ. И ставим галочку "Разрешить .. использовать подключение .." и выбираем из списка сеть, созданную на предыдущем этапе.

Теперь запускам сеть:
netsh wlan start hostednetwork
Все готово! Теперь в  центре управления сетями появится новая активная сеть, к которой можно подключаться.

 Для удобства запуска и остановки сети можно создать два bat-файлика.
start.bat
netsh wlan start hostednetwork
stop.bat
netsh wlan stop hostednetwork
сделать на них ярлыки и в дополнительных свойствах на вкладке ярлык поставить галку "Запуск от имени Администратора" и start.bat в автозагрузку.


Теперь виртуальная точка будет создаваться автоматически при загрузке системы, но при этом будет появляться запрос службы контроля учетных записей пользователя.
И еще если вы используете фаервол, то не забудьте добавить необходимые разрешающие правила. Я покажу на примере COMODO.
Но для начала нужно выяснить какая подсеть у вашего виртуального адаптера. В командной строке вводим ipconfig /all, что бы увидеть параметры всех сетей.  Там находим Microsoft Virtual WiFi Miniport Adapter и смотрим какие у него ip и маска.
Значит подсеть 192.168.137.0, 255.255.255.0. У вас может отличаться!
Добавим в фаервол новую зону, назовем ее Virtual WiFi.
Теперь на вкладке Глобальные правила добавим правило в фаервол.
Разрешить все входящие и исходящие из Virtual WiFi на любой адрес.
И перевести фаервол в безопасный или пользовательский режим.
 
Теперь соединения по Virtual WiFi SoftAP будут проходить. Теперь смело можно раздавать wi-fi с ноутбука!