웹사이트 검색

SoftEther를 사용하여 다중 프로토콜 VPN 서버를 설정하는 방법


소개

이 문서에서는 SoftEther 패키지를 사용하여 다중 프로토콜 VPN 서버를 설치하고 구성하는 방법을 설명합니다. Linux에서 IPSec 및 SSTP VPN 서버를 통한 OpenVPN 및 L2TP를 활성화하고 구성합니다.

소프트이더란?

SoftEther VPN은 세계에서 가장 강력하고 사용하기 쉬운 다중 프로토콜 VPN 소프트웨어 중 하나이며, 일본 Tsukuba 대학의 좋은 사람들이 만들었습니다. Windows, Linux, Mac, FreeBSD 및 Solaris에서 실행되며 프리웨어 및 오픈 소스입니다. 개인용 또는 상업용으로 SoftEther를 무료로 사용할 수 있습니다.

1단계: 가상 서버 생성

먼저 DigitalOcean Droplet을 생성해야 합니다. SoftEther의 웹사이트에서 언급했듯이 SoftEther는 커널 v2.4 이상이 설치된 거의 모든 Linux 배포판에서 작동합니다. 그러나 CentOS, Fedora 또는 Red Hat Enterprise Linux 배포판 중 하나를 선택하는 것이 좋습니다.

개인적으로 Ubuntu, CentOS 및 Fedora, 32비트 및 64비트 버전 모두에서 시도했으며 완벽하게 작동했습니다.

2단계: 서버 소프트웨어 업데이트

아래 명령을 사용하여 서버 소프트웨어 패키지를 최신 버전으로 업데이트하고 업그레이드하십시오.

데비안/우분투:

apt-get update && apt-get upgrade

CentOS/페도라:

yum upgrade

3단계: SoftEther 다운로드

웹 사이트에서 Linux용 최신 SoftEther 서버 패키지를 다운로드할 수 있습니다.

소프트이더 다운로드

안타깝게도 현재로서는 패키지 관리자를 통해(또는 단일 URL을 사용하여) 최신 버전을 얻을 수 있는 방법이 없습니다. 따라서 패키지를 다운로드하려면 데스크톱 브라우저를 사용하여 해당 웹 사이트를 탐색해야 합니다. 이를 처리하는 방법에는 두 가지가 있습니다. 먼저 자신의 컴퓨터에서 웹 사이트를 탐색한 다음 서버 구성(OS, x86/x64 등)에 따라 적절한 패키지에 대한 링크를 찾은 다음 wget을 사용하여 다운로드합니다. 서버에 패키지. 또는 lynx와 같은 터미널 기반 웹 브라우저를 사용하여 SoftEther 웹사이트를 검색하고 올바른 패키지를 다운로드할 수 있습니다.

lynx를 사용하여 수행하는 방법은 다음과 같습니다.

먼저 서버에 lynx를 설치합니다.

데비안/우분투:

apt-get install lynx -y

CentOS/페도라:

yum install lynx -y

이제 아래 명령을 사용하여 SoftEther 다운로드 웹페이지를 탐색합니다.

lynx http://www.softether-download.com/files/softether/

이 페이지에는 사용 가능한 모든 버전의 SoftEther가 포함되어 있습니다. 원하는 버전을 선택한 다음(이 자습서에서는 v2.00-9387-rtm-2013.09.16 사용) Enter 키를 눌러 링크로 이동합니다. 이제 Linux를 선택하고 다음 페이지에서 SoftEther VPN 서버를 선택하십시오. 서버 하드웨어 아키텍처에 따라 패키지를 선택하십시오. 32비트 - Intel x86 및 64비트 - Intel x64 또는 AMD64는 DigitalOcean 32비트 또는 64비트 드롭릿에서 작동합니다. 마지막으로 링크에서 "D\ 키를 눌러 다음 페이지에서 tar 파일을 다운로드하고 Lynx에서 요청하면 "디스크에 저장\을 선택합니다. 파일이 저장되면 "Q\를 눌러 Lynx를 종료하고 설치를 계속할 수 있습니다.

