Авторизация

НАСТРОЙКИ DEBIAN JESSIE L2TP IPSEC

для работы с сервисом VPNKI по протоколам L2TP / IPsec

Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Важно! Прежде чем начать нам потребуется узнать версию Raspbian (Debian) на вашей машине. От этого будут зависеть некоторые тонкости.

1. Выполните команду
sudo cat /etc/os-release

в первой строке вывода будет информация о версии. Например:
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"

Итак, если у вас Jessie, то выполняйте пункты с 1 по ... Если Wheezy то идите в конец страницы, там вас ждут некоторые небольшие хлопоты.

Немного теории.

Сначала устанавливаем соединение IPsec, которое и создает шифрованный туннель. Затем внутри этого туннеля запускается протокол L2TP для авторизации по имени пользователя и паролю системы VPNKI.

 

Debian Jessie

 

*** Сначала IPSEC

 

2. Установим пакет strongswan для шифрования IPsec
sudo apt-get install -y strongswan

3. Добавим в файл /etc/ipsec.secrets общий ключ для всех соединений
sudo nano /etc/ipsec.secrets

вот прямо вот такой текст

: PSK "vpnki"

Сохраняем Ctrl+X

4. Откроем файл /etc/ipsec.conf
sudo nano /etc/ipsec.conf

и добавим в конец

conn %default
   ikelifetime=16h
   keylife=12h
   rekeymargin=3m
   keyingtries=1
   keyexchange=ikev1
   authby=secret
   aggressive = no

conn vpnki-l2tp
   authby=secret
   auto=add
   rekey=no
   type=transport
   right=msk.vpnki.ru ### в случае использования московского сервера vpnki или ams.vpnki.ru в случае сервера в Амстердаме
   rightid=%any
   rightprotoport=17/1701
   ike=aes256-sha1-modp2048
   esp=aes256-null
   left=%any
   leftprotoport=17/%any
   dpdaction=clear

 

Сохраняем Ctrl+X

5. Перезапустим strongswan
sudo ipsec restart

6. Проверим что IPsec устанавливает туннель, выполните команду
sudo ipsec up vpnki-l2tp

7. Проверим, что ассоциации созданы
sudo ipsec statusall

(добавить скриншот)

 

*** Затем xl2tpd

Инструкция для версии xl2tpd-1.3.1 (узнать версию можно из /var/log/syslog при старте xl2tpd)

8. Установим пакет xl2tpd для подключения по протоколу L2TP
sudo apt-get install -y xl2tpd


9. Настроим пакет xl2tpd, для этого добавим в файл /etc/xl2tpd/xl2tpd.conf новое соединение с именем vpnki

sudo nano /etc/xl2tpd/xl2tpd.conf

и добавим в конец следующий текст

[lac vpnki]
lns = msk.vpnki.ru
require chap = yes
refuse pap = yes
require authentication = yes
name = <имя пользователя в формате userXXXX>
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd.client
length bit = yes


10. Создадим новый файл
sudo nano /etc/ppp/options.l2tpd.client

и добавим туда

ipcp-accept-local
ipcp-accept-remote
refuse-eap
require-chap
noccp
noauth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
#proxyarp
connect-delay 5000
name <имя пользователя vpnki в формате userXXXX>
password <пароль для пользователя vpnki userXXXX>
remotename vpnki
ipparam vpnki

Сохраняем Ctrl+X

11. Создайте управляющий файл для демона xl2tpd
sudo mkdir -p /var/run/xl2tpd
sudo touch /var/run/xl2tpd/l2tp-control

12. Перезапустите демон xl2tpd
sudo service xl2tpd restart

13. Теперь запустите соединение
sudo echo "c vpnki" > /var/run/xl2tpd/l2tp-control

14. Проверим, что соединение успешно установлено. Для этого выполните команду
sudo ifconfig -s

в ней вы должны обнаружить работающий интерфейс ppp0

15. Выполните команду ping для проверки доступности сервера vpnki
ping 172.16.0.1

16. Разорвите соединение командой и перезапустите xl2tpd
sudo echo "d vpnki" > /var/run/xl2tpd/l2tp-control
К сожалению, на момент написания инструкции эта команда приводит к крэшу демона xl2tpd на одной из двух тестируемых нами систем, что описано в баге 838998 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838998
Поэтому после разрыва соединения лучше выполнить команду перезагрузки демона
sudo service xl2tpd restart

 

*** Автозапуск при старте

 

17. Добавим установление соединения ipsec к серверу vpnki при старте системы. Для этого выполните:
sudo nano /etc/ipsec.conf
найдите параметр auto=add и замените его на auto=start

