SoftEther VPN 서버 구축 (1) – SoftEther VPN을 이용한 겁나 쉬운 VPN 서버 구축

(Last Updated On: November 25, 2018)

SoftEther VPN

SoftEther VPN 은 Tsukuba University 에서 만든 겁나 좋은 VPN 소프트웨어다.

  • 서버 소프트웨어는 다양한 플랫폼에서 지원하고 있다.

나는 Centos 7 로 구축해야지.

SoftEther VPN 공식 사이트에서는 리눅스플랫폼의 경우 RHEL (Centos, Fedora) 계열의 배포판을 매우 권장하고 있다.

 

Download

이곳에서 각 플랫폼별로 파일을 제공한다. 리눅스는 빌드해서 써야되나보다.
VPN 서버를 구축할 거니깐 SoftEtherVPN Server 리눅스 tar.gz 파일로 내려받는다.

 

SoftEther VPN Server Download

[root@testenv ~]# wget https://www.softether-download.com/files/softether/v4.27-9668-beta-2018.05.29-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.27-9668-beta-2018.05.29-linux-x64-64bit.tar.gz
--2018-08-08 23:16:44--  https://www.softether-download.com/files/softether/v4.27-9668-beta-2018.05.29-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.27-9668-beta-2018.05.29-linux-x64-64bit.tar.gz
Resolving www.softether-download.com (www.softether-download.com)... 130.158.75.49
Connecting to www.softether-download.com (www.softether-download.com)|130.158.75.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6280830 (6.0M) [application/x-gzip]
Saving to: 'softether-vpnserver-v4.27-9668-beta-2018.05.29-linux-x64-64bit.tar.gz'

100%[======================================================================================================================================================>] 6,280,830   4.40MB/s   in 1.4s

2018-08-08 23:16:45 (4.40 MB/s) - 'softether-vpnserver-v4.27-9668-beta-2018.05.29-linux-x64-64bit.tar.gz' saved [6280830/6280830]

 

설치

라이브러리 설치

SoftEther VPN 패키지 설치에 필요한 라이브러리를 먼저 설치한다.

RHEL7 (Centos 7, Fedora >=19)

yum groupinstall "Development Tools"
yum install openssl which net-tools

Debian (Ubuntu)

apt install build-essentials openssl

또는 구버전 OS인 경우 apt-get

패키지 압축해제

다운받은 tar.gz 파일을 압축한다. tar xvzf [받은파일명]

[root@testenv ~]# tar xvzf softether-vpnserver-v4.27-9668-beta-2018.05.29-linux-x64-64bit.tar.gz
vpnserver/
vpnserver/Makefile
vpnserver/.install.sh
vpnserver/ReadMeFirst_License.txt
vpnserver/Authors.txt
vpnserver/ReadMeFirst_Important_Notices_ja.txt
vpnserver/ReadMeFirst_Important_Notices_en.txt
vpnserver/ReadMeFirst_Important_Notices_cn.txt
vpnserver/code/
vpnserver/code/vpnserver.a
vpnserver/code/vpncmd.a
vpnserver/lib/
vpnserver/lib/libcharset.a
vpnserver/lib/libcrypto.a
vpnserver/lib/libedit.a
vpnserver/lib/libiconv.a
vpnserver/lib/libintelaes.a
vpnserver/lib/libncurses.a
vpnserver/lib/libssl.a
vpnserver/lib/libz.a
vpnserver/lib/License.txt
vpnserver/hamcore.se2
[root@testenv ~]#

 

프로그램 생성

vpnserver 디렉토리가 생성됨을 알 수있다.
cd 명령으로 vpnserver 디렉토리로 접속한다.
[root@testenv ~]# cd vpnserver/
[root@testenv vpnserver]#

make 를 이용해 실행파일을 생성한다.

[root@testenv vpnserver]# make
--------------------------------------------------------------------

SoftEther VPN Server (Ver 4.27, Build 9667, Intel x64 / AMD64) for Linux Install Utility
Copyright (c) SoftEther Project at University of Tsukuba, Japan. All Rights Reserved.