4단계: SoftEther 설치 및 구성

이제 SoftEther 다운로드 페이지에서 받은 패키지를 추출하고 컴파일해야 합니다. 이 튜토리얼에서 사용된 패키지 이름은 softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz이므로 아래 명령을 사용하여 추출합니다.

 tar xzvf softether-vpnserver-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz

압축을 풀면 작업 폴더에 vpnserver라는 디렉터리가 생성됩니다. SoftEther를 컴파일하려면 서버에 다음 도구와 패키지를 설치해야 합니다.

make, gccbinutils(gcc), libc(glibc), zlib, openssl, readline 및 ncurses

이것들이 설치되어 있는지 확인하십시오. 아래 명령을 사용하여 SoftEther를 빌드하는 데 필요한 모든 패키지를 설치할 수 있습니다.

데비안/우분투:

apt-get install build-essential -y

CentOS/페도라:

yum groupinstall "Development Tools"

참고: Fedora에서 gcc 패키지는 위의 명령을 사용하여 설치되지 않으므로 yum install gcc를 사용하여 수동으로 설치해야 합니다.

이제 필요한 모든 패키지가 설치되었으므로 다음 명령을 사용하여 SoftEther를 컴파일할 수 있습니다.

먼저 vpnserver 디렉토리로 \cd:

cd vpnserver

이제 "make\를 실행하여 SoftEther를 실행 파일로 컴파일합니다.

make

SoftEther는 라이선스 계약을 읽고 동의하도록 요청할 것입니다. 계약을 읽으려면 1을 선택하고, 읽은 것을 확인하려면 다시 선택하고, 마지막으로 라이선스 계약에 동의합니다.

SoftEther는 이제 컴파일되어 실행 파일(vpnserver 및 vpncmd)로 만들어집니다. 프로세스가 실패하면 모든 요구 사항 패키지가 설치되어 있는지 확인하십시오.

이제 SoftEther가 컴파일되었으므로 vpnserver 디렉토리를 다른 위치로 이동할 수 있습니다. 여기서는 usr/local로 이동합니다.

cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver/

그런 다음 파일을 보호하기 위해 파일 권한을 변경합니다.

chmod 600 *
chmod 700 vpnserver
chmod 700 vpncmd

SoftEther가 시작 시 서비스로 시작하도록 하려면 /etc/init.d 디렉토리에 vpnserver라는 파일을 만들고 다음과 같이 변경합니다.

먼저 vi 또는 nano를 사용하여 파일을 만들고 엽니다.

vi /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

마지막으로 esc를 누르고 :wq를 입력하여 vim을 닫아 파일을 저장하고 닫습니다.

존재하지 않는 경우 /var/lock/subsys에 디렉토리를 만들어야 합니다.

mkdir /var/lock/subsys

이제 시작 스크립트에 대한 권한을 변경하고 아래 명령을 사용하여 vpnserver를 시작하십시오.

chmod 755 /etc/init.d/vpnserver && /etc/init.d/vpnserver start

아래 명령을 사용하여 시작 시 실행되도록 합니다.

데비안/우분투:

update-rc.d vpnserver defaults

CentOS/페도라:

chkconfig --add vpnserver 

이제 SoftEther VPN 서버가 설치되고 시작 시 실행되도록 구성됩니다. 마지막으로 VPN 서버가 작동하는지 확인해야 합니다.

cd /usr/local/vpnserver
./vpncmd

이제 3을 눌러 VPN 도구 사용을 선택한 후 다음을 입력합니다.

check

모든 검사를 통과하면 서버가 SoftEther VPN 서버가 될 준비가 된 것이며 다음 단계로 넘어갈 수 있습니다. VPN 도구를 종료하려면 "exit\를 입력하세요.

SoftEther VPN 서버를 구성하는 방법에는 두 가지가 있습니다. Windows 기반 서버 관리자를 사용하여 원하는 수의 SoftEther VPN 서버를 원격으로 관리하고 구성할 수 있습니다. 또는 내장된 vpncmd 도구를 사용하여 서버를 구성하십시오.

