Windows의 기본 VPN설정으로 Netplix접속시 주의사항

목적 외국에서 한국 Nexplix를 보고 싶다. 하지만 유료 VPN은 별로 사용하고 싶지 않다. 수시로 접속 거부를 당하면서 요금을 지불하고 싶지는 않다. 해결책 부모님 댁에 VPN서버를 지원하는 무선공유기를 한대 설치해 드리고 나는 외국에서 VPN으로 접속하여 Nexplix를 감상한다! 상황 공유기에 설정한 VPN에 iPad, Macbook으로 접속하면 문제 없이 한국 Netplix로 접속되는것을 확인했다. Windows11에서는 기본 VPN으로 iptime의 VPN에 접속하면 일본 Netplix로 접속 된다. 원인 처음에는 VPN의 Split Tunneling 문제가 아닐까 싶었다. Windows의 VPN설정에서는 Split Tunneling설정이 보이지 않았으므로 Power Shell에서 확인해 보았지만 Split Tunneling은 설정되어 있지 않았다.  결론부터 말하면 원인은 DNS서버였다. 이유는 모르겠지만 MacBook에서는 VPN접속시, DNS서버도 VPN서버의 DNS가 자동으로 설정되었는데 Windows11에서는 DNS서버가 변경되지 않아 한국 지역으로 인식되지 않았던 것으로 추측. Solution Windows11의 VPN접속 설정에서 접속시의 DNS서버를 한국의 공유기 IP로 지정을 해주었다. 그리고 IPv6이용설정을 해제하여 IPv4만 이용하도록 설정하니 문제 없이 접속되었다. 다음 문제 미니PC를 한대 구매하여 모든 설정을 마쳤지만 매번 키보드/마우스로 조작하는게 귀찮아 Remote Desktop으로 접속하는 것을 생각했다. 미니PC에 접속할때는 iPad를 이용할 계획인데 현재 찾아본 바로는 Console접속을 지원하는 Application이 없는 듯 하다. RemoteDesktop으로 접속하면 현재 TV에 연결해 놓은 세션은 꺼져버리니 Console로 접속가능한 어플리케이션이 필요하다. TeamView를 이용하니 어느정도 문제가 해결되긴 했지만 여기저기 조그마한 문제점들이 있어 고민중.

aws ec2 접속시 개인유저를 할당

 aws 는 기본적으로 amazon linux 가 시작될떄 ec2-user 가 설정되고, 지정한 keypair 의 public key를 cloud-init가 ec2-user의 .ssh 디렉토리에 배치한다. 이로서 ec2-user 의 private key를 가지고 있는 모든 유저가 ec2-user로서 ssh 접속이 가능해진다.

하지만 ISMS나 PCI DSS등 여러 시큐리티 규약에서 공용계정을 배제해야 한다는 요구사항이 들어 있다. 여러 솔루션을 조사 했지만 비용이 많이 들어가거나 유지보수가 어려운 등 적절한 게 없어서 고민하다가 aws-ec2-ssh 라는 패키지를 이용해서 스크립트를 조금 수정하는 것으로 어느정도 원하는 유저관리 시스템을 구축 할 수 있게 되었기 때문에 여기에 메모형식으로 남긴다.

aws-ec2-ssh

https://github.com/widdix/aws-ec2-ssh

  • IAM user를 추가하여 그룹을 지정
  • IAM user는 code commit 용 public key를 upload
  • sshd_config를 수정하여 지정한 유저의 public key로 인증
  • import_user.sh 를 실행하면 지정한 IAM group의 유저리스트를 이용하여 user를 추가
특별한 문제 없이 잘 작동하는 것 까지 확인은 했지만 문제는 한 유저에 지정가능한 그룹수에 제한이 있기 때문에 한 유저에 대해 지정가능한 어카운트 지정이 한계가 있다는 거다. 확인해 본 결과 iam user를 등록할 수 있는 group수는 변경할 수 없는 항목이니 이걸로는 좀 부족하다 느꼈다.

import_user.sh 를 뜯어 보니 아래와 같이 그냥 group의 유저리스트를 확인 하는 것 뿐이다.


for group in $(echo ${IAM_AUTHORIZED_GROUPS} | tr "," " "); do 
 aws iam get-group \ 
 --group-name "${group}" \ 
 --query "Users[].[UserName]" \ 
 --output text \ 
 | sed "s/\r//g" done


그래서 생각해 낸 방법이 해당 ec2에 접속을 허가할 iam user 리스트를 파일로 작성하여 s3에서 다운로드 하도록 하는 방법이다. 그리고 s3는 bitbucket 이나 github, gitlab 등을 이용하여 리뷰 및 승인 플로우를 넣어 놓으면 문제 없을 듯.

스크립트를 아래와 같이 수정한 후 정상적으로 작동하는 것을 확인하였다.


108: for group in $(echo ${IAM_AUTHORIZED_GROUPS} | tr "," " "); do 
109:  #aws iam get-group \ 
110:  #--group-name "${group}" \ 
111:  #--query "Users[].[UserName]" \ 
112:  #--output text \ 
113:  #| sed "s/\r//g" 
      aws s3 cp s3://bucketname/listfile -|cat
      echo ""
114: done 


152: #aws iam get-group \ 
153: # --group-name "${group}" \ 
154: # --query "Users[].[UserName]" \ 
155: # --output text
      aws s3 cp s3://bucketname/listfile -|cat
      echo ""

스크립트를 일부 수정하면 /etc/aws-ec2-ssh.conf 에 bucket name을 지정하는 것도 가능하다. 그외 ssm document 를 이용한 운영도 하고 있지만 개인 메모용이니 여기까지만.

댓글

이 블로그의 인기 게시물

CISCO 2960s 초기화 후 기본 설정

curl 명령어 옵션

맥북 카라비너 영어/한글/일본어 전환하기