스크립트가 도는데 15분 넘게 걸리는 것 같기는 한데, 일단은...
이전에 SoftEther VPN 서버를 직접 운영하는 방법에 대해 적은 글이 있었는데, 지워버려서 새로 씀
그리고 그때도 리나리 아니면 못 따라한다는 피드백이 많았어서, 이번에는 좀 더 쉽게 따라할 수 있도록 야심차게 준비했읍니다
시작하기 전에:
개인 서버를 운영하는 것이므로 비용이 발생함(월 3.5$ + 세금, 첫 3개월간 무료)
기본 제공되는 용량을 다 사용하는 경우 비용이 추가 발생할 수 있음(업로드/다운로드 합계 1TB까지 기본 제공, 이후 2021.11.28 기준 0.114 USD/GB)
본인이 1TB보다 많이 사용할 것 같다고 생각되는 경우 서버 생성 중 '인스턴스 플랜'을 상위 사양으로 변경하는 것이 나을 수 있음.
생성 과정에서 보안에 취약한 부분을 최대한 만들지 않도록 설정되어 있지만,
이후 취약점이 발견되어 서버가 공격의 매개체로 사용되는 등의 문제가 발생할 수 있음.
대부분 서버 제공 업체인 AWS에서 방어하거나 서버로 접속되는 트래픽을 제한하는 등 처리해주지만,
이러한 취약점으로 인해 비용이 발생하거나 AWS 측에 문의해야 하는 경우가 발생할 수 있으며,
글 작성자는 이에 따른 책임을 지지 않음
AWS 계정 만드는 법부터 가이드하자니 계정 더 만들기 싫어서, 적당한 아티클을 하나 찾아왔음
https://wikidocs.net/81072 이 글을 따라서 AWS 계정을 만들고, 서버를 하나 띄우자.
다만, 따라가다가 '인스턴스 생성' 부분에서, 기본적으로 한국에서 접속하면
이렇게 서울에 서버를 만들도록 설정되어 있는데, 우리는 일본 가는 VPN을 만들고 싶은 것이지 서울 가는 VPN을 만들고 싶은 것이 아니므로
노란색 'AWS 리전 및 가용 영역 변경' 을 눌러
서버 위치를 도쿄로 설정해주자.
이제 일본에 내 서버가 돌고 있게 되었다.
서버 이름(여기서는 Ubuntu-1)을 누르면 아래와 같이 서버 설정을 조작할 수 있는 화면이 열리게 된다.
화면 중간 메뉴에서 '네트워킹'을 누르면 아래 화면으로 넘어감
우선 해줄 것은 내 서버가 고유한 주소를 가지고 있도록 해 주는 부분인데,
IPv4 네트워킹 아래 + 고정 IP 생성 을 누르자
화면 맨 아래의 생성 버튼을 누르면
내 서버에 고유한 주소가 생기게 된다.
화면의 서버 이름(여기서는 Ubuntu-1) 부분을 누르면 아까의 서버 관리 화면으로 돌아가게 된다.
서버 관리 화면에서 다시 '네트워킹'을 눌러서
이 화면으로 돌아오자.
다음은 IPv6이라는 것을 끌 차례인데,
화면 아래에 보면 IPv6 네트워킹 활성화됨 하고 스위치가 켜져 있는 것을 볼 수 있다.
끄자.
이런 무서운 대화창이 뜰 텐데, '예, 비활성화합니다.' 를 눌러 끄자.
다음은 서버로 들어올 수 있는 문을 어디를 열 건지를 설정해야 한다.
화면 중간에서
를 찾고,
SSH라고 되어 있는 항목의 버튼을 누르면
이렇게 항목을 수정할 수 있게 된다.
'IP 주소로 제한' 항목에 체크하면
이렇게 IP 주소를 추가할 수 있는데,
사진처럼 127.0.0.0/8 을 입력하고 저장 버튼을 누르자
이제 두 개의 규칙을 추가해줘야 하는데, '+ 규칙 추가' 버튼을 누르면
이렇게 새 규칙을 추가할 수 있다.
사진처럼 애플리케이션에서 HTTPS를 찾고, 생성 버튼을 누르자.
하나 더 만들어야 함
똑같이 규칙 추가 버튼을 누르고, 애플리케이션은 사용자 지정 유지한 뒤,
사진처럼 프로토콜을 UDP로 설정하고,
포트에는 11000을 입력해주면 된다.
다 입력하고, 생성 버튼을 누르면 된다.
방화벽 정책이
SSH / TCP / 22 / 127.0.0.0->127.255.255.255, Lightsail 브라우저 SSH/RDP
HTTP / TCP / 80 / 모든 IPv4 주소
HTTPS / TCP / 443 / 모든 IPv4 주소
사용자 지정 / UDP / 11000 / 모든 IPv4 주소
로 되어 있으면 된다.
다시 중간 메뉴에서 '연결' 부분을 눌러서,
이 화면으로 돌아와, 'SSH를 사용하여 연결' 버튼을 누르면
새 창이 뜨면서 다들 무서워하는 이 검은 도스창이 뜸.
도스 아니라는 놈들 니들 컴맹 아닌 거 아니까 직접하셈.
이 창에서:
- 대소문자를 매우 엄격히 구분함. 헷갈리지 않도록 하자.
- 복사를 Ctrl-C로 할 수 없다. 이건 지금 돌고 있는 프로그램을 중지하는 단축키니까, 최대한 누르지 않도록 하자. 이거 대응 안 해놨음...
- 그럼 복사 붙여넣기는 어떻게 하느냐:
- 복사는 다른데서 문자 선택하는 것처럼 마우스로 드래그하면 선택된다. 그 상태로 마우스 우클릭->복사
- 붙여넣기는 검은 창 위에서 마우스 우클릭 -> 붙여넣기
최대한 쉽게 따라할 수 있도록 했으니까 겁먹지 말고 따라오자.
검은 화면에서
sudo su 하고 엔터
screen -S deploy 하고 엔터 하면
이렇게 창이 깨끗해진다.
여기에서
curl https://pastebin.com/raw/w0w6rkJW | tr -d '\015' > deploy 하고 엔터
화면에서 두 줄이라고 > 하고 엔터치지 말고, 그냥 다 치면 지가 알아서 다음 줄로 넘김
저 주소를 정확히 입력해야 하니, 가급적이면 그냥 복붙하자.
/bin/bash deploy 하고 엔터 하면 이제 설치 스크립트가 뒤는 알아서 해줌.
간혹가다 아무 동작이 없는 채로 화면을 너무 오래 놔두면 연결이 끊어지는 경우가 있는데,
당황하지 말고 서버 관리창에서 'SSH를 사용하여 연결' 해서 검은 창을 다시 띄운 다음에
sudo su 엔터
screen -dr deploy 엔터 하면 화면이 돌아온다.
이후는 그냥 컴퓨터가 내 일을 대신 해주는 걸 지켜보면 되는데, 몇 가지 입력해줘야 하는 게 있음
어느 순간 이메일을 물어본다.
서버에 접속할 때 남들이 내 비밀번호를 못 보게 하기 위해서 서버를 인증해줄 수 있는 물건을 발급받아야 하는데, 그 때 사용함
적당히 니가 쓰는 아무 이메일이나 입력하고
yes 치면 된다. 오타내서 다시 쳐야 하면 yes 치지 말고 그냥 엔터치면 다시 물어보니까 걱정하지 않아도 됨.
또 한동안 놔두면
ID를 물어보는데, 이건 이제 VPN 서버에 접근할 때 필요함.
적당히 자기가 쓰는 걸로 입력하자
위랑 똑같이 오타 냈으면 그냥 엔터치면 다시 물어봄
비밀번호는 원래 키보드를 쳐도 화면에 안 뜨는게 정상이니까, 왜 안 쳐지지? 하고 내 컴이 이상한가? 하고 있지 말고
그냥 키보드 영어로 제대로 됐는지 확인하고 (저 화면이 한글을 지원하지 않아서, 한글 입력이 안 됨)
비밀번호 쓸 거 두 번 동일하게 쳐주면 된다.
혹시라도 오타가 있거나 해서 두 비밀번호가 다르면 다시 물어보니까 걱정하지 말고
정상적으로 모든 프로세스가 진행됐으면, 저렇게 Deployed! 하면서 주소 하나를 던져줌.
저 주소로 접속하면
이렇게 ID 비밀번호를 물어보는데, 조금 전에 만든 ID 비밀번호 입력해주면 된다.
이제 VPN 관리창에 접속했음.
오른쪽에 + 버튼 누르면 새 기기를 등록할 수 있음
기기 이름을 입력하자.
이 VPN은 한 계정을 가지고 여기저기 다 등록해서 쓰는 게 아니라, 저 관리창에서 기기를 등록하고, 각 기기가 다 다른 프로필을 물고 있어야 함.
예를 들면 내가 컴 한 대, 폰 한 대 쓰겠다 하면 2개 기기를 등록해야 함
하여튼 이름 적당히 적고, label은 적어도 되고 안 적어도 됨.
이름+label로 내가 이 기기가 어떤 기기인지 특정할 수 있으면 된다.
하면 이렇게 기기가 등록됨. 오른쪽 빈 공간에는 QR 코드가 뜨는데,
이 QR코드나, Download Config 버튼을 눌러서 받은 컨픽. 혹은 연필 버튼을 누르면 나오는 Private Key 값이 있으면 누구나 니 VPN 서버에 접속해서 사용할 수 있다.
누출되지 않도록 각별히 유의하고, 누출되었을 경우 해당 기기를 삭제하고 기기를 다시 등록하는 것이 보안상 옳음
이제 사용해야 하는데,
PC/Mac:
Download Config 버튼을 누르면 conf 파일을 하나 던져준다.
다운로드하고,
https://www.wireguard.com/install/
여기서 wireguard 프로그램을 받아서 깔자.
깔고 나서 wireguard 프로그램을 실행하면 이런 화면이 뜨는데,
좌 하단의 Add Tunnel을 누르거나 Import tunnels from file을 누르면 선택창이 뜸.
아까 받은 conf 파일을 선택하면
이렇게 VPN이 등록되고, Activate를 누르면
이렇게 VPN에 연결됨.
Deactivate를 누르면 연결이 풀림.
iPhone/Android:
스토어에서 Wireguard 앱을 깔자.
앱을 실행해서,
아이폰은 우 상단, 안드로이드는 우 하단에 + 버튼이 있음.
누르면
이렇게 선택창이 뜨고, 뭐 파일 또는 압축파일에서 불러오기를 눌러서 아까처럼 conf 파일을 가져와도 되지만
QR코드 스캔을 누르고->제어 화면에 있는 QR코드를 스캔하면
이렇게 불러와진다. 이름은 내가 구분할 수만 있게 적당히 적자.
저기서 스위치 켜면 켜지고, 끄면 꺼짐.
이제 VPN 느려서 맨날 찾고 될까 안될까 안정적일까 아닐까 하지 말고
4달러 정도에 편하게 덕질하면 됨