NAS 이야기 24D. – 시놀로지 나스를 이용한 VPN 설정 및 활용 – OpenVPN Protocol

NAS 이야기 24D. – 시놀로지 나스를 이용한 VPN 설정 및 활용 – OpenVPN Protocol

시놀로지 나스에서도 지원하는 VPN 프로토콜인 OpenVPN은 Open Source 방식의 VPN Solution으로, SSL/TLS 암호화 방법을 이용하고, 서버 설정 시 세부적인 암호화 기법을 다양하게 선택할 수도 있어, 대체로 매우 안전하다고 평가되는 VPN 접속 프로토콜이며, 현재 Synology VPN 서버에서 지원하는 프로토콜 중 가장 안전한 것으로 알려져 있다.

다만, 기존의 L2TP나 PPTP 방식에서는 접속하려는 장치에서 별도의 프로그램 설치가 없었던 점에 비해, OpenVPN은 Open Source 방식의 프로토콜이기 때문에, 접속하려는 장치(PC나 핸드폰 등)들이 기본적으로 해당 프로토콜을 내장한 것은 아니어서 접속용 소프트웨어를 추가로 설치해 주어야 하는 점이 다소 번거롭다. 또한 접속용 장치에서 처음 접속하기 위한 설정 과정에서, OpenVPN이 설정된 VPN 서버로부터 설정 Configuration 파일을 다운로드해서 설정에 반영해 주어야 하는 등 설치가 다소 까다로운 편이다.

OpenVPN의 설치 및 활용 방법은 다음과 같다.

1. NAS의 VPN 서버에서의 설정

VPN 서버 패키지에서 다음 화면 중 “VPN Server 설정” 부분에서 설정을 진행한다.

* 제일 먼저 상단부의 “OpenVPN 서버 활성화”를 선택해 준다.

* 동적 IP 주소는 접속 시 부여되는 임시 IP인데, 통상 192.168.0.0~192.168.255.0 또는 172.16.0.0 ~172.31.255.0 또는 10.0.0.0 ~10.255.255.0의 범위에서 원하는 IP 주소를 선택하여 지정하면 된다. (기존 사용 중인 IP 주소와 중복되지 않게)

* 최대 연결수와 동일계 정의 최대 연결수는 원하는 대로 지정하되, 우선은 기본값을 그대로 두어도 된다.

* 프로토콜에 UDP를 선택하고, 포트는 1194(=기본적으로 정해진 포트 – 변경은 가능)를 지정해 준다.

참고로 대부분의 OpenVPN에서는 UDP를 기본으로 제공한다. ​

* VPN에 접속하는 단계에서 사용되는 “인증” 부분이나, 데이터를 전송하는 과정에서 사용하는 암호화 기법은 매우 다양하게 선택이 가능하다. 원하는 것을 선택하면 되지만, 일반적으로 권장되는 Option은 “AES-256-CBC”와 “SHA512″이다.

* “VPN 링크에서 압축 활성화“를 활성화하면 데이터가 압축된 상태로 전송되므로 전송속도는 향상되는 효과가 있다(접속하는 장치의 성능이 충분하면). 단, 권장되는 Option은 이를 사용하지 않는 것이다.

* 클라이언트의 서버 LAN 액세스 허용을 선택하여 클라이언트가 서버의 LAN에 액세스하도록 허용한다.

* 모든 선택이 완료되면 “적용”탭을 눌러 설정의 효력을 발생시킨다.

* “적용”을 마친 후, “내보내기 구성” 버튼을 누르면, 하나의 Zip 파일이 다운로드 된다.

이 파일은 접속하려는 기기에서 설정 시 사용되는 파일이다.

2. 시놀로지 NAS의 방화벽 설정

​ DSM ==> 제어판 ==> 보안 탭의 순서로 방화벽 메뉴에 들어간 후, “생성” 버튼을 눌러서 다음 순서로 VPN Server 관련 사항을 생성시킨다. (기존 파일의 내용을 편집해도 된다)

“내장된 응용 프로그램 목록..”을 선택한 후, 우측의 “선택”을 누른 뒤, 다음 화면에서 VPN 서버 설정과 관련된 다음 포트 부분들을 찾아 선택하고 “확인” 버튼을 눌러준다.

OpenVPN 사용을 위해서는 UDP 1194번 포트가 방화벽에서 허용되어야 한다.

3. NAS가 설치된 네트워크의 라우터의 포트포워딩

Synology NAS가 연결된 라우터(=인터넷 공유기)에서 VPN 서버에 사용되는 포트들을 확인해서 포워딩해 주어야 한다. 프로토콜별로 포워딩이 필요한 포트는 UDP 1194​이다.

4. PC에서의 OpenVPN Client 설치 및 설정

1) OpenVPN GUI 설치

