Post

OpenVPN 사용해보기 (on Ubuntu)

이전에 구축한 홈서버를 외부에서 안전하게 접속하는 방법을 고민하다 VPN을 사용해보기로 했다. 여러 오픈소스 VPN 솔루션 중 OpenVPN을 선택했고, 이를 사용해보기로 했다.

VPN이란?

Vertual Private Network - Wikipedia

VPN(Virtual Private Network)은 직역하면 가상 사설망으로 공중망(인터넷) 환경에서 가상의 사설망(인트라넷)을 구축하기 위한 기술이다. VPN을 사용하면 외부 네트워크에 있는 컴퓨터를 내부 네트워크에 있는 것처럼 사용할 수 있다.

VPN은 내부 네트워크에 연결하기위해 터널링(Tunneling) 기술을 사용하는데 인터넷 망을 통해 데이터를 안전하게 전송하기 위해 데이터를 암호화한다. 이를 통해 외부에서 내부 네트워크에 안전하게 접속하거나 데이터를 전송할 수 있다.

인터넷에 검색해보면 여러 VPN 솔루션을 찾을 수 있는데, 오픈소스 솔루션으로는 SoftEther, OpenVPN, WireGuard 등이 있다. 이 중 사용자가 많고 TCP연결을 지원하는 OpenVPN을 사용해보기로 했다. (몇몇 VPN 솔루션은 UDP 연결만 지원하는 경우가 있는데, 일부 환경에서는 보안산의 이유로 UDP 연결을 차단하는 경우가 있을 수 있기 때문이다.)

OpenVPN이란?

openvpn_logo

Overview of OpenVPN - OpenVPN Wiiki

OpenVPN은 오픈소스 SSL VPN 솔루션으로 원격 엑세스, site-to-site VPN, WiFi 보안 등 다양한 용도로 사용할 수 있다. OpenVPN 보안 모델은 인터넷을 통한 보안 통신을 위한 업계 표준인 SSL을 기반으로 한다.

OpenVPN은 SSL/TLS 프로토콜을 사용하여 OSI 계층 2 또는 3 보안 네트워크 확장을 구현하고, 인증서, 스마트 카드 및 2단계 인증을 기반으로 하는 유연한 클라이언트 인증 방법을 지원하며, VPN 가상 인터페이스에 적용된 방화벽 규칙을 사용하여 사용자 또는 그룹별 액세스 제어 정책을 설정할 수 있다. 또한 TCP 및 UDP를 모두 지원하며, 다양한 운영체제에서 사용할 수 있다.

OpenVPN VS OpenVPN Community

OpenVPN은 오픈소스 솔루션으로 무료로 사용할 수 있지만, 상용 솔루션인 OpenVPN Access Server와 CloudConnexa가 있다. 이들은 OpenVPN을 기반으로 한 상용 솔루션으로, 사용자가 쉽게 VPN 서버를 구축하고 관리할 수 있도록 도와준다. 따라서 인터넷에 OpenVPN은 검색할때 사용 솔루션인 OpenVPN과 오픈소스인 OpenVPN Community를 구분하여 검색해야 한다.

구글에 검색하면 제일 상단에 나오는 https://openvpn.net도 OpenVPN 상용 솔루션을 소개하는 사이트로 제공하는 정보도 상용 솔루션에 대한 정보이다. 따라서 OpenVPN Community 버전에 대한 정보를 찾으려면 https://community.openvpn.net/openvpn를 참고해야 한다.

OpenVPN 설치

OpenVPN Software Repos - OpenVPN Wiiki

OpenVPN은 리눅스, 윈도우, 맥 OS 등 다양한 운영체제에서 사용할 수 있지만, 이번에는 홈서버가 우분투 이므로 Debian/Ubuntu 환경에서 OpenVPN을 설치하는 방법을 소개한다. 리눅스 환경에서 OpenVPN을 설치하려면 패키지 매니저를 사용하거나 소스코드를 다운로드 받아서 컴파일하는 방법이 있다. 여기서는 패키지 매니저를 사용하여 설치하는 방법을 소개한다.

다른 운영체제에서 OpenVPN을 설치하는 방법은 Installing OpenVPN를 참고하면 된다.

Debian/Ubuntu