SoftEther Server Manager for Windows는 해당 웹 사이트에서 다운로드하고 제공되는 GUI를 사용하여 구성할 수 있으며 이는 Windows 사용자인 경우 선호되는 방법입니다.

여기서는 vpncmd를 사용하여 VPN 서버를 구성합니다.

5단계: 관리자 암호 변경

이제 SoftEther VPN 서버가 설치되었으므로 SoftEther와 함께 사용하려면 관리자 암호를 지정해야 합니다. SoftEther의 명령줄 기반 관리 도구인 vpncmd를 사용하여 이 작업을 수행할 수 있습니다.

./vpncmd

1번을 눌러 "VPN 서버 또는 VPN 브릿지 관리\를 선택한 후 아무것도 입력하지 않고 엔터를 눌러 localhost 서버에 접속하고, 다시 입력하지 않고 엔터를 눌러 서버 어드민 모드로 서버에 접속합니다.

그런 다음 아래 명령을 사용하여 관리자 비밀번호를 변경하십시오.

ServerPasswordSet

6단계: 가상 허브 만들기

SoftEther를 사용하려면 먼저 가상 허브를 생성해야 합니다. 예를 들어 vpncmd 도구에서 아래에 명령을 입력하기 위해 VPN이라는 허브를 생성합니다.

HubCreate VPN

다음으로 허브의 관리자 암호를 입력하라는 메시지가 표시됩니다. 이 암호는 서버 관리자 모드로 로그인하지 않고 해당 특정 허브를 관리하려고 할 때마다 사용됩니다.

이제 다음 명령을 사용하여 생성한 가상 허브를 선택합니다.

Hub VPN

7단계: SecureNAT 활성화

허브를 서버 네트워크에 연결하는 방법에는 로컬 브리지 연결을 사용하거나 SecureNAT 기능을 사용하는 두 가지 방법이 있습니다.

각각을 별도로 사용할 수 있지만 이 둘을 함께 사용하면 문제가 발생합니다.

여기에서는 설정이 매우 쉽고 대부분의 상황에서 꽤 잘 작동하는 SecureNAT를 사용합니다. 로컬 브리지를 사용할 수도 있지만 DHCP 서버도 설치하고 구성해야 합니다.

SecureNAT은 가상 NAT와 DHCP 서버 기능의 조합입니다. 아래 명령을 사용하여 SecureNAT를 활성화할 수 있습니다.

SecureNatEnable

8단계: 사용자 생성 및 관리

이제 Virtual Hub에서 VPN을 사용할 사용자를 만들어야 합니다. UserCreate 명령을 사용하여 Virtual Hub에 대한 사용자를 생성하고 UserList로 현재 사용자 목록을 볼 수 있습니다. 사용자를 그룹에 추가할 수 있으며 다양한 유형의 인증 모드(비밀번호, 인증서, RADIUS, NTLM 등 포함)를 가질 수도 있습니다.

UserCreate 명령을 사용하여 "test\라는 사용자를 생성합니다.

UserCreate test

기본 인증 유형은 비밀번호이지만 아래 명령을 사용하여 다른 유형으로 변경할 수 있습니다.

NT 도메인 인증을 위한 UserNTLMSet

비밀번호 인증을 위한 UserPasswordSet

익명 인증을 위한 UserAnonymousSet

RADIUS 인증을 위한 UserRadiusSet

개별 인증서 인증을 위한 UserCertSet

서명된 인증서 인증을 위한 UserSignedSet

이 자습서에서는 테스트 사용자에 대한 사용자 인증 모드로 Password를 사용하므로 이 명령을 사용하여 사용자 테스트에 대한 암호를 설정합니다.

UserPasswordSet test

9단계: L2TP/IPSec 설정

L2TP/IPsec VPN 서버를 활성화하려면 아래 명령을 사용할 수 있습니다.

IPsecEnable

