Настройка роутера TL-WR741ND и TL-WR740N для авторизации по 802.1X и расширяемому протоколу аутентификации EAP

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.

hardware-version

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.

telnet_router

6. Запускаем WinSCP.
Файловый протокол: SCP
Сервер: 192.168.1.1
Порт: 22
Имя пользователя: root

winscp_router

Подключаемся, при запросе пароля вводим ранее установленный пароль командой 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

В статье описаны действия, которые могут стать причиной неработоспособности вашего оборудования. Автор не несет никакой ответственности причиненной в следствие использования данной информации.