접속할 Client 장비에서 인터넷(https://openvpn.net/community-downloads/ ) )에 접속하여 OpenVPN 접속용 프로그램을 다운로드하여 설치한다. 이때 각 장비에 적합한 설치 파일을 잘 선택해야 한다.(PC용, ARM 기기용, 32bit 용 또는 64bit 용..) 올바른 파일을 선택해서 다운로드 한 경우, 설치는 매우 쉽게 이루어진다. 윈도우의 경우 해당 프로그램을 찾아 (OpenVPN GUI)를 실행시키면 화면 우측 하단에 설치된 것을 확인할 수 있다.

se-l-text” id=”SE-6cca08d7-2b3e-47e2-9956-750604b92a4a”>

6cca08d7-2b3e-47e2-9956-750604b92a4a”, “data” : {“link” : “https://openvpn.net/community-downloads/”, : “false”, “thumbnail” : ”

2) OpenVPN 접속용 파일 복사

접속용 설정을 위해, 위에서 미리 다운로드해 두었던 설정용 파일의 압축을 풀다. 이 압축파일에는 VPNConfig.ovpn과, 간단한 설명 파일인 Readme 파일과,(버전에 따라 인증서 파일)이 포함되어 있는데, 이들을 OpenVPN GUI의 Config 폴더(윈도인 경우 : C:Program FilesOpenVPNconfig)에 (관리자 권한으로) 복사해 준다.

3) VPNConfig.ovpn 세부 설정

이렇게 복사해 준 VPNConfig.ovpn에는 서버에 대한 여러 가지 접속 정보가 들어있기는 하나, 아직 완전하지는 않아 추가 정보를 추가로 입력해 수정해 주어야 한다.

VPNConfig.ovpn 을 편집기로 열어 다음 3개의 부분을 찾아 올바르게 지정하고 저장한다.

<필수사항>

remote YOUR_SERVER_IP 1194 => NAS에 할당된 도메인 이름을 기록

: remote test.synology.me 1194

#redirect-gateway def1 => 맨 앞에 있는 주석 표시 부호인 “#“을 삭제

예: redirect-gateway def1

#dhcp-option DNS DNS_IP_ADDRESS => “#”을 삭제한다

DNS_IP_ADDRESS에 NAS DNS 주소를 기재함

보조 DNS 서버도 사용 시, 2줄을 반복하여 지정한다.

예 : dhcp-option DNS 164.1xx.1xx.x (주된 DNS 주소)

dhcp-option DNS 163.1xx.1xx.x (보조 DNS 주소)

​ (기본 DNS 번호는 DSM의 제어판에서 –> 정보 센터 –> 네트워크에서 확인)

<보조 사항>

위의 3가지만 정확하면, OpenVPN 접속이 이루어지나, 경우에 따라서는 경고가 나올 수도 있다.

이를 최소화하기 위해, VPNConfig.ovpn에서 다음 부분도 수정해 준다.

Config 파일에서 “Comp-Lzo”가 있으면 찾아 지운다.

Config 파일에서 “auth-user-pass” 다음 line에 “auth-nocache라고 추가한다.

“remote-cert-tls server”라는 문구를 “tls-client”이후에 추가한다.

4) 접속

이처럼 Config 파일의 수정을 마치면, 접속 준비가 끝난 것이다.

다음과 같은 순서로 OpenVPN에 접속한다.

그 결과, 다음과 같이 아무런 Warning이나 Error message 없이 Open VPN을 통해 접속이 이루어진 것을 확인할 수 있었다.

OpenVPN의 성공적인 접속 화면

참고로, 내가 사용하여 OpenVPN 접속에 성공한 Config 파일의 최종 내용은 다음과 같다.

성공적인 OpenVPN 접속에 사용한 Config 파일

< 참고 Update 사항 – 2022.1>

지난 2021년에는 OpenVPN GUI가 보안 향상 등을 위해 기존 2.4 버전에서 2.5버전으로 Upgrade 되었고, 2021년에만도 4차례가 개량된 버전들이 발표되었다.

2.5 버전으로 개량되면서, 가장 큰 변화 중 하나는 기본적으로 사용하는 암호화 방식을 개량한 것으로, 기존 CBC (Cipher Block Chaining) 대신 GCM (Galois/Counter Mode) 방식을 채택한 것으로, 2.5 이후 버전에서는 AES-256-GCM을 표준 기본 암호화 도구(Default encryption cipher)으로 사용하게 된다고 한다. OpenVGP Group에서는 AES-256인 경우, GCM이나 CBC 모두 보안 측면에서는 안전하고 비슷한 수준이나, GCM을 사용하게 되는 것이, 암호화와 인증을 통합할 수 있게 되어, 결과적으로 속도 향상 효과가 있기 때문에 GCM으로 변경하게 되었다고 밝힌 바 있다. (상세 내용 다음 참조)

https://openvpn.net/vpn-server-resources/change-encryption-cipher-in-access-server/

다만 기존 접속 장치들과의 호환성을 고려하여, AES-256-GCM을 지원하지 않는 장치들이 접속하려는 경우, 현재는 AES-256-CBC를 대체용 암호 해석기(Fallback cipher)로 사용한다.

현재 시점에서 시놀로지 나스의 VPN 서버는 AES-256-CBC를 지원하며 AES-256-GCM는 지원하지 않기 때문에, 정상적으로 접속이 이루어지더라도, 다음과 같은 형태의 경고 문구가 나오게 된다.

이 경고 문구의 요지는 “예전 형식의 암호화기 옵션으로 설정되어 있고, AES-256-GCM 해독기 옵션은 누락되어 있는 상태라, 예전 형식(아래에서는 AES-128-CBC)으로 암호화된 것을 해독하지만, 향후 버전들에서는 이러한 기능을 지원하지 않을 수도 있으므로, 이의 AES-256-GCM 해독기 옵션 추가를 고려하라..” 대충 이런 의미이다.