--------------------------------------------------------------------


Do you want to read the License Agreement for this software ?

 1. Yes
 2. No

Please choose one of above number:

License Agreement 에 동의한다. 1 입력 후 엔터를 누르면 된다… 과정이 두번 정도 더 있다.

--------------------------------------------------------------------
The preparation of SoftEther VPN Server is completed !


*** How to switch the display language of the SoftEther VPN Server Service ***
SoftEther VPN Server supports the following languages:
  - Japanese
  - English
  - Simplified Chinese

You can choose your prefered language of SoftEther VPN Server at any time.
To switch the current language, open and edit the 'lang.config' file.


*** How to start the SoftEther VPN Server Service ***

Please execute './vpnserver start' to run the SoftEther VPN Server Background Service.
And please execute './vpncmd' to run the SoftEther VPN Command-Line Utility to configure SoftEther VPN Server.

Of course, you can use the VPN Server Manager GUI Application for Windows / Mac OS X on the other Windows / Mac OS X computers in order to configure the SoftEther VPN Server remotely.


*** For Windows users ***
You can download the SoftEther VPN Server Manager for Windows
from the http://www.softether-download.com/ web site.
This manager application helps you to completely and easily manage the VPN server services running in remote hosts.


*** For Mac OS X users ***
In April 2016 we released the SoftEther VPN Server Manager for Mac OS X.
You can download it from the http://www.softether-download.com/ web site.
VPN Server Manager for Mac OS X works perfectly as same as the traditional Windows versions. It helps you to completely and easily manage the VPN server services running in remote hosts.

--------------------------------------------------------------------