Debian/Ubuntu에서 APT를 사용해 OpenVPN을 설치하기 위해서는 우선 OpenVPN 저장소를 추가해야 한다.

1
2
3
4
sudo mkdir -p /etc/apt/keyrings # directory does not exist on older releases
sudo curl -fsSL https://swupdate.openvpn.net/repos/repo-public.gpg | gpg --dearmor > /etc/apt/keyrings/openvpn-repo-public.gpg

sudo echo "deb [arch=<arch> signed-by=/etc/apt/keyrings/openvpn-repo-public.gpg] https://build.openvpn.net/debian/openvpn/<version> <osrelease> main" > /etc/apt/sources.list.d/openvpn-aptrepo.list

위 명령어에서 <arch>, <version>, <osrelease>는 사용하는 운영체제에 따라 다르므로 OpenVPN Software Repos - OpenVPN Wiiki를 참고하여 적절한 값을 사용하면 된다.

예를 들어, 라즈베리 파이(arm64 아키텍처)의 우분투 24.04에서 stable 버전의 OpenVPN을 설치하기 위해서는 다음과 같이 명령어를 실행하면 된다.

1
sudo echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/openvpn-repo-public.gpg] https://build.openvpn.net/debian/openvpn/stable noble main" > /etc/apt/sources.list.d/openvpn-aptrepo.list

그 다음 APT를 업데이트하고 OpenVPN을 설치한다.

1
2
sudo apt update
sudo apt install openvpn

RSA 인증서 생성

OpenVPN은 SSL기반 VPN으로 사전에 인증서를 생성해야 한다. 인증서는 OpenVPN 서버와 클라이언트 간의 통신을 암호화하고 인증하기 위해 사용된다. 이때 easy-rsa를 사용하면 편리하게 RSA 인증서를 생성할 수 있다.

easy-rsa 설치

easy-rsa는 OpenVPN과 함께 제공되는 인증서 관리 도구로, RSA 인증서를 생성하고 관리하는데 사용된다. Ubuntu의 경우 APT를 사용해 easy-rsa를 설치할 수 있다.

1
sudo apt install easy-rsa

easy-rsa를 설치했다면 RSA 인증서를 생성하기 위한 디렉토리를 생성하고, easy-rsa를 초기화해야 한다. 우분투에서 제공하는 easy-rsa 패키지에는 이를 위한 make-cadir 명령어가 포함되어 있으므로 이를 사용하면 편리하다.

1
make-cadir ~/openvpn-ca

위 명령어를 실행하면 ~/openvpn-ca 디렉토리가 생성되고, 이 디렉토리에 RSA 인증서를 생성하는데 필요한 파일들이 생성된다.

vars 파일 수정

Easy-RSA 3 Quickstart README

RSA 인증서를 생성하기 위해서는 vars 파일을 수정하고, easyrsa 명령어를 사용해 인증서를 생성해야 한다. vars 파일은 RSA 인증서 생성에 필요한 환경 변수를 설정하는 파일로, 인증서 디렉토리에 기본적으로 생성되어 있다. 환경 변수에 대한 설명도 주석으로 포함되어 있으므로 필요한 부분을 수정하면 된다.(기본값으로 진행해도 무방)

CA 인증서 생성

RSA 인증서를 생성하기 전에 먼저 CA(Certificate Authority) 인증서를 생성해야 한다. CA 인증서는 OpenVPN 서버와 클라이언트 간의 통신을 암호화하고 인증하기 위한 루트 인증서로, 이를 통해 서버와 클라이언트 인증서를 서명할 수 있다.

CA 인증서를 생성하기 위해 easyrsa 명령어를 사용한다.

1
2
./easyrsa init-pki
./easyrsa build-ca

build-ca 명령어를 실행하면 CA 인증서를 생성하기 위한 정보를 입력하라는 메시지가 나타난다. 이때 Common Name은 CA 인증서의 이름으로, 보통 회사명이나 도메인명을 사용한다. 또한 passphrase를 입력하라는 메시지가 나타나면, CA 인증서의 비밀번호를 입력한다. 이때 비밀번호는 나중에 인증서로 다른 인증서를 서명할 때 사용되므로 안전하게 보관해야 한다.

서버 인증서 생성

