반응형

아마존에서 제공하는 프리티어로 간단하게 OpenVPN 서버를 구축하면 요긴하게 자주 쓰입니다.

매월 트래픽 100GB로 제공되기 때문에, 사용량을 고려하며 사용합시다. (넘으면 돈나옵니다.)

 

 

접근하려는 서비스에서 아마존 IP를 막는 경우도 잦아서,  VPN을 백퍼센트 사용 할 수 있는건 아닙니다.

리전 선택을 잘합시다.

 

 

 

 

 

1. 인스턴스 생성

이미지는 저는 페도라쪽을 주로 다루다 보니, Amazon Linux를 그냥 사용했는데, 우분투나 SUSE Linux를 사용하시는것도 상관 없습니다만, Amazon Linux는 2023이 아닌 2로 선택해주세요.

Arm은 범용성이 떨어지므로, x86을 고르는게 좋습니다.
보안 그룹 설정
키 페어가 최초 생성시에 없으니 생성합시다.

 

ppk로 하면 putty로 접근할때 변환 안해도 되서 편합니다.

 

 

 

 

 

2. 탄력적 IP(공인 IP) 생성

좌측 스크롤 내리다 보시면 네트워크 및 보안 탭에서 탄력적 IP로 들어갑시다.

 

탄력적 IP(공인 IP)는 사용하지 않을 때 과금이 되므로 생성 후에, 반드시 인스턴스에 연결합시다.

Static IP가 무려 공짜입니다.

 

 

 

 

 

3.  서버 접근

Port가 정상적으로 접근이 되는지 보통 텔넷을 주로 사용하는데, Windows 기능 켜기/끄기에서 텔넷 클라이언트를 설치합시다. (굳이 할 필요는 없습니다.)

 

 

잘 접근됩니다.

 

접근하기에 앞서 로그인하는 ID를 알아야 하는데, 아마존 메뉴얼에 명시되어 있습니다.

저는 Amazon Linux로 생성하였으니, ec2-user로 로그인하게 되겠습니다.

생성한 OS에 따라 ID가 다르니 확인합시다.

 

 

이후 SSH 접근 툴을 사용해야하는데 일반적으로 Putty를 사용합니다만, 모바텀이나 mremote건 서드파티 SSH 툴을 사용하는건 본인 자유입니다.

Putty를 사용할때는 Connection - SSH - Auth - Credentials 에서 키를 등록해주세요.

 

 

이후 Host Name에 ec2-user@탄력적 IP, Port는 별도로 설정한게 없으니 기본 포트인 22 로 입력하고, 해당 세션 값을 저장하기 위해 Saved Sessions에 이름 지정 후 저장을 누르시면 다음에도 해당 이름을 Load하여 재사용 할 수 있습니다.

 

해당 세션으로 Putty Configuration에서 Open을 누르게 되면 아래와 같이 SSH 세션에 접근 하게 됩니다.

 

 

 

 

4. 설치

일반적으로 OpenVPN을 설치하게 되면 조금 복잡스럽니다, 그냥 github에서 사람들이 배포하는걸로 사용하면 편하니 그걸로 사용합시다.

https://github.com/angristan/openvpn-install

 

GitHub - angristan/openvpn-install: Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS or Arch Linux.

Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS or Arch Linux. - angristan/openvpn-install

github.com

 

호환성에서 지원을 잘하는 걸로 보이네요

 

 

이제 호환성도 확인했으니 설치 해봅시다.

[ec2-user@ovpn ~]$ sudo -i
[root@ovpn ~]# yum install -y git

# 위에 설치 끝나고
[root@ovpn ~]# git clone https://github.com/angristan/openvpn-install.git
[root@ovpn ~]# cd openvpn-install
[root@ovpn ~]# ./openvpn-install.sh 

# openvpn-install.sh 가 실행안될 때
[root@ovpn ~]# chmod +x openvpn-install

 

 

위 같이 설정하고 나면 스크립트가 알아서 설치를 하는데 중간에 한번 ID를 기입하는 설정이 있습니다.

아래와 같이 나오니 지정하면 끝입니다.

 

설치가 끝나면 하단에 *.ovpn 이라는 파일이 생성이 되는데 이게 패스워들 대신 할 인증서 입니다.

(나중에 쓰이니 꼭 기억합시다.)

 

열어보면 conf 값과 인증서가 같이 들어있는 걸 보실 수 있을겁니다.

 

 

설치는 끝났으니 실행합시다.

[root@vpn ~]# systemctl start openvpn-server@server

 

는 실행이 안됩니다.

 

 

로그(/var/log/message)를 까봅시다.

server.conf가 없다고 합니다.

 

설정 값이 있는지 확인해봐야하니 설치 경로에 들어가서 확인해봅시다.

[root@vpn ~]# cd /etc/openvpn/

 

 

웬걸 온전히 다 있습니다.

 

보통 이럴 땐 systemd 설정이 잘못 된 경우가 많기 때문에 확인해봐야 할 것 같습니다.

[root@vpn ~]# systemctl status openvpn-server@server.service

 

systemd unit 위치를 확인 했으니 까봅시다.

역시나 WorkingDirectory 값이 잘못 되었습니다.

키보드 i를 누르고 입력모드로 들어간 후에 /etc/openvpn 으로 수정한 후 ESC - :wq - Enter

 

이제 잘 됩니다.

 

네트워크 인터페이스 잘 생성 되었습니다.

 

포트도 잘 올라왔습니다.

 

 

5. 접속

클라이언트용 OpenVPN을 설치합시다. 

https://openvpn.net/client/

 

OpenVPN Connect - VPN For Your Operating System | OpenVPN

Download the official OpenVPN Connect client VPN software for your operating system, developed and maintained by our experts. Get started with our VPN software.

openvpn.net

 

다운로드 받고 실행합시다.

 

 

설정 할 내역은 딱히 없고 Next 만 누르세요.

 

이제 *.ovpn 파일(4. 설치 내역 참고)을 SFTP던 FTP던 VPN을 접속할 PC로 가져와야합니다.

그냥 cat 으로 vpn 설정값을 열어준다음 아래처럼 클릭해서 긁어서 메모장에 열어서 Ctrl+v 하면 값을 가져 올 수도 있습니다.

 

 

만약에 메모장에 값을 복사한 경우라면 확장자를 ovpn으로 꼭 바꿔주세요.

 

UPLOAD FILE 클릭

 

 

이 상태에서 아까 저장한 *.ovpn 파일을 넣어줍시다.

 

파일을 Import 하였으면 Connect를 눌러주세요.

 

 

이렇게 CONNECTED가 나오면 접속 된겁니다.

 

- VPN Off

 

- VPN On

 

 

이렇게 구축이 완료되었습니다.

 

하지만 맨 처음에도 말했던 것 처럼 이런 AWS 공인 IP는 웹서비스에서 자체적으로 막는 경우가 잦으니 안되는 경우도 많습니다.

 

6. 여담

인증서는 하나당 하나의 사용자를 처리할 수 있습니다.

따라서 여러 사용자가 사용하기 위해서는 추가를 해야하는데, 이때 설치 때 사용하였던 스크립트로 사용자를 간편하게 추가 할 수 있습니다.

 

이렇게 추가된 *.ovpn 파일을 다른 사용자에게 주면 됩니다.

반응형

'Linux' 카테고리의 다른 글

[Linux] Squid 프록시 설치  (0) 2023.09.21
[Linux] IPTables 개념  (0) 2023.09.21
CentOS 6 repolist  (0) 2023.09.20
CentOS 7 repolist  (0) 2023.09.20
OpenSSL 설치 및 업그레이드  (0) 2023.09.20