Gentoo Linux Программная точка доступа на базе Broadcom Corporation BCM4318

Версия для печатиВерсия для печати

wi-fi

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

Выбор как всегда есть, можно оставаться в "каменном веке" и довольствоваться птичкой в в клетке, либо урезать бюджет в связи с непредвиденными затратами. Воспользуемся альтернативным вариантом и заставим работать имеющееся железо во благо наших нужд, с минимальными затратами и на шаг вперед от конкурентов (:

Требуется поднять программную точку доступа с использованием ноутбука, применить WPA/WPA2 шифрование, настроить автоматическую выдачу ip-адресов только на беспроводном интерфейсе. Задача реализована с использованием Gentoo Linux.

Xарактеристика контроллера


lspci -nnk
02:03.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)
Subsystem: Dell Wireless 1370 WLAN Mini-PCI Card [1028:0005]
Kernel driver in use: b43-pci-bridge

В ядре необходимо сделать сделаем доступными


CONFIG_B44=m
CONFIG_B44_PCI_AUTOSELECT=y
CONFIG_B44_PCICORE_AUTOSELECT=y
CONFIG_B44_PCI=y

Потребуются пакеты, содержащие firmware. Также можно самостоятельно извлечь нужный firmware и уложить его в директорию /lib/firmware/b43

net-wireless/b43-firmware
net-wireless/b43-fwcutter

После сборки ядра и загрузки с ним проверяем работоспособность wi-fi, не путать с рабочим состоянием

iwconfig wlan0


wlan0 IEEE 802.11bg Mode:Master Frequency:2.437 GHz Tx-Power=0 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off

Устройство функционирует

Параметры сети, касающиеся интерфейса net.wlan0

/etc/conf.d/net


modules_wlan0=( "!wpa_supplicant" )
essid_wlan0="Point_1" # Название точки доступа
mode_wlan0="ad-hoc" # Режим работы точки
config_wlan0="192.168.7.1/24"
mtu_wlan0=1492 # Можете поэкспериментировать с 2272
preup() {
iwconfig wlan0 txpower on
iwconfig wlan0 rate 54M
}

Для обеспечения шифрования требуется пакет net-wireless/wpa_supplicant, комментарии излишни, документация пакета исчерпывающая, стоит лишь отметить, что дополнительных настроек в файле /etc/wpa_supplicant/wpa_supplicant.conf в данном случае не требуется, также упоминаний о настройках wpa в файле /etc/conf.d/net нет.

Собственно сама программа, обеспечивающая работу программной точки доступа

net-wireless/hostapd

Основной файл настройки /etc/hostapd/hostapd.conf

Приведенный конфиг является рабочим


interface=wlan0
driver=nl80211
ssid=Point_1 # Название точки доступа (будет вещаться в сеть)
country_code=RU #согласно стандарта ISO 3166-1 (или цифровой 643), от него зависит частота, количество каналов и мощность сигнала
hw_mode=g
channel=6 # канал настраивается именно в этом файле
macaddr_acl=0
wpa=1
wpa_passphrase=Password_my # пароль в читаемом виде
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=1
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
auth_algs=1

Если все указано правильно, перезапускаем интерфейс в следующем порядке


/etc/init.d/hostapd stop && /etc/init.d/net.wlan0 stop
/etc/init.d/hostapd start

Должны появиться два интерфейса вместо одного, реальным является wlan0

iwconfig

wlan0 IEEE 802.11bg Mode:Master Frequency:2.437 GHz Tx-Power=0 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:off
mon.wlan0 IEEE 802.11bg Mode:Monitor Tx-Power=0 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on

ifconfig


mon.wlan0 Link encap:UNSPEC HWaddr 00-16-CE-59-2C-D2-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18810 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:1181345 (1.1 MiB) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 00:16:ce:59:2c:d2
inet addr:192.168.5.35 Bcast:192.168.5.255 Mask:255.255.255.0
inet6 addr: fe80::216:ceff:fe59:2cd2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1492 Metric:1
RX packets:327967 errors:0 dropped:0 overruns:0 frame:0
TX packets:300771 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:333928711 (318.4 MiB) TX bytes:90136688 (85.9 MiB)

Программ для тестирования сетей достаточно много, останавливаться на них в этой статье не будем.

Отсканируем сеть на другом компьютере с ОС Linux


iwlist wlan0 scan
wlan0 Scan completed :
Cell 01 - Address: 00:16:CE:59:2C:D2
Channel:6
Frequency:2.437 GHz (Channel 6)
Quality=70/70 Signal level=-40 dBm
Encryption key:on
ESSID:"Point_1"
Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
9 Mb/s; 12 Mb/s; 18 Mb/s
Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
Mode:Master
Extra:tsf=0000000ac8418b71
Extra: Last beacon: 48ms ago
IE: Unknown: 0008686F742D73706F74
IE: Unknown: 010882848B960C121824
IE: Unknown: 030106
IE: Unknown: 2A0104
IE: Unknown: 32043048606C
IE: WPA Version 1
Group Cipher : CCMP
Pairwise Ciphers (1) : CCMP
Authentication Suites (1) : PSK

Видим название нашей точки, канал, включенное шифрование и качество сигнала.

Для визуального контроля можно воспользоваться программой wavemon wavemon

Осталось автоматизировать раздачу ip-адресов оборудованию, прошедшему проверку. Для этих целей потребуется net-misc/dhcp

Содержимое файла /etc/dhcp/dhcpd.conf будет лаконичным


option option-150 code 150 = text;
default-lease-time 7200;
max-lease-time 14400;
log-facility local7;
subnet 192.168.5.0 netmask 255.255.255.0 {
range 192.168.5.50 192.168.5.155;
option domain-name-servers 208.67.220.220;
option routers 192.168.5.35;
option broadcast-address 192.168.5.255;
}

Желаю успехов!