CA 인증서를 생성했다면 이제 서버 인증서를 생성할 차례이다. 서버 인증서는 OpenVPN 서버의 인증서로, 클라이언트가 서버에 접속할 때 서버가 클라이언트를 인증하기 위해 사용된다.

1
./easyrsa gen-req server nopass

gen-req 명령 또한 Common Name을 입력하라는 메시지가 나오는데 적절한 이름을 입력하면 된다. 이때 nopass 옵션을 사용하는데 이는 서버 인증서의 비밀번호를 입력하지 않겠다는 의미이다. 서버 인증서는 OpenVPN 서버를 기동할때 마다 비밀번호를 입력해야 하는데, 이를 건너뛰기 위해 nopass 옵션을 사용한다.

더 강력한 보안을 원한다면 nopass 옵션을 사용하지 않는 것이 좋을 수 있다. 하지만 이경우 systemd로 OpenVPN 서비스를 기동할 때 매번 systemd-tty-ask-password-agent 명령어를 사용해 비밀번호를 입력해야 한다.

다음으로 서버 인증서를 서명한다.

1
./easyrsa sign-req server server

sign-req 명령어를 실행하면 CA 인증서의 비밀번호를 입력하라는 메시지가 나타난다. 이때 CA 인증서를 생성할 때 입력한 비밀번호를 입력하면 서버 인증서가 서명된다.

클라이언트 인증서 생성

서버 인증서를 생성했다면 이제 클라이언트 인증서를 생성할 차례이다. 클라이언트 인증서는 OpenVPN 클라이언트의 인증서로, 서버가 클라이언트를 인증하기 위해 사용된다.

1
./easyrsa gen-req client

이번에는 클라이언트 인증서이므로 아무나 인증서 파일만으로 접속할 수 없도록 비밀번호를 설정해 주었다.

1
./easyrsa sign-req client client

이제 CA 인증서의 비밀번호를 입력하면 클라이언트 인증서가 서명된다.

DH 파라미터 생성

마지막으로 DH(Diffie-Hellman) 파라미터를 생성해야 한다. DH 파라미터는 서버와 클라이언트 간의 키 교환을 위해 사용되는데, 이를 통해 서버와 클라이언트 간의 통신을 암호화할 수 있다.

1
./easyrsa gen-dh

DH 파라미터를 생성하면 pki/dh.pem 파일이 생성된다.

tls-auth 키 생성

tls-auth는 easy-rsa의 기능은 아니고 OpenVPN에서 제공하는 추가적인 옵션이다. 이는 패킷의 출처 인증과 무단 변조 방지를 위한 보안 옵션으로 ta.key 파일을 생성해야 한다. DoS 공격 등을 방지할 수 있으므로 미리 키를 생성해두는 것이 좋다.

ta.key는 openvpn 명려어를 사용해 생성할 수 있다.

1
openvpn --genkey --secret ta.key

ta.key 파일까지 생성했다면 이제 OpenVPN 서버를 설정할 차례이다.

OpenVPN 서버 설정

OpenVPN을 설치하면 /etc/openvpn 디렉토리가 생성된다. 여기에 서버 설정 파일을 생성하면 systemctl을 사용해 OpenVPN 서버를 기동할 때 따로 설정 파일을 지정하지 않아도 된다.

또한 서버 설정을 위한 example 파일이 /usr/share/doc/openvpn/examples/sample-config-files/server.conf에 포함되어 있으므로 이를 참고하여 서버 설정 파일을 생성할 수 있다.

1
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/server/server.conf

server.conf 파일을 열어서 필요한 부분을 수정한다.

1
2
# 원하는 편집기로 파일을 열어서 수정한다.
sudo vim /etc/openvpn/server/server.conf

example 파일을 복사했기 때문에 기본적인 설정은 되어 있지만, 필요한 부분을 수정해야 한다. 주석으로 설명이 되어 있으므로 이를 참고하면 된다. 아래에서는 설정을 위해 고려해야할 부분을 소개한다.

Routing VS Ethernet Bridging

Bridging and routing - OpenVPN Wiki

