VPN сервис на основе L2TP/IPSec PSK (xl2tpd, openswan)

Этап 1. Настройку сервиса VPN начнем с конфигурирования IPsec.

Файл /etc/ipsec.conf:

version 2.0

config setup
  nat_traversal=yes
  virtual_private=%v4:10.10.20.0/24     # подсеть, в которую будут попадать клиенты VPN
  oe=off
  protostack=netkey
  uniqueids=yes

conn %default
  forceencaps=yes
  compress=yes

conn l2tp-psk-nat
  rightsubnet=vhost:%priv
  also=l2tp-psk-nonat

conn l2tp-psk-nonat
  authby=secret
  pfs=no
  auto=add
  keyingtries=1
  rekey=no
  keyexchange=ike
  ikelifetime=8h
  keylife=1h
  type=transport
  left=xxx.xxx.xxx.xxx     # ip адрес сервера, на котором будет работать сервис VPN
  leftprotoport=17/1701
  leftnexthop=%defaultroute
  right=%any
  rightprotoport=17/%any
  rightnexthop=%defaultroute
  dpddelay=40
  dpdtimeout=130
  dpdaction=clear

Файл /etc/ipsec.secrets (xxx.xxx.xxx.xxx — ip адрес сервера, на котором будет работать сервис VPN):

xxx.xxx.xxx.xxx %any: PSK "very-secret-key"

Этап2. Настройка xl2tpd.

Файл /etc/xl2tpd/xl2tpd.conf:

[global]
listen-addr = 193.106.94.253
ipsec saref = no

[lns default]
; диапазон ip адресов, из которого клиенту при подключении
; будет назначен адрес
ip range = 10.10.20.10-10.10.20.50
; адрес локального интерфейса VPN
local ip = 10.10.20.1
require chap = yes
refuse pap = yes
require authentication = yes
ppp debug = no
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

Файл /etc/ppp/options.xl2tpd:

asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
mtu 1200
mru 1200
proxyarp
css.php