L2TP+IPSec VPN с CHR в ArubaCloud за 1€/мес.
Alexander SpasskyL2TP+IPSec VPN с CHR в ArubaCloud за 1€/мес
Приветствую, друзья. В данной статье я Вам расскажу, как за очень небольшое кол-во времени и денег поднять свой собственный VPN-сервер в ArubaCloud в Германии на базе Mikrotik CloudHostedRouter.
- Заходим на сайт по ссылке, заполняем анкету, получаем 2€ халявного триала (2 месяца работы!)
- После успешной регистрации (при которой рекомендую указать свой ИНН, чтобы не начисляли 20% VAT сверху), заходим в Control Panel
- Удостоверяемся, что мы в нужном ЦОД (рекомендую DC CZ1, он же DC3).
- Нажимаем Create New Cloud Server
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
удостоверяемся, что вывод похож на этот:
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!