OpenVPN은 두가지 모드로 사용할 수 있는데, 라우팅(Routing) 모드와 이더넷 브리징(Ethernet Bridging) 모드가 있다. 라우팅 모드는 OpenVPN 서버와 클라이언트 간의 통신을 라우팅을 통해 연결하는 방식으로, IP 레벨에서 네트워크 트래픽을 처리한다. 반면 이더넷 브리징 모드는 OpenVPN 서버와 클라이언트 간의 통신을 이더넷 레벨에서 연결하는 방식으로, 같은 서브넷에 위치하며 이더넷 프레임을 전송한다.

일반적으로 라우팅 모드가 더 많이 사용되는데, 이는 라우팅 모드가 더 유연하고 안전하며 설정이 간단하기 때문이다. 또한 라우팅은 클라이언트별로 액세스 권한을 선택적으로 제어할 수 있는 뛰어난 기능을 제공한다.

하지만 아래의 경우에는 라우팅 모드의 한계로 인해 이더넷 브리징 모드를 사용해야 하는 경우가 있다.

  • IPX와 같은 비IP 프로토콜을 처리해야 하는 경우
  • 브로드캐스트 트래픽을 처리해야 하는 경우
  • Samba 또는 WINS 서버를 설정하지 않고도 VPN을 통해 Windows 파일 공유를 검색할 수 있도록 허용하고 싶은 경우

이더넷 브리징 모드를 사용하려면 설정파일의 device를 dev tap로 설정하면 되고, 라우팅 모드를 사용하려면 dev tun로 설정하면 된다. 여기서는 라우팅 모드를 기준으로 설명한다.

Private 서브넷 설정

OpenVPN 서버는 클라이언트에게 IP 주소를 할당하기 위해 DHCP 서버를 내장하고 있다. 이때 서버와 클라이언트 간의 통신을 위한 서브넷을 설정해야 한다. 라우팅 모드를 사용할 경우 서버와 클라이언트 간의 서로 다른 서브넷을 사용해야 한다.

IANA(Internet Assigned Numbers Authority)에서 규정한 사설 IP 주소는 다음과 같다.

Private IP RangeCIDR Notation
10.0.0.0 - 10.255.255.25510.0.0.0/8 (255.0.0.0)
172.16.0.0 - 172.31.255.255172.16.0.0/12 (255.240.0.0)
192.168.0.0 - 192.168.255.255192.168.0.0/16 (255.255.0.0)

아래 예시는 10.8.0.0/24 서브넷을 사용하는 설정이다.

1
server 10.8.0.0 255.255.255.0

라우팅 설정

기본적으로 OpenVPN 클라이언트가 활성화되면 OpenVPN 서버 사이트로 들어오고 나가는 네트워크 트래픽만 VPN을 통해 전송된다. 예를 들어 일반적인 웹 검색은 VPN을 우회하는 직접 연결을 통해 수행된다.

특정 IP로 접속하는 트래픽을 VPN을 통해 전송하도록 하려면 push "route 192.168.0.0 255.255.255.0"와 같이 설정하면 된다. 이는 push는 클라이언트에게 설정을 전달하는 명령어로 라우팅 테이블을 추가하는 route 명령어를 전달해 192.168.0.0/24 서브넷으로 접속하는 트래픽을 VPN을 통해 전송하도록 설정한 것이다.

또는 push "redirect-gateway def1 bypass-dhcp"와 같이 설정하면 클라이언트의 모든 트래픽을 VPN 터널을 통해 전송하도록 설정할 수 있다. 이는 DHCP를 제외한 모든 트래픽을 VPN을 통해 전송하도록 설정한 것이다.

이렇게 모든 트래픽을 VPN 터널을 통해 전송하도록 설정하려면 서버 사이드에서 들어온 트래픽을 인터넷으로 전송하는 방법을 설정해야 한다. 이는 iptables를 사용하거나 NAT를 사용하는 방법이 있다.

iptables를 사용하는 경우 아래와 같이 명령어를 입력해 라우팅 규칙을 추가해줘야 한다.

1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

자세한 내용은 Bridging and routing - OpenVPN Wiki에서 확인할 수 있다.

TCP VS UDP

OpenVPN의 장점 중 하나는 TCP와 UDP를 모두 지원한다는 것이다. TCP는 신뢰성 있는 연결을 제공하고, UDP는 빠른 속도를 제공한다.

