AWS Client VPN 구성
    안녕하세요, 이번 포스팅에서는 “AWS Client VPN, 클라이언트 경로 강제 적용 기능 지원” 에 관하여 다룰예정입니다. 이게 어떤 기능이고, 왜 중요할까요?
예를 들어 A 회사에서는 보안을 위해 직원들이 VPN을 통해 내부 시스템에 접속하게 한다면 외부에서는 내부 시스템에 바로 접근할 수 없고, VPN을 거쳐야만 접속이 됩니다.
그런데 문제는, 사용자의 디바이스(노트북 등)에서 네트워크 경로를 임의로 바꾸면 VPN을 우회해 외부로 나가는 트래픽이 생길 수 있다는 점이에요.
예를 들어, 어떤 사용자가 일부러 VPN을 통하지 않고 인터넷에 접속하도록 설정을 바꾸면, 보안 위협이 될 수 있죠.
이번에 AWS가 발표한 클라이언트 경로 강제 적용 기능은 이런 문제를 막기 위한 장치입니다.
이 기능을 사용하면
쉽게 말해, “VPN을 무조건 통하게 만들어주는 보안 기능”이에요.
이 기능의 장점은 단순한 감시가 아니라, ‘복원’까지 자동으로 해준다는 점입니다.
AWS Client VPN이 즉시 알아채고 경로를 원래대로 돌려놓습니다.
이렇게 하면, VPN을 사용하는 목적 즉, 보안성과 내부 리소스 보호가 더욱 확실해지겠죠.
Step 1. 실습 환경은 다음과 같습니다.
172.20.16.0/20 대역이 있는 상황에서172.20.0.0/20 AWS VPC를 생성하고, 
Step 2. 로컬 WSL 네트워크 환경 이해해봅시다.
현재 제 로컬호스트는 10.1.30.0/24 네트워크에 포함되어 있으며, eth0 인터페이스에 10.1.30.49 IP가 할당되어 있습니다. WSL을 구성하여 윈도우 호스트에 가상 인터페이스가 부여되며 172.20.16.1 IP가 부여되고, 해당 인터페이스를 사용하여 WSL 네트워크를 구성하게 됩니다.

결과적으로 윈도우 호스트에서 WSL 호스트 172.20.26.65로의 통신은 veth0를 통해 이루어지며, 라우팅 테이블은 172.20.16.0/20 CIDR에 대해 veth0 으로 전달되도록 구성됩니다.


Step 3. AWS VPC 및 테스트 환경을 구성해봅시다.
172.20.0.0/16 대역을 사용하는 VPC를 생성하고, WSL과 동일한 IP를 사용하는 EC2 인스턴스를 생성합니다.

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

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

그림 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

클라이언트 사용자의 의도대로 AWS Client VPN 경로가 제거 되었습니다.
이 상태로 172.20.16.0/20 으로 통신을 요청하면, WSL이 사용하는 네트워크로 요청이 전송 됩니다.
즉, 경로 강제 적용을 비활성화 하면 AWS Client VPN에서 사용하는 라우팅 경로에 대해 사용자의 조작이 가능하다는 특징을 알 수 있었습니다.
Step 6. 경로 강제 적용 활성화
이번엔 경로 강제 적용을 활성화 한 뒤 라우팅 테이블을 조작해 보도록 하겠습니다.
AWS 콘솔 > VPC > 가상 사설 네트워크 > Client VPN 엔드포인트 > 선택 > [작업] > 클라이언트 VPN 엔드포인트 수정을 클릭하고, “클라이언트 경로 강제 적용”을 활성화 한 뒤 저장합니다.

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

기존과 달리 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

놀랍게도, 동일한 경로가 메트릭이 1개 추가되어 자동으로 생성 되어 있는 모습을 확인할 수 있습니다. (무결성 유지)
🤚 AWS Client VPN 구성 시 클라이언트 경로 강제 적용을 활성화하면 관리자가 AWS 콘솔에서 설정한 구성이 최종 사용자에게 일관되게 적용되도록 보장하여 조직의 연결 무결성을 유지할 수 있습니다.
🤚 이는 단순히 설정을 저장하는 걸 넘어서, 실제 사용자 디바이스에서 경로가 변경되더라도 자동으로 원래 상태로 복구시켜주기 때문에, 관리자 입장에서 일관된 네트워크 환경을 유지할 수 있습니다.
🤚 기업이나 조직 입장에서는, 원격 근무 환경에서도 VPN을 통한 보안 통제가 끊기지 않고 유지된다는 점에서 매우 강력한 보안 도구가 될 수 있습니다.
긴 글 읽어주셔서 감사합니다 😄
참고문서
AWS Client VPN, 클라이언트 경로 강제 적용 기능 지원 - AWS
AWS Client VPN 클라이언트 라우팅 적용 - AWS Client VPN
AWS Client VPN 다운로드 | Amazon Web Services
