В данном посте постараюсь рассказать как быстро настроить wifi точку доступа на домашнем сервере при наличии беспроводной сетевой карты. Думаю сейчас wifi настолько распространен и зарекомендовал себя, что без его наличия уже и не удобно пользоваться какими либо девайсами. Сам пользуюсь ноутбуком и телефоном с wifi, поэтому жуть как не люблю провода.
Начнем с железа. Домашний сервер работает на debian 6. Там все и будет настраиваться. В качестве wifi карты я использовал D-link DWL-G510. Карточка старая, но для простых нужд сгодится.
Входим в терминал нашего сервера. Устанавливаем необходимые пакеты для организации точки доступа и работы с карточкой.
apt-get install hostapd iw wireless-tools
Убеждаемся что наше wifi устройство опознано в системе:
lspci | grep Ethernet
# или
lspci | grep Wireless
# или для usb адаптера
lsusb | grep Wireless
Вывод будет приблизительно такого вида:
server ~ # lspci | grep Ethernet
01:00.0 Ethernet controller: Atheros Communications Inc. AR2413 802.11bg NIC (rev 01)
01:02.0 Ethernet controller: VIA Technologies, Inc. VT6105/VT6106S [Rhine-III] (rev 8b)
01:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Нашлось три сетевые карты, одна из которых беспроводная, а именно Atheros Communications Inc. AR2413 802.11bg. Какое значение будет у Вас, зависит от вашего оборудования. Если оборудование определилось, то вероятнее всего в системе оно имеет идентификатор wlan0. Для работы в качестве точки доступа плату wifi нужно перевести в соответствующий режим, что и делаем:
iwconfig wlan0 mode Master
Если у Вас не выдало ошибок, то все отлично. В моем случае это не сработало, пришлось удалять интерфейс, и создавать заново с заданным режимом:
iw dev wlan0 del
iw phy phy0 interface add wlan0 type __ap
После произведенных действий смотрим, в каком режиме теперь работает наш адаптер
iwconfig wlan0
wlan0 IEEE 802.11bg Mode:Master Frequency:2.437 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr=2347 B Fragment thr=2346 B
Power Management:off
Надпись Mode:Master указывает на работу нужного нам режима. Так же для информации можно посмотреть список всевозможных режимов работы и скоростных показателей нашей wifi платы:
iw list
Wiphy phy0
Band 1:
Frequencies:
* 2412 MHz [1] (20.0 dBm)
* 2417 MHz [2] (20.0 dBm)
* 2422 MHz [3] (20.0 dBm)
* 2427 MHz [4] (20.0 dBm)
* 2432 MHz [5] (20.0 dBm)
* 2437 MHz [6] (20.0 dBm)
* 2442 MHz [7] (20.0 dBm)
* 2447 MHz [8] (20.0 dBm)
* 2452 MHz [9] (20.0 dBm)
* 2457 MHz [10] (20.0 dBm)
* 2462 MHz [11] (20.0 dBm)
* 2467 MHz [12] (disabled)
* 2472 MHz [13] (disabled)
* 2484 MHz [14] (disabled)
Bitrates (non-HT):
* 1.0 Mbps
* 2.0 Mbps (short preamble supported)
* 5.5 Mbps (short preamble supported)
* 11.0 Mbps (short preamble supported)
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
max # scan SSIDs: 4
Fragmentation threshold: 2346
RTS threshold: 2347
Supported interface modes:
* IBSS
* managed
* AP
* AP/VLAN
* monitor
* mesh point
Supported commands:
* new_interface
* set_interface
* new_key
* new_beacon
* new_station
* new_mpath
* set_mesh_params
* set_bss
* authenticate
* associate
* deauthenticate
* disassociate
* join_ibss
* set_wiphy_netns
* connect
* disconnect
Делаем пред-настройки сетевых параметров точки доступа:
vi /etc/network/interfaces
auto wlan0 eth0 eth1
iface wlan0 inet manual
Переходим собственно к самой програмной точки доступа. За её работу отвечает установленный демон hostapd. Изначально файла с настройка несуществует. Но его можно найти в папке с доками к демону. Извлекаем его от туда
zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz > /etc/hostapd/hostapd.conf
Проверяем что демон hostapd будет брать наш конфиг из нужного места. Смотрим, и редактируем файл
vi /etc/default/hostapd
# Defaults for hostapd initscript
#
# See /usr/share/doc/hostapd/README.Debian for information about alternative
# methods of managing hostapd.
#
# Uncomment and set DAEMON_CONF to the absolute path of a hostapd configuration
# file and hostapd will be started during system boot. An example configuration
# file can be found at /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF="/etc/hostapd/hostapd.conf"
# Additional daemon options to be appended to hostapd command:-
# -d show more debug messages (-dd for even more)
# -K include key data in debug messages
# -t include timestamps in some debug messages
#
# Note that -B (daemon mode) and -P (pidfile) options are automatically
# configured by the init.d script and must not be added to DAEMON_OPTS.
#
#DAEMON_OPTS=""
Собственно строка DAEMON_CONF указывает на файл с настройками.
Hostapd можно настроить в различной конфигурации. Приведу наиболее простой пример без шифрования. Открываем файл конфига:
vi /etc/hostapd/hostapd.conf
Вносим несколько изменений:
# обязательно указывваем тип интерфейса
# Driver interface type (hostap/wired/madwifi/prism54/test/none/nl80211/bsd);
# default: hostap). nl80211 is used with all Linux mac80211 drivers.
# Use driver=none if building hostapd as a standalone RADIUS server that does
# not control any wireless/wired driver.
driver=nl80211
# имя wifi сети
# SSID to be used in IEEE 802.11 management frames
ssid=HOME
# режим в котором будет работать wifi
# Operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g,
# Default: IEEE 802.11b
hw_mode=g
# номер беспроводного канала
# Channel number (IEEE 802.11)
# (default: 0, i.e., not set)
# Please note that some drivers (e.g., madwifi) do not use this value from
# hostapd and the channel will need to be configuration separately with
# iwconfig.
channel=6
Проверить правильность настройки файла, можно запустив демон с параметром указывающим на этот файл.
hostapd /etc/hostapd/hostapd.conf
Если ни каких ошибок не возникло, запускаем демон в нормальном режиме:
/etc/init.d/hostapd start
Всё почти готово. Можете проверить что wifi точка доступа заработала любым устройством с наличием wifi. Ну и посмотреть содержимое вывода команд:
ifconfig
mon.wlan0 Link encap:UNSPEC HWaddr 00-11-95-94-0E-EF-77-6C-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:168 (168.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 00:11:95:94:0e:ef
inet6 addr: fe80::211:95ff:fe94:eef/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:576 (576.0 B)
iwconfig
wlan0 IEEE 802.11bg Mode:Master Frequency:2.437 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr=2347 B Fragment thr=2346 B
Power Management:off
mon.wlan0 IEEE 802.11bg Mode:Monitor Frequency:2.437 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr=2347 B Fragment thr=2346 B
Power Management:off
Как видите, появился второй интерфейс mon.wlan0. Все так и должно быть. Точка доступа работает. В заключении остатется сделать сетевые настройки интерфейса wlan0. Что проделывается как с любым другим сетевым интерфейсом. К примеру:
vi /etc/network/interfaces
auto wlan0
iface wlan0 inet static
address 172.16.1.1
network 172.16.1.0
netmask 255.255.255.0
broadcast 172.16.1.255
Перезапускаем службу networking
service networking restart
Все готово! Удачного коннекта Вам))