일반적으로 VPN의 경우 UDP를 사용하는 것이 더 효율적이다. 이는 TCP의 경우 패킷 손실이 발생하면 재전송을 요청하기 때문에 느려질 수 있기 때문이다. 신뢰성의 경우 UDP로 VPN 연결을 수립하더라도 최종 end-to-end 연결은 필요에 따라 TCP로 수립할 수 있기 때문이다.

하지만 UDP의 경우 일부 환경에서는 차단되는 경우가 있을 수 있기 때문에 이를 고려하여 TCP를 사용할 수도 있다. 특히 공공 와이파이나 회사 네트워크 등에서는 UDP가 차단되는 경우가 많은데 실제로 QUIC-S 프로젝트를 진행할때 학교의 와이파이에서 UDP가 차단되어 애를 먹었던 기억이 있다.

따라서 OpenVPN 또한 TCP로 설정하기로 했다.

1
proto tcp

동일한 시스템에서 TCP와 UDP를 모두 사용하려면 서로 다른 포트를 사용해야 한다. 또한 이를 각각 따로 설정 파일을 생성한 후 각각 프로세스로 실행해야 한다.

포트 설정

OpenVPN은 기본적으로 1194번 포트를 사용한다. 하지만 알려진 포트를 사용하면 포트 스캐닝 공격을 받을 수 있기 때문에 포트를 변경하는 것이 좋다.

1
2
# 원하는 포트로 설정
port 12345

인증서 설정

앞서 생성한 CA 인증서와 서버 인증서를 설정 파일에 추가해야 한다.

1
2
3
4
5
ca /path/to/ca.crt
cert /path/to/server.crt
key /path/to/server.key
dh /path/to/dh.pem
tls-auth /path/to/ta.key 0

추가 고려사항

  • client-to-client: 클라이언트 간의 통신을 허용할지 여부를 설정한다. 기본값은 false이다.
  • Linux, BSD 또는 Unix 계열 OS를 사용하는 경우 user nobodygroup nogroup을 설정하면 OpenVPN이 root 권한으로 실행되지 않도록 설정할 수 있다.
  • 동일한 시스템에서 여러 OpenVPN 서버를 운영하려면 각각 설정 파일을 생성하고 따로 실행해야 한다. 이때 port 등이 중복되지 않도록 주의해야 한다.
  • 자세한 설명은 server.conf 파일의 주석을 참고하면 된다.

OpenVPN 서비스 기동

OpenVPN systemd use - OpenVPN Wiiki

OpenVPN 서버 설정이 완료되었다면 이제 OpenVPN 서비스를 기동할 차례이다. OpenVPN은 systemd를 사용해 서비스를 관리할 수 있으며, 이때 systemctl 명령어를 사용하게 된다.

1
sudo systemctl start openvpn-server@{Server-config}

위 명령어에서 {Server-config}는 설정 파일의 이름이다. 예를 들어 server.conf 파일을 사용한다면 아래와 같이 명령어를 실행하면 된다.

1
sudo systemctl start openvpn-server@server

OpenVPN 서비스가 정상적으로 기동되었다면 아래 명령어를 사용해 상태를 확인할 수 있다.

1
sudo systemctl status openvpn-server@server

또한 서비스가 부팅시 자동으로 기동되도록 설정하려면 아래 명령어를 실행하면 된다.

1
sudo systemctl enable openvpn-server@server

OpenVPN 클라이언트 설정

클라이언트 설정은 서버 설정과 비슷하게 설정 파일을 생성하고, 서버에서 생성한 클라이언트 인증서와 CA 인증서를 사용해야 한다. 서버 설정 파일과 비슷하게 /usr/share/doc/openvpn/examples/sample-config-files/client.conf 파일을 참고하여 클라이언트 설정 파일을 생성하면 된다.

1
2
# 접속할 클라이언트에서 디렉토리를 생성
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.conf

example 클라이언트 설정 파일에도 주석으로 각 옵션에 대한 설명이 포함되어 있으므로 이를 참고하여 설정 파일을 수정하면 된다.

dev 설정

서버 설정과 마찬가지로 클라이언트 설정 파일에서도 dev 옵션을 사용해 라우팅 모드를 설정한다.

1
dev tun

remote 서버 설정

