среда, 5 декабря 2018 г.

Настраиваем IPSec соединение (l2tpd)

 

Настраиваем сервер

ip 192.168.33.11

bash# apt-get update
bash# apt-get -y install strongswan xl2tpd


Включить возможность пересылки пакетов между интерфейсами.
В файл "/etc/sysctl.conf" добавляем строку:
net.ipv4.ip_forward=1



Чтобы эти изменения вступили в силу до перезагрузки нужно выполнить:
bash# sysctl -p /etc/sysctl.conf

Следующим шагом придумываем ключ для шифрования IPSec, например "psk_password",
приведём файл "/etc/ipsec.secrets" к виду:
%any %any : PSK "psk_password"

bash# chmod 600 /etc/ipsec.secrets

Далее открываем файл "/etc/ipsec.conf",  приводим к виду:
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration

config setup
  # strictcrlpolicy=yes
  # uniqueids = no

# Add connections here.

# Sample VPN connections

conn %default
  ikelifetime=60m
  keylife=20m
  rekeymargin=3m
  keyingtries=1
  keyexchange=ikev2
  authby=secret
#  ike=aes128-sha1-modp1024,3des-sha1-modp1024!
#  esp=aes128-sha1-modp1024,3des-sha1-modp1024!

conn myvpn
  keyexchange=ikev2
  left=%defaultroute
  auto=add
  authby=secret
  type=tunnel
  leftprotoport=17/1701
  rightprotoport=17/1701
  right=192.168.33.11


На этом настройка IPSec закончена. Остаётся перезапустить службу IPSec strongswan:
bash# service strongswan restart

Приступаем к настройке xl2tpd. Его настройки находится в файле "/etc/xl2tpd/xl2tpd.conf", который нужно привести к виду:
[global]
port = 1701
access control = no
ipsec saref = yes
force userspace = yes

; Файл с логинами и паролями
auth file = /etc/ppp/chap-secrets

[lns default]
; Диапазон адресов, динамически выдаваемых клиентам
; Мы ограничимся подсетью 172.28.253.64/26
; Первую её часть оставим под статически привязанные к логинам адреса
; А вторая - динамический пул
ip range = 172.28.253.96-172.28.253.126

; IP-адрес на стороне сервера
local ip = 172.28.253.65

; Это имя используется в качестве ipparam при поиске логинов и паролей в auth file
name = l2tpserver

; Файл с дополнительными опциями для ppp
pppoptfile = /etc/ppp/options.xl2tpd

flow bit = yes
exclusive = no
hidden bit = no
length bit = yes
require authentication = yes
require chap = yes
refuse pap = yes


Прописываем дополнительные опции ppp
bash# vi /etc/ppp/options.xl2tpd

noccp
auth
crtscts
mtu 1410
mru 1410
nodefaultroute
lock
noproxyarp
silent
modem
asyncmap 0
hide-password
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4


На этом настройка xl2tpd закончена. Перезапускаем процесс:
bash# service xl2tpd restart

Теперь можно заводить пользователей нашего VPN-сервера. Для этого нужно отредактировать файл "/etc/ppp/chap-secrets" и добавить строки:

# "логин" имя_сервиса(ipparam) "пароль" "IP-клиента(опционально)"
# Пользователь с постоянным IP-адресом:
"user1"    l2tpserver    "user_pass_1"    "172.28.253.67"
"user2"    l2tpserver    "user_pass_2" "172.28.253.90"


Настраиваем клиент

bash# apt-get update
bash# apt-get -y install strongswan xl2tpd

bash# vi /etc/ipsec.conf


# ipsec.conf - strongSwan IPsec configuration file
# basic configuration

config setup
  # strictcrlpolicy=yes
  # uniqueids = no

# Add connections here.
# Sample VPN connections

conn %default
  ikelifetime=60m
  keylife=20m
  rekeymargin=3m
  keyingtries=1
  keyexchange=ikev2
  authby=secret
#  ike=aes128-sha1-modp1024,3des-sha1-modp1024!
#  esp=aes128-sha1-modp1024,3des-sha1-modp1024!

conn myvpn
  keyexchange=ikev2
  left=%defaultroute
  auto=add
  authby=secret
  type=tunnel
  leftprotoport=17/1701
  rightprotoport=17/1701
  right=192.168.33.11


bash#  vi /etc/ipsec.secrets
%any %any : PSK "psk_password"

bash# chmod 600 /etc/ipsec.secrets

bash# vi /etc/xl2tpd/xl2tpd.conf

[lac myvpn]
lns =  192.168.33.11
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes


bash# vi /etc/ppp/options.l2tpd.client
ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
mtu 1280
mru 1280
noipdefault
defaultroute
usepeerdns
connect-delay 5000


# Вносим реквизиты пользователей, указанных в файле:
# /etc/ppp/chap-secrets на сервере.
name user2
password user_pass_2


bash# chmod 600 /etc/ppp/options.l2tpd.client

Создаем xl2tpd control file:
bash# mkdir -p /var/run/xl2tpd
bash# touch /var/run/xl2tpd/l2tp-control


Перезапускаем службы:
bash# service strongswan restart
bash# service xl2tpd restart


Поднимаем соединение и включаем шифрование:
bash# ipsec up myvpn
bash# echo "c myvpn" > /var/run/xl2tpd/l2tp-control


Чтобы клиенты, подключенные к серверу ipsec могли друг друга видеть, на всех клиентах выполняем:
bash# route add -net 172.28.253.0/24  gw 172.28.253.65

проверяем пинг со второго клиента на первый:
root@client2:/home/vagrant# ping 172.28.253.67
PING 172.28.253.67 (172.28.253.67) 56(84) bytes of data.
64 bytes from 172.28.253.67: icmp_seq=1 ttl=63 time=1.44 ms

смотрим маршрут:
root@client2:/home/vagrant# traceroute 172.28.253.67
traceroute to 172.28.253.67 (172.28.253.67), 30 hops max, 60 byte packets
 1  172.28.253.65 (172.28.253.65)  1.263 ms  1.974 ms  1.960 ms
 2  172.28.253.67 (172.28.253.67)  3.476 ms  3.463 ms  3.452 ms

Разорвать соединение:
bash# echo "d myvpn" > /var/run/xl2tpd/l2tp-control
bash# ipsec down myvpn

Яндекс.Метрика

Популярные сообщения