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

Бывают ситуации, при которых требуется обеспечить повышенную надежность доступа клиентов ко внутренним сервисам компании. Один из способов повысить надежность — организовать защищенный канал между пользователем и корпоративной сетью с помощью технологии Virtual Private Network (VPN). Здесь я расскажу о настройке VPN с помощью L2TP/IPsec PSK на основе openswan и xl2tpd, которую я сделал на серверах проекта PPC-ZONE.

Все серверы проекта PPC-ZONE находятся в одной подсети 10.10.10.0/24 без собственного маршрутизатора, поэтому пришлось настроить VPN-сервис на одном из серверов и сделать его маршрутизатором для подсетей VPN.

Для работы VPN сервиса в ядре операционной системы необходимо включить следующие опции:

[*] Networking support  --->
  Networking options  --->
    <*> PF_KEY sockets
    <*> Transformation user configuration interface
    [*] TCP/IP networking
       [*] IP: AH transformation
       [*] IP: ESP transformation
       [*] IP: IPComp transformation
       [*] IP: IPsec transport mode
       [*] IP: IPsec tunnel mode
       [*] IP: IPsec BEET mode
    <*> Layer Two Tunneling Protocol (L2TP)
Device Drivers  --->
  [*] Network device support  --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP Deflate compression
    [*]   PPP filtering
    <*>   PPP MPPE compression (encryption) (EXPERIMENTAL)
    <*>   PPP over Ethernet (EXPERIMENTAL)
    <*>   PPP over L2TP (EXPERIMENTAL)
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports
    <*>   PPP BSD-Compress compression
Character devices  --->
   [*] Legacy (BSD) PTY support
-*- Cryptographic API  --->
     <*> Null algorithms
     <*> SHA1 digest algorithm
     <*> SHA224 and SHA256 digest algorithm
     <*> SHA384 and SHA512 digest algorithms
     <*> AES cipher algorithms
     <*> AES cipher algorithms (x86_64)
     <*> AES cipher algorithms (AES-NI)
     <*> Blowfish cipher algorithm
     <*> Serpent cipher algorithm
     <*> Twofish cipher algorithm
     <*> Twofish cipher algorithm (x86_64)

Сервис VPN я построил с использованием следующих программ (сервер работает под управлением Gentoo Linux x86_64):

  • ppp (ключи: pam)
  • xl2tpd (ключи: dnsretry)
  • openswan (ключи: pam ssl)
css.php