Авторизация

НАСТРОЙКА DEBIAN L2TP IPSEC СОЕДИНЕНИЕ, VPN ТУННЕЛЬ

для подключения к системе удаленного доступа VPNKI

Настройки на этой странице предназначены для подключения к сервису VPNKI, а не к любому VPN серверу в сети Интернет.Настройка Debian, L2TP IPsec соединение, VPN туннель

Перед началом настройки соединения ознакомьтесь с "Общими сведениями" о работе системы. Ссылка здесь - https://vpnki.ru/settings/before-you-begin/main-tech-info .

Правила и маршруты на сервере VPNKI применяются при подключении туннеля. Если изменили настройки в личном кабинете, то переподключите туннели.

-------

 

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

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

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

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

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

Установления соединения L2TP/IPsec происходит следующим образом. Сначала устанавливаем соединение 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
   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.

Ну вот и все. Вы успешно выполнили настройку удаленного подключения по протоколу L2TP. Надеемся, что все заработало!

 

 

Дополнительно о протоколе L2TP

Более подробно почитать о протоколе L2TP вы можете в нашем материале по этой ссылке.

 

Важные советы после настройки удаленного подключения

После успешной настройки подключения мы рекомедуем вам выполнить несколько важных шагов. Они дадут вам уверенность в том, что VPN соединение работоспособно в полном объеме.

  • Проверьте статус подключения туннеля на странице "Мои настройки" - "Состояние туннеля". Попробуйте отключить туннель со стороны сервера. Посмотрите как ваш клиент попытается переустановить соединение.
  • Посмотрите как отображается подключение в различных журналах сервера. "Статистика" - "Статистика подключений". Еще в "События безопасности". А еще в "События авторизации". Важно видеть как отображается успешное соединение.
  • Попробуйте выполнить пинг сервера VPNKI 172.16.0.1 с вашего устройства.
  • Попробуйте выполнить пинг вашего устройства со страницы "Инструменты". Выполните пинг устройства по адресу туннеля сети VPNKI - 172.16.x.x. Это важный шаг и не стоит им пренебрегать. Но стоит знать, что пинг может быть неуспешен. Это не причина для беспокойства если вы будете только обращаться с этого устройства к другим туннелям. Однако, если вы будете обращаться к этому устройству удаленно, то стоит знать, что отсутствие ответа на пинг это результат работы межсетевого экрана вашего устройства
  • Если вы имеете второй подключенный туннель в своем аккаунте, то проверьте пинг и до устройства в другом туннеле. Сначала по его адресу сети VPNKI - 172.16.x.x. Затем можно выполнить пинг устройства в другом туннеле по адресу внутренней сети (192.168.x.x). Если такая маршрутизация настроена.
  • Посмотрите как отображается количество переданного трафика туннеля. Это в "Мои настройки" - "Статистика" - "Графики использования". За текущий день статистика показывается с разбивкой по туннелям. За предыдущие дни - суммарно.
    По особенности подсчета трафика туннелей читайте в FAQ. Ссылка здесь.

 

Надеемся, что вы успешно прошли все пункты советов! Теперь ваше соединение работает успешно. А вы познакомились с основными инструментами сервера.

 

Если в дальнейшем возникнут сложноси с настроенным подключением, то эти советы помогут вам в поиске неисправностей.

 

*** Если вдруг что-то не получилось, обращайтесь на Форум.

 


Рекомендации по выбору тарифа

Если вы не планируете передачу видео трафика, то мы рекомендуем вам начинать с выбора тарифа PLAN-MYDEV. Если передача видео будет осуществляться, то стоит сразу начинать с PLAN-VIDEO. Если скорости хватать не будет, то в любое время вы можете изменить тариф на более скоростной.

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

Контролировать объем переданного трафика вы можете на странице с графиками использования.

Узнать реальную скорость своего VPN соединения вы можете утилитой iperf3 на странице "Инструменты". Стоит отметить, что вопрос скорости передачи полезных данных будет зависеть от трех факторов:

  • от типа используемого протокола VPN;
  • типа транспортного протокола - TCP или UDP;
  • физической удаленности вашего устройства от нашего сервера.

Худшим вариантом по скорости окажется вариант, когда в качестве транспортного протокола для VPN соединения используется TCP. При этом ваше устройство размещено далеко от сервера VPNKI. В этом случае, реальная скорость передачи данных будет определяться необходимостью подтверждения передачи каждого пакета в протоколе TCP.

 


 

ДОПОЛНИТЕЛЬНО ПО ТЕМЕ КОНФИГУРАЦИИ УДАЛЕННОГО ДОСТУПА

Кроме настройки по этой инструкции вам могут пригодиться другие примеры конфигурации и использования системы.

  • Рабочий стол через RDP и OpenVPN. Ссылка здесь.
  • Выставить FTP сервер через проброс TCP порта. Ссылка здесь.

 

ОБЩАЯ ИНФОРМАЦИЯ О БЛИЗКИХ ТЕМАХ

По ссылкам ниже вы можете ознакомиться с информацией, связанной с темой VPN соединений.

  • Про удалённый доступ к компьютеру можно. Можно почитать на нашем сайте.
  • Про VPN и протоколы можно почитать здесь.