이 명령을 입력하면 L2TP 서버 기능을 구성하라는 메시지가 표시됩니다.

IPsec 서버 기능을 통한 L2TP 활성화: 사전 공유 키 암호화를 사용하여 IPSec을 통한 L2TP VPN을 활성화하려면 예를 선택합니다. 이제 iPhone, Android, Windows 및 Mac OS X 장치를 사용하여 이 서버에 VPN 연결을 만들 수 있습니다.

원시 L2TP 서버 기능 활성화: IPSec 암호화가 없는 클라이언트에 대해 L2TP VPN을 활성화합니다.

IPsec 서버 기능을 통해 EtherIP/L2TPv3 활성화: IPsec을 통해 EtherIP/L2TPv3와 호환되는 라우터는 이 기능을 활성화하여 이 서버에 연결할 수 있습니다.

IPsec용 사전 공유 키: L2TP VPN에서 사용할 사전 공유 키를 입력합니다.

Username에서 HUB를 생략한 경우 기본 가상 허브: 사용자는 연결할 때 Username@TargetHubName을 사용자 이름으로 사용하여 연결하려는 Virtual Hub를 지정해야 합니다. 이 옵션은 사용자가 그러한 정보를 제공하지 않는 경우 사용할 가상 허브를 지정합니다. 우리의 경우 VPN을 입력하십시오.

10단계: SSTP/OpenVPN 설정

SoftEther는 Microsoft SSTP VPN 서버 및 OpenVPN 서버의 기능을 복제할 수 있습니다. 그러나 이를 활성화하기 전에 서버용 자체 서명 SSL 인증서를 생성해야 합니다. openssl 또는 SoftEther 자체 명령을 사용하여 SSL 인증서를 생성할 수 있습니다.

여기서는 SoftEther의 ServerCertRegenerate 명령을 사용하여 서버용 자체 서명 SSL 인증서를 생성하고 등록합니다. 명령에 전달되는 인수는 CN(공통 이름)이며 호스트 이름(FQDN) 또는 IP 주소로 설정되어야 합니다.

ServerCertRegenerate [CN]

참고 1: SoftEther에는 서버에 고유하고 영구적인 호스트 이름을 할당할 수 있는 내장 동적 DNS 기능도 함께 제공됩니다. 이 기능으로 할당된 호스트 이름을 사용하여 SSL 인증서를 만들고 서버에 연결할 수 있습니다.

참고 2: SSL 인증서가 이미 있거나 openssl을 사용하여 만든 경우 ServerCertSet 명령을 사용하여 서버에 추가할 수 있습니다.

이제 인증서를 만들었으므로 클라이언트에 인증서를 다운로드하고 신뢰할 수 있는 것으로 추가해야 합니다. 아래 명령을 사용하여 서버 인증서를 cert.cer라는 파일에 저장합니다.

ServerCertGet ~/cert.cer

이제 FileZilla 또는 다른 SFTP 클라이언트를 사용하여 클라이언트에 인증서를 다운로드할 수 있습니다.

Windows에서 신뢰할 수 있는 인증서를 만들려면 신뢰할 수 있는 루트 인증 기관 저장소에 인증서를 설치해야 합니다. 다음은 방법을 설명하는 기사입니다(인증서 체인 설치 부분 참조).

인증서 체인 설치

이제 서버용 SSL 인증서를 생성하고 등록했으므로 다음 명령으로 SSTP 기능을 활성화할 수 있습니다.

SstpEnable yes

그리고 OpenVPN을 활성화하려면:

OpenVpnEnable yes /PORTS:1194

참고: OpenVPN의 기본 포트는 1194이지만 위 명령의 /PORTS:1194 부분을 원하는 포트로 변경하여 원하는 포트로 변경할 수 있습니다(예, 여러 포트를 지원합니다).

OpenVPN을 활성화한 후 OpenVPN 클라이언트용 샘플 구성 파일을 다운로드할 수 있습니다. 여기에서 샘플 OpenVPN 구성 파일을 생성하고 이를 my_openvpn_config.zip에 저장합니다.

