eapol_test через VPN: нужен ли обмену RADIUS второй уровень?
eapol_test запускает peer и клиент RADIUS в одном процессе, поэтому маршрутизируемый VPN переносит UDP 1812. Проверьте скомпилированный список методов, затем отдельно проверьте реальный доступ.
Попросите лабораторный порт коммутатора, чтобы запустить eapol_test — и вы, скорее всего, неверно поняли инструмент. Peer и клиент RADIUS оба живут внутри одного бинарника, поэтому единственный разговор, покидающий машину, — это сам обмен RADIUS. Маршрутизируемый туннель между тестовым хостом и сервером аутентификации — это всё сетевое требование. Физический путь 802.1X — другое, что, возможно, ещё нужно протестировать, и это не он.
Почему название заставляет людей искать порт коммутатора
EAPOL — это формат кадра, который supplicant и коммутатор используют в LAN, и инструмент заимствует название, потому что вырос из того мира. Поставляется тестовая программа, которая несёт конечный автомат peer и клиент RADIUS в одном процессе, поэтому две половины разговора 802.1X никогда не встречаются на проводе. Название — история, а не требование к топологии.
Люди по-прежнему просят порт, потому что программа опирается на поведение аутентификатора, а это звучит как оборудование. Её клей воспроизводит конечный автомат аутентификатора, поэтому тест завершается без точки доступа в комнате; скомпилированный бинарник связывает EAP peer из wpa_supplicant с клиентом RADIUS из hostapd. Удаление коммутатора удаляет шаг EAPOL, а не логику аутентификации. Остаётся обмен клиент-сервер между двумя IP-хостами.
Проследите один обмен RADIUS шаг за шагом
Проследите одну попытку, и путь короток. Peer внутри eapol_test создаёт EAP-Response для настроенного вами метода, а клиент RADIUS в том же процессе помещает его в Access-Request, неся полезную нагрузку в атрибутах EAP-Message рядом с Message-Authenticator. Эта датаграмма адресована серверу на UDP-порту 1812 и покидает хост, как любой другой IP-пакет, и именно здесь вступает туннель. Сервер оценивает её по своей политике и модулям методов, затем отвечает Access-Challenge, Access-Accept или Access-Reject.
eapol_test -c peap-mschapv2.conf -a 198.51.100.20 -p 1812 \
-s REPLACE_WITH_RADIUS_SECRET -t 30Бинарник берёт адрес сервера, порт и общий секрет из командной строки, а метод и учётные данные — из блока конфигурации в стиле wpa_supplicant. Ничто в этом вызове не зависит от соседства 2-го уровня: -a достигается маршрутизацией, и достаточно VPN, который его маршрутизирует. Если туннель отбрасывает датаграмму, тест проваливается точно так же, как против недоступного сервера в плоской LAN.
Бинарник и политика сервера — разные списки
Два независимых списка решают, может ли метод пройти, и путать их — значит потерять день. Первый список скомпилирован в бинарник: конфигурация сборки выбирает, какие методы EAP существуют, поэтому сборка без метода не может о нём договориться, что бы ни разрешал сервер. Второй список живёт на сервере, где политика говорит, какие из поддерживаемых методов может использовать этот класс клиентов. Для прохождения нужно пересечение, и ни один список не может заполнить пробел в другом.
Проверьте этот первый список, прежде чем винить сервер. Поищите имя метода в установленном бинарнике или прочитайте конфигурацию сборки, из которой он получен. Если метода нет, пересоберите, а не редактируйте политику RADIUS; если он есть, а обмен всё ещё не удаётся, проблема переместилась к учётным данным, политике или доверию к сертификату.
Чего прохождение всё ещё не покрывает
Успешный запуск доказывает один метод, для одного набора учётных данных, против одной политики RADIUS, по одному сетевому пути. Он не упражняет радио точки доступа, обработку EAPOL коммутатором, назначение VLAN после аутентификации и то, как концентратор VPN интегрируется с тем же сервером. Эти компоненты никогда не были на проверенном пути. Относитесь к результату как к ограниченному доказательству и указывайте, какую границу он покрывает, когда сообщаете о нём.
Полезная запись — это то, что наблюдали сервер и процесс каждый по отдельности: какой метод был согласован, где обмен остановился и что сервер записал в журнал. Держите общие секреты и закрытые ключи вне этой записи.
Контрольный список перед цитированием результата
Прежде чем кто-либо воспримет вывод как одобрение, подтвердите четыре вещи. Сборка включает тестируемый метод, конечная точка RADIUS и общий секрет принадлежат тестируемой среде, политика сервера допускает эту тестовую идентичность, а сетевой путь — того же класса, что используют производственные клиенты. Затем назовите то, чего запуск не коснулся: точка доступа, коммутатор, VLAN и интеграция концентратора каждая требует своей строки в плане тестирования.
Два теста с двумя владельцами лучше одного неоднозначного одобрения. Запуск eapol_test отвечает на вопрос о методе и сервере; служба доступа отвечает на вопрос о применении.