클라이언트 설정 파일에서 접속할 OpenVPN 서버의 주소와 포트는 remote 옵션을 사용해 설정한다.

1
remote example.com 12345

proto 설정

서버 설정과 마찬가지로 클라이언트 설정 파일에서도 proto 옵션을 사용해 TCP를 설정한다.

1
proto tcp

인증서 설정

서버 설정과 마찬가지로 클라이언트 설정 파일에서도 CA 인증서와 클라이언트 인증서를 설정해야 한다.

1
2
3
4
ca /path/to/ca.crt
cert /path/to/client.crt
key /path/to/client.key
tls-auth /path/to/ta.key 1

또는 인증서 파일을 설정파일에 직접 포함할 수도 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<ca>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</key>
<tls-auth>
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
</tls-auth>

# ta.key 파일을 설정파일에 포함할 경우 key direction을 따로 설정해야 한다.
key-direction 1

추가 고려사항

  • nobind: 클라이언트가 서버에 접속할 때 특정 포트를 사용하지 않도록 설정한다. 특정 로컬 포트를 사용하고 싶은 것이 아니라면 이미 기본값으로 설정되어 있으므로 건드리지 않으면 된다.
  • persist-keypersist-tun: 연결이 끊어졌을 때 키와 터널을 유지할지 여부를 설정한다.
  • 자세한 설명은 client.conf 파일의 주석을 참고하면 된다.

OpenVPN 클라이언트 연결

클라이언트 설정이 완료되었다면 이제 OpenVPN 클라이언트를 기동하고 서버에 연결할 차례이다. OpenVPN 클라이언트는 openvpn 명령어를 사용해 기동할 수 있으며, 설정 파일을 인자로 전달하면 된다.

1
sudo openvpn /etc/openvpn/client/client.conf

(참고) GNOME Network Manager를 사용한 OpenVPN 연결

우분투와 같은 GNOME 환경에서는 보통 Network 설정에 들어가면 VPN 설정을 할 수 있는데, 이를 사용하면 GUI 환경에서 OpenVPN을 설정할 수 있다. 만약 OpenVPN 플러그인이 설치되어 있지 않다면 아래 명령어를 사용해 설치할 수 있다.

1
sudo apt install network-manager-openvpn-gnome

설치가 완료되었다면 아래와 같이 OpenVPN 설정을 할 수 있다.

  • 설정에 들어간다.

network_setting

  • 네트워크 설정을 클릭한다.
  • VPN에서 + 버튼을 클릭한다.

add_vpn

  • OpenVPN을 선택한다.

openvpn_setting

  • 클라이언트 설정 파일에 있는 내용을 GUI 환경에서 설정한다.
  • Gateway는 OpenVPN 서버의 주소를 입력한다.
  • TypeCertificates (TLS)를 선택한다.
  • 클라이언트 인증서를 생성할 때 비밀번호를 설정했다면 User Key Password에 입력한다.

openvpn_ipv4

  • Use this connection only for resources on its network를 체크한다. 이를 설정하지 않으면 모든 트래픽이 VPN을 통해 전송되어 의도하지 않게 동작할 수 있다.

openvpn_advanced

  • TCP사용 여부와 포트는 Advanced 설정에서 설정할 수 있다.

openvpn_tls

  • tls-auth 설정은 TLS Authentication 탭에서 설정할 수 있다. ModeTLS-Auth를 선택, Key File에는 ta.key 파일을 설정하고, Direction1로 설정한다.
  • 저장하고 연결한다.

추가 사항

여기까지 OpenVPN 서버를 설치 및 설정하고 클라이언트를 연결하는 방법을 소개했다. 이제 VPN을 사용해 안전하게 내부 네트워크에 접속할 수 있게 되었다.

논리적으로 묶인 내부 네트워크를 구성하였으니 ssh 연결을 외부 네트워크에서는 접속하지 못하게 설정하여 보안을 강화할 수 있을 것이다.

만약 모바일 환경에서도 VPN을 사용하고 싶다면 OpenVPN Connect 앱을 사용하면 된다. OpenVPN Connect 앱은 Google PlayApp Store에서 다운로드할 수 있다.

이외의 여러 추가 정보들은 OpenVPN Wiiki에서 확인할 수 있다.

This post is licensed under CC BY 4.0 by the author.