OpenVpnMakeConfig ~/my_openvpn_config.zip

그런 다음 FileZilla와 같은 SFTP 클라이언트를 사용하여 다운로드하고 OpenVPN 클라이언트에 적용할 수 있습니다.

SoftEther는 Windows 및 Linux용 전용 VPN 클라이언트 소프트웨어도 제공합니다. 매우 강력한 HTTPS 또는 SSL-VPN을 통한 이더넷이라는 SoftEther 특정 프로토콜을 지원합니다. VPN 터널을 설정하기 위해 HTTPS 프로토콜과 포트 443을 사용하며, 이 포트는 잘 알려져 있기 때문에 거의 모든 방화벽, 프록시 서버 및 NAT가 패킷을 통과할 수 있습니다. SSL-VPN 프로토콜을 사용하려면 SoftEther VPN Client를 다운로드하여 설치해야 합니다. 이 클라이언트는 해당 웹사이트에서 구할 수 있습니다.

11단계: SoftEther VPN 서버에 연결(클라이언트 구성)

SoftEther는 다중 프로토콜 VPN 서버이므로 클라이언트로 연결할 수 있는 방법은 많습니다. L2TP, SSTP, OpenVPN 및 SSL-VPN이라는 SoftEther 전용 프로토콜을 포함하여 모든 프로토콜을 선택하여 서버에 대한 보안 연결을 설정할 수 있습니다.

클라이언트 운영 체제 및 구성에 따라 언급된 프로토콜을 사용할 수 있습니다. 하지만 저는 SSL-VPN이 안전하고 빠르며 또한 앞서 언급한 것처럼 일반적이고 잘 알려진 포트(443 또는 https-port)를 사용하기 때문에 대부분의 방화벽을 통과할 수 있기 때문에 SSL-VPN을 사용하는 것을 선호합니다.

여기에서는 SoftEther의 자체 VPN 클라이언트 소프트웨어를 사용하여 서버에 연결합니다.

먼저 SoftEther 웹 사이트에서 Linux용 SoftEther VPN 클라이언트를 다운로드합니다. lynx 브라우저를 사용하여 다운로드할 수 있습니다. SoftEther의 다운로드 페이지를 열려면 다음 명령을 입력하십시오.

lynx http://www.softether-download.com/files/softether/

그런 다음 서버 소프트웨어를 다운로드할 때와 마찬가지로 최신 버전을 선택합니다(여기서는 v2.00-9387-rtm-2013.09.16 사용). 이제 Linux를 선택하고 다음 페이지에서 SoftEther VPN Client를 선택하십시오. 이제 시스템의 하드웨어 아키텍처에 따라 패키지를 선택합니다(32비트 - Intel x86 및 64비트 - Intel x64 또는 AMD64는 DigitalOcean 32비트 또는 64비트 드롭릿에서 작동함). 마지막으로 링크에서 "D\ 키를 눌러 다음 페이지에서 tar 파일을 다운로드하고 Lynx에서 요청하면 디스크에 저장을 선택합니다. 파일이 저장되면 "Q\를 눌러 Lynx를 종료합니다.

다음 명령을 사용하여 방금 다운로드한 tar 파일을 추출합니다.

tar xzvf softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz

참고: softether-vpnclient-v2.00-9387-rtm-2013.09.16-linux-x86-32bit.tar.gz를 다운로드한 파일의 이름으로 변경하십시오.

이제 서버에서와 마찬가지로 다음 명령을 실행하여 vpnclient를 컴파일하고 실행 파일로 만들어야 합니다(4단계에서 언급한 개발 도구가 클라이언트에 설치되어 있는지 확인).

cd vpnclient
make

사용권 계약을 읽고 동의하라는 메시지가 표시되면 1을 세 번 입력한 다음 파일을 다른 디렉터리로 이동하고 권한을 변경합니다.

cd ..
mv vpnclient /usr/local
cd /usr/local/vpnclient/
chmod 600 *
chmod 700 vpnclient
chmod 700 vpncmd

