L2TP (xl2tpd + ppp + strongswan) 구성 on CentOS 7


VPN을 구성하기 위해서 SoftEther VPN도 사용해보고, openswan/strongswan을 이용해서 순수하게 IPSEC으로
운영해보기도 했는데, 여러가지 제약 사항으로 인해서 L2TP를 구성할 수 밖에 없었다.

 

 

원하는 요구 사항이 많다.

  1. L2TP VPN을 연결한 VPN Client가 외부 접속(www.google.com)에 연결 시, NAT의 VIP를 사용해야한다.
  2. L2TP VPN을 연결한 VPN Client는 내부 192.168.0.200 서버에 연결이 가능해야한다.
  3. L2TP VPN을 연결한 VPN Client는 VPN Server(192.168.0.100)에 운영 중인 서비스에 접근이 가능해야 한다.

3번의 제약 사항으로 인해서 많은 솔루션을 고민하다 결국은 xl2tpd + ppp + strongswan이라는 조합을 구성하게 된다.

 

1. ppp 설치

아래 명령어로 간단하게 설치가 가능하다.

 

2. xl2tpd + strongswan 설치

xl2tpd와 strongswan은 epel에서 패키지를 지원해준다.
그래서 epel을 먼저 활성화한다.

이후, xl2tpd와 strongswan을 설치한다.

 

3. L2TP 구성을 위한 strongswan 설정

secret key(비밀키) 설정

 

4. L2TP 구성을 위한 xl2tpd 설정

xl2tpd가 연결한 VPN Client에 IP를 할당해준다.

DHCP를 사용해보려고 했으나 메뉴얼에 설정이 확인되지 않는다.

할당할 IP 대역은 “ip range”로 지정을 한다.

 

4. L2TP 구성을 위한 ppp 설정

xl2tpd 설정에서 ppp 옵션 파일을 “/etc/ppp/options.l2tpd”로 설정했다. 해당 파일을 아래와 같이 수정한다.

그리고 사용자 ID와 password를 “/etc/ppp/chap-secrets”에 설정한다.

 

5. xl2tpd와 strongswan 실행

 

6. 부팅 시 xl2tpd와 strongswan이 자동 실행하도록 설정

 

이후 VPN Client에 위 정보를 입력해서 연결을 테스트해본다.