Infra

AWS Client VPN, 클라이언트 경로 강제 적용 기능 지원

Client VPN

7 min read
AWS Client VPN, 클라이언트 경로 강제 적용 기능 지원

들어가며

2025년 4월 28일 AWS 블로그에 “AWS Client VPN, 클라이언트 경로 강제 적용 기능 지원” 이라는 글이 게시되었습니다. 해당 기능을 사용하면 사용자의 디바이스 라우팅 테이블을 지속적으로 추적하여, 구성된 설정에 따라 아웃바운드 트래픽이 VPN 터널을 통해 흐르도록 보장합니다. 그리고 수정된 네트워킹 경로 설정이 탐지되면 자동으로 경로를 원래 구성으로 복원합니다.

클라이언트 라우팅 강제 적용은 연결된 디바이스의 기본 라우팅 테이블을 모니터링하고 클라이언트 VPN 엔드포인트에 구성된 네트워크 경로에 따라 아웃바운드 네트워크 트래픽이 VPN 터널로 전달되도록 합니다. 여기에는 VPN 터널과 충돌하는 경로가 감지되는 경우 디바이스의 라우팅 테이블 수정이 포함되어 위와 같은 라우팅 충돌 문제를 회피할 수 있습니다. 또한, 클라이언트의 의도적인 VPN 경로 우회를 차단할 수 있습니다.

실습하기

윈도우11 호스트 환경에서 WSL에서 사용중인 172.20.16.0/20 대역이 있는 상황에서 CIDR이 중복되는 172.20.0.0/20 AWS VPC를 생성하고, ClientVPN 연결 시 경로 강제 기능 적용/미적용에 따른 동작 차이를 확인 합니다.

※ 5.2.0 이상의 AWS 제공 Client VPN 클라이언트를 사용해야 합니다.

Step 1. 로컬 WSL 네트워크 환경 이해하기

현재 제 로컬호스트는 10.1.30.0/24 네트워크에 포함되어 있으며, eth0 인터페이스에 10.1.30.49 IP가 할당되어 있습니다. WSL을 구성하여 윈도우 호스트에 가상 인터페이스가 부여되며 172.20.16.1 IP가 부여되고, 해당 인터페이스를 사용하여 WSL 네트워크를 구성하게 됩니다.

그림 1. WSL 네트워크 구성도
그림 2. 윈도우 호스트와 WSL 호스트 간 Ping 테스트 화면
그림 3. 윈도우 호스트의 라우팅 테이블 정보

Step 2. AWS VPC 및 테스트 환경 구성하기

172.20.0.0/16 대역을 사용하는 VPC를 생성하고, WSL과 동일한 IP를 사용하는 EC2 인스턴스를 생성합니다.

그림 4. WSL IP와 동일한 EC2 인스턴스를 생성한 모습

Step 3. AWS Client VPN 구성하기

시작하기 AWS Client VPN - AWS Client VPN 를 참고해 Client VPN을 구성합니다.

Step 4. 경로 강제 적용 비활성화

Step 3 문서를 참고하여 기본 구성한 경우 경로 강제 적용은 비활성화 되어 있습니다. 해당 상태에서 AWS VPN Client 프로그램을 통해 연결을 진행 합니다.

그림 5. AWS VPN Client를 통해 연결이 성공한 모습

윈도우 cmd 창에서 아래 명령을 통해 라우팅 테이블을 확인해 봅니다.

route print
그림 6. 경로 강제 적용이 비활성화 된 상태의 클라이언트 라우팅 테이블

그림 6을 확인해 보면 WSL에서 사용중인 네트워크와 AWS VPC 네트워크 대역이 중복되어 라우팅이 적용되어 있고, 메트릭 값에 의해 클라이언트의 172.20.16.0/20 목적지 요청은 AWS VPC로 우선시 되는 점을 확인할 수 있습니다.

  만약, 사용자가 172.20.16.0/20 대역의 통신을 AWS VPC가 아닌, WSL 대역으로 전송되도록 하기 위해 AWS VPC Client 쪽으로 향하는 경로를 삭제한다면 어떤 일이 일어날까요? 아래 명령을 통해 Client VPN 경로를 제거해 봅니다.

route delete 172.20.16.0 mask 255.255.240.0 10.0.0.129
그림 7. AWS Client VPN 경로가 제거된 모습

클라이언트 사용자의 의도대로 AWS Client VPN 경로가 제거 되었습니다. 이 상태로 172.20.16.0/20 으로 통신을 요청하면, WSL이 사용하는 네트워크로 요청이 전송 됩니다.

즉, 경로 강제 적용을 비활성화 하면 AWS Client VPN에서 사용하는 라우팅 경로에 대해 사용자의 조작이 가능하다는 특징을 알 수 있었습니다.

Step 5. 경로 강제 적용 활성화

이번엔 경로 강제 적용을 활성화 한 뒤 라우팅 테이블을 조작해 보도록 하겠습니다. AWS 콘솔 > VPC > 가상 사설 네트워크 > Client VPN 엔드포인트 > 선택 > [작업] > 클라이언트 VPN 엔드포인트 수정을 클릭하고, “클라이언트 경로 강제 적용”을 활성화 한 뒤 저장합니다.

그림 8. 경로 강제 적용 활성화화

수정 내용이 반영 되면 AWS VPN Client를 재 연결 합니다. cmd 창에서 route print를 통해 경로를 확인 합니다.

그림 9. WSL 경로가 중복되어 사라지고, AWS Client VPN 대역의 경로만 존재하는 모습

기존과 달리 WSL이 사용하던 172.20.16.0/20 에 대한 경로는 사라지고, 오직 AWS Client VPN 대역만 조회되는 모습을 볼 수 있습니다. 그럼 아래 명령을 통해 클라이언트에서 AWS Client VPN 라우팅을 삭제 한 뒤 변경 사항을 확인 해보겠습니다.

route delete 172.20.16.0 mask 255.255.240.0 10.0.0.33
그림 10. 사용자가 의도적으로 ClientVPN 경로를 삭제하였음에도, 자동으로 경로가 복구된 모습

놀랍게도, 동일한 경로가 메트릭이 1개 추가되어 자동으로 생성 되어 있는 모습을 확인할 수 있습니다.(무결성 유지)

결론

AWS Client VPN 구성 시 클라이언트 경로 강제 적용을 활성화 하면 관리자가 AWS 콘솔에서 설정한 구성이 최종 사용자에게 일관되게 적용되도록 보장하여 조직의 연결 무결성을 유지할 수 있습니다.


참고자료

https://aws.amazon.com/ko/about-aws/whats-new/2025/04/aws-client-vpn-client-routes-enforcement/

https://docs.aws.amazon.com/ko_kr/vpn/latest/clientvpn-admin/cvpn-working-cre.html

https://aws.amazon.com/ko/vpn/client-vpn-download/

 

Share This Post

Check out these related posts

Amazon EKS, 커뮤니티 애드온 살펴보기

Amazon S3 콘솔, 모든 버킷 외부 액세스 요약 표시

Database Insights, 메트릭 대시보드 사용자 정의 지원 추가