Лучший VPS сервер, который мне удалось найти: https://justhost.ru

  • Больше 30 стран локаций
  • Возможность 50 раз сменить страну и ip адрес вашего сервера
  • Все тарифы подходят для VPN и Proxy
  • Установка Mikrotik routerOS и linux из коробки
  • Оплата Российскими картами
  • Стоимость от 79 рублей в месяц за промо тариф

1. Подготовка хостовой системы

1.1 Загрузка необходимых модулей ядра

Добавьте модули в файл /etc/modules:

nano /etc/modules
ah4
af_key
esp4
l2tp_ppp
ipcomp
xfrm4_mode_transport
xfrm4_mode_tunnel
xfrm_user
xfrm_ipcomp

2. Создание и настройка LXC-контейнера

Создайте LXC-контейнер с ОС Ubuntu Trusty amd64.

2.1 Разрешение доступа к устройству /dev/ppp

На хосте определите параметры устройства:

sudo ls -ls /dev/ppp

Пример вывода:

0 crw------- 1 root root 108, 0 Jun 8 21:19 /dev/ppp

Добавьте разрешение в конфигурацию контейнера:

sudo nano /var/lib/lxc/[container_name]/config
lxc.cgroup.devices.allow = c 108:0 rwm

3. Настройка внутри контейнера

3.1 Установка необходимых пакетов

echo "nameserver 77.88.8.8" >> /etc/resolv.conf
apt update
apt-get install openswan xl2tpd nano iptables iptables-persistent

3.2 Конфигурация IPsec

Важно: строго соблюдайте отступы.

nano /etc/ipsec.conf
version 2

config setup
    dumpdir=/var/run/pluto/
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v6:fd00::/8,%v6:fe80::/10
    protostack=netkey
    force_keepalive=yes
    keep_alive=60

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    ikelifetime=8h
    keylife=1h
    ike=aes256-sha1,aes128-sha1,3des-sha1
    phase2alg=aes256-sha1,aes128-sha1,3des-sha1
    type=transport
    left=10.10.10.4
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
    dpddelay=10
    dpdtimeout=20
    dpdaction=clear

3.3 Настройка PSK

nano /etc/ipsec.secrets
10.10.10.4 %any: PSK "P@ssw0rd"

3.4 Отключение ICMP redirect

for each in /proc/sys/net/ipv4/conf/*; do
  echo 0 > $each/accept_redirects
  echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart

3.5 Конфигурация xl2tpd

nano /etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = yes
saref refinfo = 30

[lns default]
ip range = 172.16.1.30-172.16.1.100
local ip = 172.16.1.1
refuse pap = yes
require authentication = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

3.6 Секреты L2TP

nano /etc/xl2tpd/l2tp-secrets
* * * # let all , because we use auth with chap

3.7 Параметры PPP

nano /etc/ppp/options.xl2tpd
refuse-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1400
mru 1400
lock
hide-password
local
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

3.8 Пользователи

nano /etc/ppp/chap-secrets
testUSER l2tpd testPASS *

4. NAT и firewall

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -P INPUT DROP
iptables -A INPUT -p ah -j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -A INPUT -p udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp --dport 4500 -j ACCEPT
iptables -A INPUT -m policy --dir in --pol ipsec -p udp --dport 1701 -j ACCEPT

iptables -P FORWARD DROP
iptables -A FORWARD -s 172.16.1.0/24 -j ACCEPT
iptables -A FORWARD -d 172.16.1.0/24 -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j MASQUERADE

iptables-save > /etc/iptables/rules.v4

5. Перезапуск сервисов

/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart

TAGS: L2TP, IPsec, OpenSwan, xl2tpd, LXC, Linux, VPN