OpenVPN 서버설치 및 운영작업에 대해 알아보도록 하겠습니다. 지금은 모든 작업이 자동으로 이루어 질 수 있도록 스크립트로 작성되어 있어서 어려움없이 설치 및 운영이 가능했습니다.
OPENVPN
Server 설치
Nyr/openvpn-install 에 올려놓은 스크립트를 활용합니다. 우분투 18 LTE 서버에서는 버젼오류로 설치가 되지 않았고, Ubuntu 22.04 이상의 운영체제 에서만 설치 가능했습니다.
$ wget https://git.io/vpn -O openvpn-install.sh
$ sudo bash openvpn-install.sh
Welcome to this OpenVPN road warrior installer!
This server is behind NAT. What is the public IPv4 address or hostname?
Public IPv4 address / hostname [ip address / domain]:
엔터를 입력 합니다.이후 OpenVPN을 어떤 프로토콜로 사용할 것인지 질문 합니다.
Which protocol should OpenVPN use?
1) UDP (recommended)
2) TCP
Protocol [1]:
제가 참고했던 블로그에는 2개를 모두 사용할 수 있도록 1,2 를 입력하라고 적혀있어서 1,2 | [1,2]
모두 입력을 해 봤지만 오류를 출력하였습니다. 이러한 이유로 2중 하나를 선택하게 되었고 어느것이 더 적합한지에 대해서 조금더 찾아보게 되었습니다.
TCP/UDP TCP와 UDP의 특징과 차이 블로그에서 해당내용을 요약한 표는 다음과 같았습니다.
크롤링 목적으로 이 작업을 진행하고 있어서, 오히려 빠른 속도는 Block 을 당할수도 있는 등 장점이 되지 않았고, 안전성 등의 특징으로 보았을때 TCP
방식을 선택하는 것이 더 적합하다는 결론을 갖게 되었습니다. 단순한 브라우저 웹서핑 등의 목적을 갖는 분들이라면 위 화면에서도 추천하는 UDP
방식을 선택하는 것이 더 적합할 것으로 생각 되었습니다.
다음에는 OpenVPN 에서, 어떤 포트 번호로 사용할 것인지를 질문 합니다. 보통 좌측에 출력된 1194 포트를 사용하게 되는데 이러한 경우에는 서버에 연결된 방화벽 설정에서 해당 포트를 열어줘야만 Client 에서 OpenVPN 사용시 서버에 연결할 수 있습니다.
What port should OpenVPN listen to?
Port [1194]:
OpenVPN에 클라이언트가 접속했을 때 사용할 DNS를 설정하게 되는데, 자유롭게 사용하고 싶은 DNS를 선택하면 됩니다
Select a DNS server for the clients:
1) Current system resolvers
2) Google
3) 1.1.1.1
4) OpenDNS
5) Quad9
6) AdGuard
DNS server [1]:
마지막으로 클라이언트의 이름을 지정하면 됩니다. 이 이름은 클라이언트 파일이름으로 사용되고 해당 파일을 활용하여 Client 가 접속을 하게 됩니다.
Enter a name for the first client:
Name [client]:
OpenVPN installation is ready to begin.
Press any key to continue...
앞의 작업들을 완료하고 나면 /etc/openvpn
폴더에 입력한 클라이언트 이름의 *.ovpn
파일이 생성되어 있음을 확인할 수 있습니다. 이제 SFTP 등을 활용하여 암호화된 해당 파일을 클라이언트로 옮겨서 사용하면 됩니다.
OPENVPN Client 운영
접속할 PC에서 서버 설정값을 갖는 *.ovpn
파일을 옮겨온 뒤 /etc/openvpn
폴더로 복사 합니다. 그리고 별도의 터미널을 열어서 해당 설정값을 활용하여 OpenVPN 을 실행하면 됩니다.
sudo openvpn --config /etc/openvpn/<파일이름>.ovpn
OVPN 파일 활용하기
앞의 서버구성 작업을 하지 않아도 <파일이름>.ovpn
파일만 구할수 있으면 바로 Client 방식으로 동작을 하면 됩니다.