그런 다음 다음 명령을 사용하여 VPN 클라이언트 서비스를 시작합니다.

./vpnclient start

클라이언트를 구성하기 위해 vpncmd를 사용할 것입니다. vpnclient 디렉토리에 있는 동안 다음 명령을 입력하여 vpncmd 도구를 실행합니다.

./vpncmd

2를 선택하여 VPN 클라이언트 관리 모드로 들어간 다음 Enter 키를 눌러 방금 설치한 로컬 VPN 클라이언트에 연결하고 관리합니다.

SoftEther는 가상 어댑터를 사용하여 VPN 서버에 대한 연결을 설정하고 다음 명령을 사용하여 myadapter라는 가상 어댑터를 생성합니다.

NicCreate myadapter

이제 이 명령을 사용하여 myconnection이라는 새 VPN 연결을 만듭니다.

AccountCreate myconnection

그런 다음 SoftEther VPN 서버의 IP 및 포트 번호를 입력하십시오. 포트 번호는 서버에서 수신하도록 설정한 모든 포트가 될 수 있습니다. 기본적으로 SoftEther는 443, 992, 1194, 5555의 4개 포트에서 수신합니다. 다음은 포트 443을 사용하는 예입니다.

Destination VPN Server Host Name and Port Number: [VPN Server IP Address]:443

참고: IP 주소 대신 서버의 정규화된 도메인 이름(FQDN)을 입력할 수도 있습니다.

이제 서버에서 연결하려는 가상 허브의 이름을 입력하십시오. 우리의 경우 이름은 VPN입니다.

Destination Virtual Hub Name: VPN

그런 다음 서버에서 생성한 사용자의 사용자 이름을 입력합니다. test라는 사용자를 만들었습니다.

Connecting User Name: test

마지막으로 방금 만든 Virtual Hub의 이름을 입력합니다.

Used Virtual Network Adapter Name: myadapter

이제 VPN 연결이 생성되었으며 연결할 준비가 되었습니다. 마지막 단계는 서버에서 사용자의 인증 모드를 구성한 방법이므로 인증 모드를 비밀번호로 변경하는 것입니다.

AccountPasswordSet myconnection

메시지가 표시되면 암호 인증 방법으로 표준을 입력합니다.

Specify standard or radius: standard

마지막으로 연결을 연결할 수 있습니다. 연결하려면 다음 명령을 사용하세요.

AccountConnect myconnection

다음 명령을 사용하여 연결 상태를 볼 수 있습니다.

AccountStatusGet myconnection

참고: 서버에 대한 연결을 보다 안전하게 만들고 중간자 공격을 방지하려면 SSL 인증서를 사용하여 서버를 식별하는 것이 가장 좋습니다. 이것은 SoftEther를 사용하여 쉽게 수행할 수 있습니다. 이렇게 하려면 먼저 10단계에서 설명한 대로 인증서 파일을 클라이언트에 다운로드한 다음 CertAdd를 사용하여 클라이언트의 신뢰할 수 있는 인증서에 추가해야 합니다. 그런 다음 AccountServerCertEnable 명령을 사용하여 VPN 연결에 대한 인증서 확인을 활성화합니다.

마무리

이 기사에서는 SoftEther에서 제공하는 명령줄 관리 유틸리티인 vpncmd를 사용하여 SoftEther VPN 서버를 설정하는 과정을 살펴보았습니다. 여기에서 수행되는 모든 작업은 Windows용 SoftEther Server Manager를 사용하여 수행할 수도 있으며 해당 도구를 사용하여 SoftEther VPN 서버를 설정하는 것이 훨씬 더 쉽습니다. 그래서 Windows 컴퓨터가 있는 경우 사용하는 것이 좋습니다.

그게 다야. SoftEther를 사용하여 다중 프로토콜 VPN 서버를 성공적으로 설치하고 구성했습니다. 이제 클라이언트는 L2TP, IPSec, SSTP, OpenVPN 등을 사용하여 서버에 연결할 수 있습니다.

제출자: Nima Karimi