Программная WiFi точка доступа

    В данном посте постараюсь рассказать как быстро настроить wifi точку доступа на домашнем сервере при наличии беспроводной сетевой карты. Думаю сейчас wifi настолько распространен и зарекомендовал себя, что без его наличия уже и не удобно пользоваться какими либо девайсами. Сам пользуюсь ноутбуком и телефоном с wifi, поэтому жуть как не люблю провода.

   Начнем с железа. Домашний сервер работает на debian 6. Там все и будет настраиваться. В качестве wifi карты я использовал D-link DWL-G510. Карточка старая, но для простых нужд сгодится.

    Входим в терминал нашего сервера. Устанавливаем необходимые пакеты для организации точки доступа и работы с карточкой.

apt-get install hostapd iw wireless-tools
apt-get install hostapd iw wireless-tools

    Убеждаемся что наше wifi устройство опознано в системе:

lspci | grep Ethernet
# или
lspci | grep Wireless
# или для usb адаптера
lsusb | grep Wireless
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)
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
iwconfig wlan0 mode Master

   Если у Вас не выдало ошибок, то все отлично. В моем случае это не сработало, пришлось удалять интерфейс, и создавать заново с заданным режимом:

iw dev wlan0 del
iw phy phy0 interface add wlan0 type __ap
iw dev wlan0 del
iw phy phy0 interface add wlan0 type __ap

    После произведенных действий смотрим, в каком режиме теперь работает наш адаптер

iwconfig wlan0
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
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
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
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
vi /etc/network/interfaces
auto wlan0 eth0 eth1
iface wlan0 inet manual
auto wlan0 eth0 eth1
iface wlan0 inet manual

    Переходим собственно к самой програмной точки доступа. За её работу отвечает установленный демон hostapd. Изначально файла с настройка несуществует. Но его можно найти в папке с доками к демону. Извлекаем его от туда

zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz > /etc/hostapd/hostapd.conf
zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz > /etc/hostapd/hostapd.conf

    Проверяем что демон hostapd будет брать наш конфиг из нужного места. Смотрим, и редактируем файл

vi /etc/default/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=""
# 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
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
# обязательно указывваем тип интерфейса
# 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
hostapd /etc/hostapd/hostapd.conf

    Если ни каких ошибок не возникло, запускаем демон в нормальном режиме:

/etc/init.d/hostapd start
/etc/init.d/hostapd start

    Всё почти готово. Можете проверить что wifi точка доступа заработала любым устройством с наличием wifi. Ну и посмотреть содержимое вывода команд:

ifconfig
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)
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
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
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
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
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
service networking restart

    Все готово! Удачного коннекта Вам))

VN:F [1.9.22_1171]
Рейтинг: 9.0/10 (1 голос)
Программная WiFi точка доступа, 9.0 out of 10 based on 1 rating

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *