Страница 1 из 1

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

Добавлено: Сб сен 09, 2023 1:50 pm
icedog
no connect
no connect
23302_original.jpg (5.95 КБ) 7564 просмотра
В мире информации важное значение имеет возможность ее передачи. Устройствами беспроводной передачи данных на сегодняшний день никого не удивишь, за разумную цену можно приобрести аппаратно реализованную проекцию поставленной задачи.

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

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

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

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

Код: Выделить всё

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

Осталось автоматизировать раздачу 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; 
}
Статья относится и была написана в 2006 году