Windows 공용 방화벽 프로필에 의해 차단되는 VPN 클라이언트
Windows는 VPN 어댑터를 공용으로 분류하므로 LAN 규칙이 적용되지 않습니다. 프로필을 확인하고 인바운드 규칙 하나를 풀 범위로 제한한 다음 포트를 확인하세요.
터널은 올라와 있고 게이트웨이는 ping에 응답하며 파일 공유는 여전히 시간 초과됩니다. 이 조합이 라우팅 문제인 경우는 드뭅니다. Windows가 VPN 어댑터의 서브넷을 공용 프로필에 넣었고 개인 또는 도메인용으로 작성한 허용 규칙은 하나도 적용되지 않았습니다. 사무실에 문제없이 연결되는 노트북에서도, 다른 모든 클라이언트를 처리하는 RRAS 서버에서도 겪었고, 해당 프로필을 지목하면 수정은 짧습니다. 제가 일하는 순서와 다음 단계 전에 멈춰야 하는지 알려 주는 점검입니다.
트래픽이 실제로 어느 프로필로 도착하는지 확인
Windows 방화벽에는 단일 전역 모드가 없습니다. 연결된 각 인터페이스는 범주를 가지며 인바운드 패킷은 도착한 인터페이스의 범주로 필터링되므로, 터널 내 클라이언트가 무엇에 접근할 수 있는지는 VPN 어댑터의 프로필이 결정하며 옆의 Wi-Fi나 이더넷 어댑터가 결정하지 않습니다. 변경하기 전에 두 사실을 모두 확인하세요:
Get-NetConnectionProfile | Select-Object Name, InterfaceAlias, NetworkCategory, IPv4Connectivity
Get-NetFirewallProfile -Name Public | Select-Object Name, Enabled, DefaultInboundAction
표준 OpenVPN 또는 WireGuard 설치에서 VPN 어댑터는 식별되지 않은 네트워크로 나타나 공용 프로필에 들어갑니다. 이는 Windows가 분류할 수 없는 모든 네트워크의 기본값이며, 도메인 컨트롤러가 응답한 적도, 일치하는 게이트웨이 프로필이 있었던 적도 없습니다. 인터페이스 이름은 여기서 중요하지 않으므로 어댑터를 "VPN"이나 "Corp"이라고 불러도 아무것도 바뀌지 않습니다. DomainAuthenticated에는 도메인에 가입된 머신이 필요합니다 , 그 인터페이스를 통해 실제로 도메인 컨트롤러에 접근할 수 있어야 하며, 서브넷 하나만 전달하는 분할 터널은 이 조건을 충족하지 못합니다.
필요한 규칙이 이미 VPN 풀로 제한되어 있고 방금 읽은 범주에 이미 적용된다면 여기서 멈추세요. 필터링은 당신의 계층이 아니며 다음으로 볼 곳은 서비스 구성입니다. 이 점검은 십 초면 되고 한 시간의 규칙 편집을 아낍니다. 범주 이름과 각 범주가 다루는 범위는 Get-NetConnectionProfile 참조 문서에 설명되어 있습니다.
규칙을 편집하기 전에 라우팅이 아니라 필터링인지 확인하세요
ping은 약한 테스트입니다. 서비스 포트가 버려지는 동안 ICMP는 통과할 수 있고, 호스트는 LAN에서 응답하면서 같은 요청을 터널로는 거부할 수 있습니다. 클라이언트가 필요로 하는 포트를 클라이언트에서 테스트하세요:
Test-NetConnection 10.8.0.1 -Port 445
Test-NetConnection 10.8.0.1 -Port 3389 -InformationLevel Detailed
포트 테스트가 실패하면 두 계층을 분리하세요. 터널이나 경로 결함은 보통 게이트웨이 주소에서 아무 응답도 오지 않는 형태로 나타나고, 방화벽 삭제는 응답하는 게이트웨이와 응답하지 않는 서비스 포트로 나타납니다. RRAS로 풀을 게시하는 Windows 서버에서는 같은 테스트를 클라이언트에서 실행하고 서버 자체의 프로필을 읽으세요. RAS 인터페이스가 인바운드 규칙에서 클라이언트 범위를 전혀 언급하지 않는 범주에 있을 수 있으며, 그래서 그 머신은 자기 LAN에는 서비스하고 터널의 모든 클라이언트는 거부합니다.
결과가 여전히 모호하면 해당 프로필의 삭제를 기록하고 읽으세요:
Set-NetFirewallProfile -Name Public -LogBlocked True `
-LogFileName "$env:systemroot\system32\LogFiles\Firewall\pfirewall.log"
클라이언트 주소와 포트를 DROP과 함께 기록한 항목은 결정적이며 어떤 규칙이 빠졌는지도 알려 줍니다. 아무 내용도 없는데 클라이언트의 SYN이 나타나지 않는 로그는 호스트보다 상류를 가리키므로 다른 방화벽 개체를 건드리기 전에 터널, NAT 규칙 또는 풀 경로로 돌아가세요.
인바운드 규칙 하나를 클라이언트 풀로 제한
수정은 원격 주소가 전 세계가 아니라 풀인 단일 인바운드 허용 규칙입니다. 상승된 세션에서 실행하세요:
New-NetFirewallRule -DisplayName "VPN clients - SMB 445" `
-Direction Inbound -Action Allow -Protocol TCP -LocalPort 445 `
-RemoteAddress 10.8.0.0/24 -Profile Public서비스가 단일 바이너리라면 포트 목록 대신 -Program 매개 변수를 사용하는 프로그램 범위 규칙을 선호하면 예외가 프로세스와 원본 범위 모두로 제한됩니다.
프로필 선택은 같은 실수가 반대 방향으로 일어나는 지점입니다. -Profile Public 어댑터가 공용이고 공용으로 유지되면 충분합니다. -Profile Any 서비스가 Windows의 어댑터 분류와 무관하게 동작해야 할 때 정당화될 수 있지만 원격 범위가 유지되는 동안만 그렇습니다. 결코 정당화될 수 없는 것은 -RemoteAddress Any 공용 프로필에서의 사용이며, 그 규칙은 노트북이 연결하는 모든 카페와 호텔 네트워크를 따라가며 그 서브넷을 공유하는 누구에게나 포트를 엽니다.
풀을 규칙 옆에 기록하세요. -RemoteAddress 10.8.0.0/24 VPN 풀이 다시 번호가 매겨지는 날 조용히 일치하지 않게 되고, 장애는 원래 버그와 똑같이 보이므로 오후 하나를 더 잡아먹습니다. 규칙 이름을 서비스와 원본 범위로 짓고, -Group 와 함께 유지하며 풀 정의가 바뀔 때마다 다시 읽으세요. 한 화면에서 감사할 수 있는 규칙 목록은 아무도 찾지 못하는 올바른 규칙보다 낫습니다.
범주가 결정일 때만 범주를 바꾸세요
인터페이스를 개인으로 바꾸는 것도 동작하지만 잘못된 기본값입니다. 개인 프로필에는 파일 및 프린터 공유, 네트워크 검색, 원격 데스크톱, 기준선에 따라 그 이상을 다루는 많은 기본 제공 허용 규칙이 있으므로 VPN 어댑터를 다시 분류하면 터널의 모든 클라이언트에 대해 한꺼번에 모두 활성화됩니다. 범위가 제한된 규칙 하나는 하나의 서비스를 하나의 범위에 부여합니다. 신뢰할 수 없는 네트워크에도 연결하는 노트북에서 그 차이는 겉모습의 문제가 아닙니다.
분류가 정말 잘못된 경우도 있는데, 사무실 서브넷을 전달하는 상시 또는 사이트 간 터널은 신뢰된 인프라이며, 그 어댑터를 개인으로 표시하는 것은 티켓마다가 아니라 정책으로 한 번 결정하는 정당한 설계 선택입니다. 그렇게 할 때는 명시적으로 하세요:
Set-NetConnectionProfile -InterfaceAlias "OpenVPN TAP-Windows6" -NetworkCategory Private관리되는 장치에서는 먼저 그룹 정책이나 MDM 기준선이 그 설정을 소유하는지 확인하세요. 소유한다면 로컬 변경은 다음 새로 고침에서 되돌려지고, gpresult /h 소유한 정책을 알려 주므로, 엔드포인트가 아니라 그곳에서 고치세요.
양쪽 끝에서 확인하고 흔적을 남기세요
변경 후 사용자가 보고한 흐름을 클라이언트에서 확인하세요:
Test-NetConnection 10.8.0.1 -Port 445
Get-NetFirewallRule -DisplayName "VPN clients - SMB 445" | Get-NetFirewallAddressFilter | Select-Object RemoteAddress
Get-NetFirewallRule -DisplayName "VPN clients - SMB 445" | Get-NetFirewallPortFilter | Select-Object Protocol, LocalPort
그런 다음 다음 주에 깨질 것들에 대해 루프를 닫으세요. 호스트를 재부팅하고 다시 테스트하세요. 잘못된 프로필로 제한된 규칙은 어댑터가 다른 범주로 돌아올 때까지 계속 동작하므로, 두 번째 클라이언트에서 테스트하세요. 오래된 임대를 가진 클라이언트 하나가 풀 불일치를 숨길 수 있습니다. 추가한 규칙과 제거한 규칙을 세어 보세요. 겹치는 예외가 두 줄 수정을 아무도 검토할 수 없는 필터링 정책으로 바꾸는 길이기 때문입니다.
완료라고 하기 전에:
- 규칙에 명시된 프로필은 트래픽이 도착하는 인터페이스의 프로필입니다.
- 원격 범위는 VPN 풀이며 그 풀은 서버가 실제로 배포하는 것과 일치합니다.
- 추가한 규칙 중 어느 것도
-RemoteAddress Any공용 프로필에서 사용하지 않습니다. - 테스트를 통과시키기 위해 비활성화한 것은 없으며 모든 범주 변경은 누가 승인했는지 기록합니다.