랩 스위치 포트를 요청해서 eapol_test 를 돌리려 한다면 도구를 잘못 읽은 것입니다. 피어와 RADIUS 클라이언트는 모두 그 하나의 바이너리 안에 있으므로, 머신을 떠나는 유일한 대화는 RADIUS 교환 그 자체입니다. 시험 호스트와 인증 서버 사이의 라우팅된 터널이 네트워크 요구 사항의 전부입니다. 물리적인 802.1X 경로는 여전히 시험해야 할 다른 것이며, 이것이 아닙니다.

왜 그 이름이 사람들을 스위치 포트 찾기로 보내는가

EAPOL은 supplicant와 스위치가 LAN에서 쓰는 프레임 형식이고, 도구는 그 세계에서 자랐기 때문에 이름을 빌렸습니다. 제공되는 것은 피어 상태 기계와 RADIUS 클라이언트를 한 프로세스에 담은 시험 프로그램이므로, 802.1X 대화의 두 절반은 결코 선로에서 만나지 않습니다. 이름은 역사이고, 토폴로지 요구 사항이 아닙니다.

사람들이 여전히 포트를 요구하는 것은 프로그램이 인증자의 동작에 기대고 있고, 그것이 하드웨어처럼 들리기 때문입니다. 그 접착제는 인증자 상태 기계를 재현하므로 방에 액세스 포인트가 없어도 시험이 끝납니다. 컴파일된 바이너리는 wpa_supplicant의 EAP 피어를 hostapd의 RADIUS 클라이언트와 연결합니다. 스위치를 없애면 EAPOL 홉이 빠질 뿐 인증 로직이 빠지는 것은 아닙니다. 남는 것은 두 IP 호스트 사이의 클라이언트-서버 교환입니다.

RADIUS 교환 하나를 홉 단위로 따라가기

시도 하나를 따라가면 경로는 짧습니다. eapol_test 안의 피어가 설정한 메서드에 대한 EAP-Response를 만들고, 같은 프로세스의 RADIUS 클라이언트가 그것을 Access-Request에 넣어 페이로드를 Message-Authenticator 옆의 EAP-Message 속성에 실어 보냅니다. 그 데이터그램은 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 실행이 메서드와 서버의 질문에 답하고, 액세스 서비스가 적용의 질문에 답합니다.

관련 글