Настраиваем сервер
ip 192.168.33.11bash# 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 updatebash# 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
Комментариев нет:
Отправить комментарий