RouterOS OpenVPN 및 NPS: auth가 아니라 user-auth-method를 설정하세요
RouterOS에서 auth는 터널 다이제스트를 고르고 user-auth-method는 RADIUS 요청이 어떻게 검사되는지 결정합니다. 두 번째를 NPS 정책에 맞추세요.
RouterOS는 OpenVPN 로그인으로 NPS에 도달하고도 거부될 수 있으며, 흔한 원인은 이름이 둘 다 인증처럼 들리는 두 설정입니다. 하나는 터널용 암호화 다이제스트를 고르고, 다른 하나는 사용자의 자격 증명을 RADIUS에 어떻게 제시할지 결정합니다. 다이제스트를 바꿔도 PAP 요청이 MS-CHAPv2가 되는 일은 결코 없으며, 서비스를 몇 번을 다시 시작해도 마찬가지입니다. 아래 체크리스트는 둘을 분리한 뒤, 실패한 로그인 하나를 그것을 판정한 NPS 정책까지 추적합니다.
1단계: 둘 중 하나를 바꾸기 전에 두 설정을 모두 읽으세요
터널을 종료하는 라우터에서 유효한 OpenVPN 서버 구성을 출력하세요. 백업이나 복사한 포럼 게시물이 아닙니다. 관심 있는 두 필드는 보통 같은 메뉴에 있고 대안처럼 읽힙니다. 그렇지 않습니다: 하나는 데이터 채널, 다른 하나는 자격 증명 교환에 관한 것입니다.
/interface ovpn-server server print
/interface ovpn-server server export
auth 필드는 sha1, sha256 같은 다이제스트를 나열하고 터널 패킷을 인증하는 HMAC을 제어합니다. user-auth-method 필드는 pap 또는 mschap2를 선택하고 라우터가 사용자의 자격 증명을 RADIUS에 어떻게 제시하는지 결정합니다. 다이제스트 변경은 두 번째 동작을 바꿀 수 없으므로, 첫 번째를 조정해도 같은 거부가 계속 살아남습니다.
릴리스에서 user-auth-method을 전혀 노출하지 않는다면 여기서 멈추세요. 오래된 RouterOS 빌드는 OpenVPN 서버에서 이를 제공하지 않을 수 있으며, 수정은 더 새로운 버전에서 복사한 명령이 아니라 지원할 수 있는 릴리스에 속합니다.
2단계: 실제로 로그인을 거부한 정책을 찾으세요
NPS 쪽에서는 연결 요청이 네트워크 정책에 따라 평가되며, 일치하는 정책에 명시된 인증 방법은 클라이언트가 실제로 제시한 것 중 하나여야 합니다. 요약 집계를 읽는 대신 실패한 로그인 하나를 시간과 사용자로 연관시키세요. 보안 로그는 허용 및 거부된 요청을 이유 코드와 함께 기록하므로 라우터의 일반적인 실패 줄보다 훨씬 많은 것을 알려줍니다.
Get-WinEvent -LogName Security -MaxEvents 200 |
Where-Object { $_.Id -in 6272,6273 } |
Format-List TimeCreated,Id,Message
이벤트에서 세 가지를 읽으세요: 일치하는 정책 이름, 인증 방법, 이유 코드입니다. MS-CHAPv2를 요구하는 정책은 비밀번호가 맞아도 PAP 요청을 거부하고, 도메인 계정을 요구하는 정책은 로컬 계정을 거부합니다. RADIUS 클라이언트 항목도 라우터의 원본 주소와 일치해야 하며, 그렇지 않으면 어떤 정책도 조회되기 전에 요청이 버려집니다. 그중 어느 것도 OpenVPN 로그에는 나타나지 않습니다.
요청이 NPS에 전혀 도달하지 않으면 여기서 멈추세요. 공유 암호, 클라이언트 주소 또는 UDP 1812 문제이며, 인증 방법을 바꿔도 해결되지 않습니다.
3단계: 양쪽에서 한 가지 방법만 바꾸세요
승인된 설계가 MS-CHAPv2라면 라우터에 설정하고 일치하는 정책이 이를 받아들이는지 확인하세요. 한쪽을 바꾸고 다시 테스트한 뒤 다른 쪽을 바꾸세요. 둘을 한꺼번에 바꾸면 어느 쪽이 중요했는지 말할 수 없게 됩니다.
/interface ovpn-server server set user-auth-method=mschap2
/interface ovpn-server server print
/log print where topics~"radius"
오류를 없애려고 NPS에서 모든 더 약한 방법을 활성화하지 마세요. 백엔드는 선택한 방법이 검증할 수 있는 자료를 보유해야 합니다. MS-CHAPv2는 비밀번호나 도메인에 대한 접근이 필요하고, 정책은 그 자료를 만들어낼 수 없습니다. 정책을 넓히면 공격자가 같은 계정에 시도할 수 있는 것도 넓어집니다. 방법, 정책 이름, 변경 참조를 함께 기록해 다음 사람이 추측이 아니라 결정을 물려받게 하세요.
터널의 인증서 검증은 이전과 똑같이 유지하세요. 자격 증명 방법은 서버 신원을 대신하지 않으며, 테스트를 통과시키려고 TLS 검사를 낮추는 것은 한 문제를 더 나쁜 문제와 맞바꾸는 일입니다.
4단계: 로그인 세 번과 권한 하나를 테스트하세요
허용된 사용자, 잘못된 비밀번호, 제외된 사용자를 각각 새 세션에서 테스트하세요. 첫 번째는 경로를, 두 번째는 자격 증명 검사가 실제임을, 세 번째는 정책이 여전히 제외해야 할 사람을 제외함을 증명합니다. 캐시된 세션은 세 가지를 모두 숨길 수 있으므로 시도 사이에 연결을 끊으세요.
/log print where topics~"ovpn"
/radius monitor 0
인증 성공이 체크리스트의 끝은 아닙니다. 클라이언트가 받은 주소와 그 주소가 도달할 수 있는 리소스를 확인하세요. 사용자가 올바르게 인증하고도 잘못된 풀에 떨어질 수 있기 때문입니다. 할당된 주소가 잘못되었다면 문제는 방법이 아니라 프로필이나 RADIUS 응답 특성에 있습니다. 티켓을 닫기 전에 둘 다 확인하세요.
라우터 설정과 NPS 정책이 같은 방법을 명시하고, 허용된 사용자가 새 세션으로 연결하며, 잘못된 비밀번호가 거부되고, 제외된 사용자가 계속 제외되며, 할당된 주소가 의도한 풀과 일치할 때 체크리스트가 완료됩니다. 그보다 못하면 다음 로그인은 우연에 맡겨집니다.