18. Осталось уже немного. Добавим старт соединения к серверу vpnki через соединение xl2tpd при старте системы
Для этого откроем файл
sudo nano /etc/rc.local

и добавим в него:
 
#!/bin/sh -e
sudo service xl2tpd restart
sudo echo "c vpnki" > /var/run/xl2tpd/l2tp-control
exit 0

Сохраняем Ctrl+X
Обратите внимание, что в скрипте запуска есть команда перезапуска демона xl2tpd. Она нужна по причине наличия ранее описанного бага

19. Протестируем rc.local без перезагрузки
sudo /etc/rc.local

20. Соединение должно установиться. Для проверки выполните команду
sudo ifconfig -s

в ней вы должны обнаружить работающий интерфейс ppp0
Если все ок, значит скрипт в /etc/rc.local работает корректно

 

*** Маршруты

 

21. Осталось прописать маршруты. Сделать это можно как вручную, так и получив по DHCP от сервера vpnki
Для автоматического получения о сети VPNKI и сетей ваших других туннелей (DHCP Option 249) необходимо скачать, разархивировать и разместить этот файл (с названием splitp) в /etc/ppp/ip-up.d

Вариант с получением маргрутор по DHCP - НЕ основной, так как не на всех инсталляциях нами был получен качественный результат. Дело в том, что используемый нами далее скрипт splitp не вполне корректно ведет себя с маршрутами в которых встречаются адреса с маской /32 и из-за этого могут быть сложности с маршрутизацией.

Лучше переходите к п.23.

22. Измените права для исполнения файла при поднятии интерфейса

sudo chmod 755 /etc/ppp/ip-up.d/splitp

23. Если вы хотите все прописать руками, то сделать это можно так
В случае обрыва связи и ее восстановлении нам также потребуется автоматически прописать маршруты к сети VPNKI и к вашей "другой" сети. Для этого создайте файл

sudo nano -B /etc/ppp/ip-up.d/routeadd

Добавьте в файл следующие строки:

#!/bin/sh -e
route add -net "172.16.0.0/16" dev "ppp0" #Маршрут к сети VPNKI
route add -net "192.168.100.0/24" dev "ppp0" #Например маршрут к вашей "другой" сети 192.168.100.0/24
 
Сохраните нажав Ctrl+X

24. Измените права на исполнение файла при поднятии интерфейса ppp0

chmod 755 /etc/ppp/ip-up.d/routeadd

 

-------------------------------------------------

Если у вас Debian Wheezy

К сожалению для пользователей Wheezy, из репозитория устанавливается пакет strongswan версии 4.x.x, но... устанавливается некорректно (по крайней мере у нас) и поэтому не работает. Для нашей же конфигурации требуется версия пакета strongswan 5.2.1 который легко устанавливается на Jessie. Однако установить его на Wheezy все-таки возможно. Мы, конечно, должны предупредить, что вы делаете все на свой страх и риски и обязательно сделайте бэкап.

Для этого необходимо в перечень репозиториев добавить новые источники:

1. Выполните sudo nano /etc/apt/sources.list и сделайте так, что бы ваша Raspberry могла получать пакеты для двух типов ОС:

deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
deb http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
# Source repository to add
deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb http://archive.raspbian.org/raspbian jessie main contrib non-free rpi
# Source repository to add
deb-src http://archive.raspbian.org/raspbian jessie main contrib non-free rpi

 

Сохраните Ctrl-X

2. Добавим новые слова для выбора версии ОС при обновлении. Для этого создайте новый файл

sudo nano /etc/apt/preferences

и добавьте в него

Package: *
Pin: release n=jessie
Pin-Priority: 900

Package: *
Pin: release n=wheezy
Pin-Priority: 300

Package: *
Pin: release o=Raspbian
Pin-Priority: -10

Or, if you want to stick to wheezy
Package: *
Pin: release n=wheezy
Pin-Priority: 900

Package: *
Pin: release n=jessie
Pin-Priority: 300

Package: *
Pin: release o=Raspbian
Pin-Priority: -10

Сохраните Ctrl-X

3. Сделайте команду apt-get upgrade для загрузки новых версий приложений

4. Установите требуемую версию strongswan 5.2.1 из репозитория Jessie командой

sudo apt-get install -t jessie strongswan

Если все успешно установилось, то переходите к настройкам ipsec и xl2tpd, которые приведены в пунктах 1 - 24

Наша система будет работать с многими типами домашних и офисных маршрутизаторов. Более подробно смотрите в разделе по настройке оборудования, а начать настройку лучше с этого примера.

ДОПОЛНИТЕЛЬНО ПО ТЕМЕ

  • Про VPN и протоколы можно почитать здесь