Как стать автором
Обновить

IEEE 802.1x + MD5 авторизация на OpenWrt

Время на прочтение2 мин
Количество просмотров6.5K
В последнее время у провайдеров домашних сетей среди множества способов авторизации стал появляться способ с использованием стандарта IEEE 802.1x. Работает протокол предельно просто: пока клиент не идентифицировал себя, на порту бегают только 802.1x пакеты. В Windows можно настроить проверку подлинности в несколько кликов, но чаще дома установлен беспроводной машрутизатор, который раздает интернет. В этом топике пойдет речь о том, как наладить IEEE 802.1x + MD5 авторизацию на OpenWrt совместимом устройстве.


Cуществует море способов провести установку. Как правило, всё сводится к тому, что загруженный с сайта OpenWrt образ прошивки заливается через веб-интерфейс маршрутизатора, подробнее об этом можно почитать на вышеупомянутом сайте. Предположим, что у нас уже есть устройство с установленным OpenWrt: в качестве жертвы будет использоваться Linksys WRT54GL v1.1 и прошивка Kamikaze 8.09.2.
Итак:
  1. Загружаем прошивку и прошиваем наш роутер.
  2. Заходим на него в первый раз по telnet root@192.168.1.1 и меняем пароль командой passwd, после чего telnet будет отключен, а ssh включен.
  3. Нам необходимо установить «особенный» 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

  4. Создаем конфигурационный файл для 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
  5. Теперь можно сделать тестовый запуск. В случае с 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

Ссылки
Теги:
Хабы:
+5
Комментарии5

Публикации

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн