웹사이트 검색

Linux에서 자신만의 IPsec VPN 서버를 만드는 방법


VPN(가상 사설망)을 사용하면 많은 이점이 있으며, 그 중 일부에는 트래픽을 암호화하여 인터넷에서 안전하게 보호하고 어디에서나 차단된 콘텐츠/사이트/웹 애플리케이션에 액세스할 수 있도록 도와주는 것이 포함됩니다. 말할 것도 없이 VPN은 익명으로 인터넷을 검색하는 데도 도움이 됩니다.

이 문서에서는 CentOS/RHEL, Ubuntu에서 자신만의 IPsec/L2TP VPN 서버를 자동으로 빠르게 설정하는 방법을 알아봅니다. Debian Linux 배포판.

전제 조건:

  1. Linode와 같은 제공업체의 최신 CentOS/RHEL 또는 Ubuntu/Debian VPS(Virtual Private Server).

Linux에서 IPsec/L2TP VPN 서버 설정

VPN 서버를 설정하기 위해 Lin Song이 만든 멋진 쉘 스크립트 컬렉션을 사용하여 LibreswanIPsec 서버로 설치하고 xl2tpd Strong>을 L2TP 공급자로 지정합니다. 이 제품에는 VPN 사용자를 추가 또는 삭제하고, VPN 설치를 업그레이드하는 등의 스크립트도 포함되어 있습니다.

먼저 SSH를 통해 VPS에 로그인한 다음 배포에 적합한 명령을 실행하여 VPN 서버를 설정하세요. 기본적으로 스크립트는 무작위 VPN 자격 증명(사전 공유 키, VPN 사용자 이름비밀번호)을 생성하여 설치 끝.

그러나 자신의 자격 증명을 사용하려면 먼저 표시된 대로 강력한 비밀번호PSK를 생성해야 합니다.

openssl rand -base64 10
openssl rand -base64 16

그런 다음, 다음 명령에 설명된 대로 생성된 값을 설정합니다. 모든 값은 표시된 대로 '작은따옴표' 안에 배치되어야 합니다.

  • VPN_IPSEC_PSK – IPsec 사전 공유 키입니다.
  • VPN_USER – VPN 사용자 이름입니다.
  • VPN_PASSWORD – VPN 비밀번호입니다.
---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnsetup-centos -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sh vpnsetup.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnsetup -O vpnsetup.sh && VPN_IPSEC_PSK='KvLjedUkNzo5gBH72SqkOA==' VPN_USER='tecmint' VPN_PASSWORD='8DbDiPpGbcr4wQ==' sudo sh vpnsetup.sh

설치될 주요 패키지는 bin-utils, net-tools, bison, flex, gcc, libcap-ng-devel, libcurl-devel, libselinux-devel, nspr-devel, nss-devel, pam-devel, xl2tpd, iptables-services, systemd-devel, fipscheck-devel, libevent-devel 및 fall2ban(SSH 보호용) 및 해당 종속성. 그런 다음 소스에서 Libreswan을 다운로드, 컴파일 및 설치하고 필요한 서비스를 활성화하고 시작합니다.

설치가 완료되면 다음 스크린샷과 같이 VPN 세부 정보가 표시됩니다.

다음으로, 그래픽 사용자 인터페이스가 있는 데스크탑이나 노트북의 경우 VPN 클라이언트를 설정해야 합니다. Linux에서 L2TP/Ipsec VPN 클라이언트를 설정하는 방법 가이드를 참조하세요.

Android 휴대폰과 같은 모바일 기기에 VPN 연결을 추가하려면 설정 –> 네트워크 및 인터넷으로 이동하세요. > (또는 무선 및 네트워크 –> 더보기) –> 고급 –> VPN. 새 VPN을 추가하는 옵션을 선택하세요. VPN 유형을 IPSec Xauth PSK로 설정한 다음 위의 VPN 게이트웨이 및 자격 증명을 사용해야 합니다.

Linux에서 VPN 사용자를 추가하거나 제거하는 방법

VPN 사용자를 생성하거나 기존 VPN 사용자를 새 비밀번호로 업데이트하려면 다음 wget 명령을 사용하여 add_vpn_user.sh 스크립트를 다운로드하고 사용하세요.

wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh
sudo sh add_vpn_user.sh 'username_to_add' 'user_password'

VPN 사용자를 삭제하려면 del_vpn_user.sh 스크립트를 다운로드하여 사용하세요.

wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh
sudo sh del_vpn_user.sh 'username_to_delete'

Linux에서 Libreswan 설치를 업그레이드하는 방법

vpnupgrade.sh 또는 vpnupgrade_centos.sh 스크립트를 사용하여 Libreswan 설치를 업그레이드할 수 있습니다. 스크립트 내에서 SWAN_VER 변수를 설치하려는 버전으로 편집하세요.

---------------- On CentOS/RHEL ---------------- 
wget https://git.io/vpnupgrade-centos -O vpnupgrade.sh && sh vpnupgrade.sh

---------------- On Debian and Ubuntu ----------------
wget https://git.io/vpnupgrade -O vpnupgrade.sh && sudo sh  vpnupgrade.sh

Linux에서 VPN 서버를 제거하는 방법

VPN 설치를 제거하려면 다음을 수행하세요.

RHEL/CentOS에서

yum remove xl2tpd

그런 다음 /etc/sysconfig/iptables 구성 파일을 열고 불필요한 규칙을 제거한 후 /etc/sysctl.conf/etc/rc.local 을 편집합니다. 파일을 삭제하고 # 주석 뒤의 줄을 제거합니다. 두 파일 모두 hwdsl2 VPN 스크립트에 의해 추가되었습니다.

데비안/우분투에서

sudo apt-get purge xl2tpd

그런 다음 /etc/iptables.rules 구성 파일을 편집하고 불필요한 규칙을 제거합니다. 또한 /etc/iptables/rules.v4가 있으면 편집하세요.

그런 다음 /etc/sysctl.conf/etc/rc.local 파일을 편집하고 # 주석 뒤의 줄을 제거합니다. hwdsl2 VPN 스크립트에 의해 추가됨 , 두 파일 모두에서. exit 0이 있는 경우 제거하지 마세요.

선택적으로 VPN 설정 중에 생성된 특정 파일과 디렉터리를 제거할 수 있습니다.

rm -f /etc/ipsec.conf* /etc/ipsec.secrets* /etc/ppp/chap-secrets* /etc/ppp/options.xl2tpd* /etc/pam.d/pluto /etc/sysconfig/pluto /etc/default/pluto 
rm -rf /etc/ipsec.d /etc/xl2tpd

Strongswan을 사용하여 사이트 간 IPSec 기반 VPN을 설정하려면 다음 가이드를 확인하세요.

  1. Debian 및 Ubuntu에서 Strongswan을 사용하여 IPSec 기반 VPN을 설정하는 방법
  2. CentOS/RHEL 8에서 Strongswan을 사용하여 IPSec 기반 VPN을 설정하는 방법

이 시점에서 자체 VPN 서버가 실행 중입니다. 아래 의견 양식을 사용하여 질문을 공유하거나 피드백을 제공할 수 있습니다.