L2TP+IPSec VPN с CHR в ArubaCloud за 1€/мес.

L2TP+IPSec VPN с CHR в ArubaCloud за 1€/мес.

Alexander Spassky

L2TP+IPSec VPN с CHR в ArubaCloud за 1€/мес

Приветствую, друзья. В данной статье я Вам расскажу, как за очень небольшое кол-во времени и денег поднять свой собственный VPN-сервер в ArubaCloud в Германии на базе Mikrotik CloudHostedRouter.


  1. Заходим на сайт по ссылке, заполняем анкету, получаем 2€ халявного триала (2 месяца работы!)
  2. После успешной регистрации (при которой рекомендую указать свой ИНН, чтобы не начисляли 20% VAT сверху), заходим в Control Panel
  3. Удостоверяемся, что мы в нужном ЦОД (рекомендую DC CZ1, он же DC3).
  4. Нажимаем Create New Cloud Server
Шаги 3 и 4

5. Выбираем тариф Cloud Server Smart

6. Нажимаем Select Template

7. Выбираем шаблон Debian 8

9. Два раза набираем пароль root (7 символов, 1 цифра, по букве в верхнем и нижнем регистрах)

10. Проверяем, что Size - Small

11. Вводим имя сервера

12. Нажимаем Create Cloud Server

13. Ждём, пока в Operation Queue прогресс достигнет 100%, а пока идём в соседней вкладке на страницу скачивания Mikrotik и берём ссылку на свежий образ для Cloud Hosted Router в формате Raw disk image (.img).


14. Переходим во вкладку Management и записываем себе куда-нибудь IP-адрес в колонке Public IP


14. Заходим на свежесозданную виртуалку с Debian пользователем root через консоль Aruba cloud. Для этого в списке VM нажимаем Manage, в открывшемся окне переходим на вкладку Sign In, затем нажимаем Run Recovery Console и логинимся под root с паролем из п.9

15. Выполняем следующую последовательность действий (если есть возможность, то лучше на любом другом линукс-боксе с 20+GB свободного места.

apt-get update && apt-get install -y unzip wget pv qemu-utils kpartx
wget <тут ссылка на свежий образ CHR>
unzip chr-<version>.img.zip
qemu-img resize ./chr-<version>.img +19G
kpartx -v -a ./chr-<version>.img
fdisk /dev/loop0

Переходим в редактирование разделов образа

Command (m for help): p

удостоверяемся, что вывод похож на этот:

19.1Gb суммарно, два раздела

Command (m for help): d

Partition number (1,2, default 2): 2

Command (m for help): n

Select (default p): p

Partition number (2-4, default 2): 2

First sector (65537-40108031, default 67584): 65537 (тут очень важно указать тот же сектор, с коротого начинался удаленный раздел)

Last sector, +sectors or +size{K,M,G,T,P} (65537-40108031, default 40108031): (Enter)

Created a new partition 2 of type 'Linux' and of size 19,1 GiB.

Command (m for help): w

Дальше в командной строке Bash:

kpartx -d ./chr<version.img>
kpartx -v -a ./chr-<version>.img
e2fsck -f /dev/mapper/loop0p2
resize2fs /dev/mapper/loop0p2
kpartx -d ./chr<version.img>

Теперь, если делали на другом линукс-боксе, жмём в gzip и переносим получившийся .img.gz на свежесозданный дебиан c помощью чего угодно (SCP/FTP)

gzip -9cf ./chr-<version>.img > chr-<version>.img.gz

16. На свежесозданном дебиане делаем следующее (подразумевая, что образ уже лежит в /root/

apt-get update && apt-get install -y unzip wget pv
echo u > /proc/sysrq-trigger

Если образ в gzip'е и переносился с другой машины, то выполняем:

gunzip -c chr-<version>.img.gz | pv | dd of=/dev/sda

А если тут же и образ в .img, то:

dd if=chr-<version>.img bs=32M | pv | dd of=/dev/sda

reboot

17. После перезагрузки VM у нас оказывается раскатана актуальная версия Cloud Hosted Router. Переходим к настройке.

18. Логинимся пользователем admin без пароля и выполняем следующие команды:

/user set admin password=******** - тут введите Ваш новый пароль для RouterOS
/ip address add interface=ether1 address=<public_ip_из_п.13>/24
/ip route add gateway=<первые_три_октета_public_ip>.1
/ip dns set servers=8.8.8.8,8.8.4.4
/ping google.com

Ctrl+C

В этот момент google.com должен нормально запинговаться.


Подключаемся к CHR по SSH и продолжаем настройку

Отключаем Telnet, FTP, WWW, WWW-SSL, API, API-SSL.

/ip service disable 0,1,2,4,5,7

Отключаем доступность DNS и NTP снаружи (во избежание Amplification DDoS)

/ip firewall filter add chain=input in-interface=ether1 protocol=17 dst-port=53,123 action=drop

Создаем IP-пул для выдачи L2TP-клиентам

/ip pool add name=l2tp ranges=10.0.254.50-10.0.254.100

Серую сеть возьмите ту, которая Вам больше нравится. Рекомендую не использовать префиксы в 192.168.0.0/16 во избежание пересечений с домашними сетями.

Настраиваем профиль для L2TP-подключений

/ppp profile add name=l2tp local-address=10.0.254.1 remote-address=l2tp only-one=yes dns-server=10.0.254.1

Включаем DNS-сервер

/ip dns set allow-remote-requests=yes

Добавляем пользователя

/ppp secret add name=vpn password=12345678 profile=l2tp

Включаем L2TP-сервер с использованием IPSec

/interface l2tp-server server set default-profile=l2tp enabled=yes use-ipsec=yes ipsec-secret=<тут ipsec-ключ>

Маскарадим подключение в интернет из VPN

/ip firewall nat add chain=srcnat src-address=10.0.254.0/24 out-interface=ether1 action=masquerade


Подключаемся клиентом с указанием IPSec-ключа, логина и пароля - Profit!




Report Page