GitHub의 setup-ipsec-vpn 스크립트로 Ubuntu/CentOS에 L2TP/IPsec VPN 서버를 구축했습니다. PSK, 사용자 이름, 암호만 넣고 실행하면 설정이 끝나고, 공유기 뒤에 있다면 UDP 500, 4500 포트를 포워딩해야 합니다.
1. 배경
VPN 서버를 직접 구성하는 방법을 찾다가 자동 설치 스크립트를 사용했습니다. 저장소는 아래와 같습니다.
GitHub - hwdsl2/setup-ipsec-vpn: Scripts to build your own IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2
Scripts to build your own IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2 - GitHub - hwdsl2/setup-ipsec-vpn: Scripts to build your own IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2
github.com
아래 명령과 줄 번호는 작성 당시 스크립트 기준입니다. 최신 설치 방법은 저장소 README를 확인해 주세요.
2. 스크립트 받기
OS에 맞는 스크립트를 받습니다.
# Ubuntu, Debian
wget https://git.io/vpnsetup -O vpnsetup.sh
# CentOS, RHEL
wget https://git.io/vpnsetup-centos -O vpnsetup-centos.sh
3. 접속 정보 입력
받은 스크립트를 편집기로 열고 27~29번 줄의 PSK, 사용자 이름, 암호를 입력합니다. 이 세 값은 클라이언트에서 VPN에 연결할 때 필요하므로 따로 기록해 둡니다.
YOUR_IPSEC_PSK='키'
YOUR_USERNAME='아이디'
YOUR_PASSWORD='비밀번호'

스크립트의 접속 정보 입력 부분
4. 스크립트 실행
수정한 스크립트를 저장하고 실행합니다. 여러 패키지를 설치하고 설정하므로 시간이 조금 걸립니다.
sh vpnsetup-centos.sh
sh로 실행하면 실행 권한이 없어도 됩니다. ./vpnsetup-centos.sh처럼 직접 실행하려면 먼저 chmod +x vpnsetup-centos.sh로 실행 권한을 줍니다.

스크립트 실행 중
실행이 끝나면 VPN 연결에 필요한 정보가 출력됩니다. 기본 사용이라면 여기까지만 설정해도 됩니다.

설치 완료 후 출력된 접속 정보
5. 추가 설정
5.1 VPN IP 대역 변경
기본 설정으로는 클라이언트를 254개까지 연결할 수 있습니다. IP 대역을 바꾸거나 더 많은 클라이언트를 연결하려면 스크립트의 아래 부분(작성 당시 260~266번 줄)을 수정합니다.

L2TP_NET=${VPN_L2TP_NET:-'192.168.42.0/24'} # L2TP VPN 대역
L2TP_LOCAL=${VPN_L2TP_LOCAL:-'192.168.42.1'} # L2TP VPN 서버 IP
L2TP_POOL=${VPN_L2TP_POOL:-'192.168.42.10-192.168.42.250'} # L2TP 클라이언트 할당 범위
XAUTH_NET=${VPN_XAUTH_NET:-'192.168.43.0/24'} # IPsec(XAuth) VPN 대역
XAUTH_POOL=${VPN_XAUTH_POOL:-'192.168.43.10-192.168.43.250'} # IPsec 클라이언트 할당 범위
DNS_SRV1=${VPN_DNS_SRV1:-'8.8.8.8'} # DNS 1
DNS_SRV2=${VPN_DNS_SRV2:-'8.8.4.4'} # DNS 2
5.2 PSK 변경
PSK는 /etc/ipsec.secrets에서 바꿀 수 있습니다.
%any %any : PSK "키값"

5.3 사용자 추가
사용자는 /etc/ppp/chap-secrets에 추가합니다. 마지막 * 자리에 IP를 넣으면 해당 사용자에게 항상 그 IP를 할당합니다.
"유저아이디" l2tpd "비밀번호" *

5.4 서비스 재시작
설정을 바꾼 뒤에는 서비스를 재시작합니다.
service ipsec restart
service xl2tpd restart
6. 포트포워딩
VPN 서버가 공유기 안쪽 내부망에 있다면 UDP 500, 4500 포트를 VPN 서버로 포워딩합니다.
| 장비 | 참고 글 |
| ipTIME | 아래 첫 번째 글 |
| EdgeRouter-4 | 아래 두 번째 글 |
[IPTIME] 포트포워딩
포트 포워딩에 대한 설명은 아래를 참고해주세요. https://alsrbdmsco0409.tistory.com/220 포트포워딩 (Port Forwarding) 이란? 공유기를 사용하면 한 번씩은 들어보고 검색해봤을 만한 단어입니다. 우선 단어
alsrbdmsco0409.tistory.com
[ER-4] 포트포워딩
오늘은 Edgerouter-4의 포트 포워딩 설정을 해보겠습니다. 먼저 대시보드에 로그인을 해주세요. 로그인 후 모습입니다. 그럼 위 사진에서 Firewall/NAT 부분을 눌러주세요. 그럼 위와 같이 나오는 것을
alsrbdmsco0409.tistory.com
7. 정리
- 스크립트에 PSK, 사용자 이름, 암호만 넣고 실행하면 L2TP/IPsec VPN 서버가 구성됩니다.
- PSK는 /etc/ipsec.secrets, 사용자는 /etc/ppp/chap-secrets에서 관리합니다.
- 공유기 뒤에 있다면 UDP 500, 4500 포트포워딩이 필요합니다.
'Server & OS > Linux' 카테고리의 다른 글
| [Linux] df와 du 명령어 차이와 사용법 (0) | 2022.05.09 |
|---|---|
| [Ubuntu] 웹 브라우저로 SSH 접속하는 Shell In A Box 설치 (0) | 2022.02.08 |
| [Ubuntu] Apache2 포트 기반 가상 호스트 설정 (0) | 2021.07.30 |
| [Ubuntu Server 18.04] Netplan으로 고정 IP 설정 (0) | 2021.07.28 |
| [Ubuntu] Nginx stream으로 RDP 프록시 설정 (0) | 2021.06.30 |