Wi-Fi роутер TP-LINK TL-WR741ND на момент написания статьи, согласно Яндекс.Маркету, можно приобрести за 600 рублей. «Из коробки» данный wi-fi роутер не умеет работать по протоколу 802.1x и расширяемому протоколу аутентификации EAP, также заводская прошивка при длительном времени работы зависает. К великому сожалению, всё еще остались провайдеры, которые используют различные методы аутентификации клиентов, например МТС (бывший Multinex) до сих пор использует EAP-MD5 аутентификацию. Wi-fi роутеры, которые умеют работать с EAP-MD5 аутентификацией, стоят в 3 и более раза дороже, чем TP-LINK TL-WR741ND. В этой статье я Вам расскажу как настроить роутер TL-WR741ND для аутентификации по протоколу 802.1x, рассмотрим возможности xsupplicant и примеры настроек для аутентификации по EAP.
#Добавлено:
Для роутера TP-LINK TL-WR740N устанавливайте OpenWRT, потом скачивайте для своей версии роутера sysupgrade.bin.
MD5-суммы для sysupgrade.bin:
a0c50e230fa2e3f4306ffeb320b73027 — V1
d8db5da84db565859a0929e2398c2817 — V4
И все делайте по инструкции, начиная с пункта 5.
1. Узнайте аппаратную версию Вашего роутера.
Для проверки аппаратной версии вашего устройства TP-LINK, переверните его и посмотрите на наклейку на нижней панели. В поле, где указан серийный номер (Serial Number) находится символьная строка “Ver: X.Y” (например, Ver: 1.0), в которой цифра Х – это аппаратная версия устройства. То есть, если строка выглядит так – “Ver: 1.1” – это значит, что аппаратная версия устройства – V1.
2. Если у Вас еще не установлена последняя версия официальной прошивки, то обновите прошивку роутера до последней версии. Скачать последнюю версию прошивки Вы сможете на официальном сайте TP-LINK.
3. Скачиваем и устанавливаем PuTTY и WinSCP.
4. Скачиваем из папки factory для Вашей аппаратной версии роутера файл firmware.bin и прошиваем его через web-интерфейс (как прошивали официальную прошивку, только указываем теперь firmware.bin). Из папки sysupgrade для Вашей аппаратной версии роутера скачиваем файл sysupgrade.bin.
5. Запускаем PuTTY.
Имя хоста(или IP-адрес): root@192.168.1.1
Порт: 23
Тип соединения: Telnet
Подключаемся, вводим команду:
passwd root
Вводим два раза новый пароль и закрываем окно терминала PuTTY.
6. Запускаем WinSCP.
Файловый протокол: SCP
Сервер: 192.168.1.1
Порт: 22
Имя пользователя: root
Подключаемся, при запросе пароля вводим ранее установленный пароль командой passwd.
Закачиваем на роутере в папку tmp ранее скачанный файл sysupgrade.bin
7. Запускаем PuTTY.
Имя хоста(или IP-адрес): root@192.168.1.1
Порт: 22
Тип соединения: SSH
Подключаемся, вводим пароль. Проверяем MD5-хеш командой:
md5sum /tmp/sysupgrade.bin
Сравниваем:
17f7dd6994f9525e2c7d55c9d28cca3d /tmp/sysupgrade.bin — V1 и V2
626661d420429bd126fd76ae0f6b1d0f /tmp/sysupgrade.bin — V4
Если все сходится, вводим команду:
sysupgrade -n /tmp/sysupgrade.bin
Ждите когда роутер перепрошьется и перезагрузиться, в окне терминала не отображается никакой информации об окончание прошивки, не отключайте питание и не перезагружайте сами роутер.
Если нет, перекачиваем файл sysupgrade.bin из папки sysupgrade.
Если даже после перекачивания не сходиться MD5-хеш, то пишем мне.
8. После перепрошивки, повторяем Пункт 5.
9. Запускаем PuTTY, параметры для подключения берем как в пункте 7, вводим команду:
vi /etc/xsupplicant.conf
По-умолчанию, у меня настроено для аутентификации по EAP-MD5.
Если Вам необходима аутентификация по EAP-MD5, то изменяем значения полей identity, username и password на Ваши данные, например:
network_list = all
default_netname = default
logfile = /tmp/log/xsupplicant.log
default
{
allow_types = eap_md5
identity = "YOUR_LOGIN"
eap_md5 {
username = "YOUR_LOGIN"
password = "YOUR_PASSWORD"
}
}
После редактирования сохраняем файл и вводим команду:
reboot
или
xsupplicant -ieth1
Ждем, если интернет не заработал, то смотрим логи:
tail /tmp/log/xsupplicant.log
Моя сборка прошивки основана на OpenWrt. OpenWRT — это чрезвычайно гибкий дистрибутив GNU/Linux для встраиваемых систем. В отличие от многих других дистрибутивов для роутеров, OpenWRT была создана с нуля и на данный момент является полностью функциональной, легко изменяемой операционной системой для вашего роутера. На практике это означает, что вы можете создать систему для решения конкретных задач, без ненужных приложений, при этом используя новейшее ядро Linux, которое еще не успело появиться в большинстве других дистрибутивов.
Прошивка содержит пакет xsupplicant, благодаря которому и реализуется возможность использования 802.1x и расширяемый протокол аутентификации EAP. Такой же возможность обладает и wpa-supplicant, но данный supplicant, по моим наблюдениям, неплохо нагружает процессор роутера в отличие от xsupplicant.
В документации к xsupplicant я нашел следующие поддерживаемые типы EAP: EAP-MD5, LEAP, EAP-MSCHAPv2, EAP-OTP, EAP-PEAP (версия 1 и 2), EAP-SIM, EAP-TLS, EAP-TNC, EAP-TTLSv0 (PAP/CHAP/MS-CHAP/MS-CHAPv2/EAP), EAP-AKA, EAP-GTC, EAP-FAST (частично)
Для настройки аутентификации по необходимому EAP типу необходимо корректировать xsupplicant.conf. Приведу пару примеров для авторизации по EAP-MSCHAPv2 и EAP-TTLSv0.
EAP-MSCHAPv2
network_list = all
default_netname = default
logfile = /tmp/log/xsupplicant.log
default
{
allow_types = eap_mschapv2
identity = "YOUR_LOGIN"
eap_mschapv2 {
username = "YOUR_LOGIN"
ntpwdhash = "3653E6452753C97846792567DFF599B6"
# password = "YOUR_PASSWORD" # если указать пароль и ntpwdhash,
# xsupplicant будет использовать ntpwdhash.
}
}
EAP-TTLSv0
network_list = all
default_netname = default
logfile = /tmp/log/xsupplicant.log
default
{
allow_types = eap_tls
identity = "YOUR_EMAIL"
eap_tls {
smartcard {
engine_id = opensc
opensc_so_path = "/usr/lib/opensc/engine_opensc.so"
key_id = 45
}
user_cert = /path/to/certificate
user_key = /path/to/private/key
user_key_pass = "PASSWORD_FOR_KEY"
root_cert = /path/to/root/cert
root_dir = /path/to/valid/root/certs
chunk_size = 1398
random_file = /path/to/random/source
session_resume = yes
}
}
Думаю логика понятна, примеры конфигураций для различных типов EAP вы сможете скачать ниже.
О сборке прошивки:
1. В сборке установлен web-интерфейс LuCI и русификатор к нему. Для управления роутером откройте в браузере: 192.168.1.1, логин: root, пароль: тот который вы установили).
2. Из прошивке убраны все пакеты связанные с usb, в автозагрузке, также отключите загрузку usb.
3. Установлены DNS от Google (8.8.8.8 и 8.8.4.4), чтобы отключить:
vi /etc/config/network
и изменить в секции wan: option peerdns ‘1’ и удалить строку option dns ‘8.8.8.8 8.8.4.4’.
config interface 'wan'
option _orig_ifname 'eth1'
option _orig_bridge 'false'
option ifname 'eth1'
option proto 'dhcp'
option peerdns '1'
reboot
В статье описаны действия, которые могут стать причиной неработоспособности вашего оборудования. Автор не несет никакой ответственности причиненной в следствие использования данной информации.