make[1]: Leaving directory `/root/vpnserver'

 

이게 뜨면 됐겠지.

 

VPN 서버위치

생성된 vpnserver의 위치를 변경할거다.

[root@testenv vpnserver]# cd ..
[root@testenv ~]# mv vpnserver /usr/local/
[root@testenv ~]# ls -l /usr/local/vpnserver/
total 10480
-rwxrwxrwx 1 root root    2955 May 29 22:13 Authors.txt
-rwxrwxrwx 1 root root    3010 May 29 22:13 Makefile
-rwxrwxrwx 1 root root   30801 May 29 22:13 ReadMeFirst_Important_Notices_cn.txt
-rwxrwxrwx 1 root root   36296 May 29 22:13 ReadMeFirst_Important_Notices_en.txt
-rwxrwxrwx 1 root root   50695 May 29 22:13 ReadMeFirst_Important_Notices_ja.txt
-rwxrwxrwx 1 root root   58902 May 29 22:13 ReadMeFirst_License.txt
drwx------ 2 root root    4096 Aug  8 23:34 chain_certs
drwxrwxrwx 2 root root    4096 Aug  8 23:34 code
-rwxrwxrwx 1 root root 1296620 May 29 22:13 hamcore.se2
-rw------- 1 root root     867 Aug  8 23:34 lang.config
drwxrwxrwx 2 root root    4096 Aug  8 23:34 lib
-rwxr-xr-x 1 root root 4611800 Aug  8 23:34 vpncmd
-rwxr-xr-x 1 root root 4611880 Aug  8 23:34 vpnserver

 

VPN 서버 실행파일 권한변경

보안을 위해 vpnserver 관련파일의 권한을 root 만 손댈수 있도록 변경해준다.

[root@testenv ~]# cd /usr/local/vpnserver/
[root@testenv vpnserver]# chmod 600 *
[root@testenv vpnserver]# chmod 700 vpncmd
[root@testenv vpnserver]# chmod 700 vpnserver
[root@testenv vpnserver]# ls -l
total 10480
-rw------- 1 root root    2955 May 29 22:13 Authors.txt
-rw------- 1 root root    3010 May 29 22:13 Makefile
-rw------- 1 root root   30801 May 29 22:13 ReadMeFirst_Important_Notices_cn.txt
-rw------- 1 root root   36296 May 29 22:13 ReadMeFirst_Important_Notices_en.txt
-rw------- 1 root root   50695 May 29 22:13 ReadMeFirst_Important_Notices_ja.txt
-rw------- 1 root root   58902 May 29 22:13 ReadMeFirst_License.txt
drw------- 2 root root    4096 Aug  8 23:34 chain_certs
drw------- 2 root root    4096 Aug  8 23:34 code
-rw------- 1 root root 1296620 May 29 22:13 hamcore.se2
-rw------- 1 root root     867 Aug  8 23:34 lang.config
drw------- 2 root root    4096 Aug  8 23:34 lib
-rwx------ 1 root root 4611800 Aug  8 23:34 vpncmd
-rwx------ 1 root root 4611880 Aug  8 23:34 vpnserver

 

vpnserver 서비스 등록

/etc/init.d/vpnserver 파일을 생성 및 수정하여 아래와 같은 스크립트를 넣는다.

#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Server
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

데비안 계열 (우분투 포함) 사용자는 설정 방법이 좀 다르다. 자세한건 인터넷을 참조

데몬 스크립트 권한 수정

chmod 755 /etc/init.d/vpnserver

데몬 적용

/sbin/chkconfig --add vpnserver

서버 시작

/etc/init.d/vpnserver start

 

서버 셋팅

여기서 이번엔 SoftEther VPN Server Manager for Windows 를 내려받아 설치 및 실행시킨다.

새로운 설정 (New Settings) 를 눌러 VPN서버와의 연결을 설정한다.
softether vpn manager
포트는 443이 HTTPS 포트라서 이미 쓰고 있는 경우가 생긴다면 5555포트 등으로 시도한다.

첫 접속 시도시 관리자 비밀번호를 설정하라는 메시지가 뜬다. 설정해주자.


난 전문가가 아니니 VPN을 쉽게쉽게 설정해 줄 팝업을 이용한다.
Remote Access VPN Server 를 선택 후 다음.

초기화됩니다. – 예.

VPN 가상 허브의 이름을 주라고 한다. 상관없으니 기본값인 VPN 이라고 명명하겠다.

SoftEther VPN 서버 설정시 DDNS 를 강제이자? 무료로 가입시켜준다. 확인하면 닫는다.

닫으면 IPsec / L2TP 설정창이 뜬다.

암호화되지 않는 L2TP 서버, Ether IP / L2TPv3 over IPsec 들은 우리와 크게 친화적이지 않으니,
L2TP over IPsec 만 체크한다.

아래 있는 IPsec pre-shared 키는 약간의 비밀아이디 같은건데, 잊기 쉬우므로 그냥 확인을 누른다.

VPN Azure Cloud… 도 친하지 않으므로 그냥 사용 안 함으로 설정한 뒤 확인을 누른다.

마지막 나머지 설정을 하라고 하는데, 우선 패스하겠다.
창을 닫는다.

여기까지 과정을 마쳤으면 OpenVPN 까지 기본으로 설정된다.

 

방화벽 설정에 대하여

방화벽이 설정되어있다면, VPN 서버에 대한 방화벽을 허용해 주자.
SoftEther VPN 은 기본적으로 5555 포트를 사용하며,
기본값으로 설정되어있는 포트는 443, 993, 1194, 5555 포트로
993 포트는 IMAP (메일서버),
1194 포트는 OpenVPN 의 기본포트고, 443 포트는 HTTPS 서버의 포트다.
ISP/회사/학교/China Great Firewall 등 특수한 환경에서 VPN 포트를 차단할 가능성이 높기때문에, 통상 사용하는 443 포트도 기본적으로 쓰인다. 웹서버와 겹치기 때문에, HTTPS 서버를 같이 운용한다면 포트를 제거해줘야 정상적으로 운용할 수있다.

iptables의 경우

iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

이건 5555 포트만을 위한 예시이며, 상황에 맞게 당연히 변경해야한다. OpenVPN는 UDP를 기본적으로 사용하는듯.

 

나머지 설정은 다음포스트에서!