В последнее время у провайдеров домашних сетей среди множества способов авторизации стал появляться способ с использованием стандарта IEEE 802.1x. Работает протокол предельно просто: пока клиент не идентифицировал себя, на порту бегают только 802.1x пакеты. В Windows можно настроить проверку подлинности в несколько кликов, но чаще дома установлен беспроводной машрутизатор, который раздает интернет. В этом топике пойдет речь о том, как наладить IEEE 802.1x + MD5 авторизацию на OpenWrt совместимом устройстве.
Cуществует море способов провести установку. Как правило, всё сводится к тому, что загруженный с сайта OpenWrt образ прошивки заливается через веб-интерфейс маршрутизатора, подробнее об этом можно почитать на вышеупомянутом сайте. Предположим, что у нас уже есть устройство с установленным OpenWrt: в качестве жертвы будет использоваться Linksys WRT54GL v1.1 и прошивка Kamikaze 8.09.2.
Итак:
И это еще не всё, потому что надо сделать, чтобы всё работало автомагически.
Создаем init скрипт /etc/init.d/wpa_signin:
Не забываем включить его:
Ссылки
Cуществует море способов провести установку. Как правило, всё сводится к тому, что загруженный с сайта OpenWrt образ прошивки заливается через веб-интерфейс маршрутизатора, подробнее об этом можно почитать на вышеупомянутом сайте. Предположим, что у нас уже есть устройство с установленным OpenWrt: в качестве жертвы будет использоваться Linksys WRT54GL v1.1 и прошивка Kamikaze 8.09.2.
Итак:
- Загружаем прошивку и прошиваем наш роутер.
- Заходим на него в первый раз по telnet root@192.168.1.1 и меняем пароль командой passwd, после чего telnet будет отключен, а ssh включен.
- Нам необходимо установить «особенный» wpa_supplicant, с поддержкой драйвера roboswitch:
ssh root@192.168.1.1
cd /tmp
opkg update
wget www.liacs.nl/~jwitteve/openwrt/8.09/brcm-2.4/packages/wpa-supplicant_0.6.9-2_mipsel.ipk
opkg install wpa-supplicant_0.6.9-2_mipsel.ipk
- Создаем конфигурационный файл для wpa_supplicant, например /etc/config/wpa_supplicant.conf:
ap_scan=0 network={ ssid="" key_mgmt=IEEE8021X eap=MD5 identity="логин" password="пароль" }
Кроме MD5 бывают и другие способы проверки подлинности, например TTLS PAP, в случае с которым требуются сертификаты. Подробнее о других способах можно прочитать, например, в man wpa_supplicant
- Теперь можно сделать тестовый запуск. В случае с WRT54GL провод провайдера воткнут в WAN порт, который в системе значится как интерфейс eth0.1:
# wpa_supplicant -dd -D roboswitch -c /etc/config/wpa_supplicant.conf -i eth0.1
Initializing interface 'eth0.1' conf '/etc/config/wpa_supplicant.conf' driver 'roboswitch' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/config/wpa_supplicant.conf' -> '/etc/config/wpa_supplicant.conf'
Reading configuration file '/etc/config/wpa_supplicant.conf'
В случае, если всё хорошо, мы увидим:
...
EAPOL: SUPP_PAE entering state AUTHENTICATED
EAPOL: Supplicant port status: Authorized
...
EAPOL authentication completed successfully
И теперь можно получить адрес:
# udhcpc -i eth0.1
udhcpc (v1.15.3) started
Sending discover...
Sending select for x.x.x.x...
Lease of x.x.x.x obtained, lease time 21600
И это еще не всё, потому что надо сделать, чтобы всё работало автомагически.
Создаем init скрипт /etc/init.d/wpa_signin:
#!/bin/sh /etc/rc.common START=99 start() { /usr/sbin/wpa_supplicant -i eth0.1 -D roboswitch -B -c /etc/config/wpa_supplicant.conf }
Не забываем включить его:
# /etc/init.d/wpa_signin enable
Ссылки