Привет, дорогой Пикабу!
Здесь произойдёт краткий(насколько это возможно) раccказ о том как я строил настоящий впн за недорого.
Как выглядит ТЗ:
– возможность создавать несколько учётных записей пользователей
– высокая скорость доступа (в рамках бюджета)
– безопасность данных (как настроишь, так и полетит)
– бюджет реализации 4$ :-)
Что мне для этого понадобится?
Совсем не много:
1. Хостинг провайдер с VPS, в моём случае это OVHcloud
(уважаемые читатели могут выбрать любой хостинг!)
2. Необходим облачный MicrotikCHR (Кликабельно)
3. VPS-сервер c предварительно установленной Ubuntu 20.10
4. Множко времени для настройки и тестирования
Процесс заказа VPS я пропущу, много бесполезной информации и куча лишних скриншотов!
Один важный момент связан с выбором локации хостинга VPS, чем дальше от меня сервер, тем выше латенси/ping, важно для онлайн игр, но в моём случае особой роли не играет.
После покупки VPS-ки мне на почту упало письмо с доступами в машине.
Залетаем в ssh, меняем сгенерированный хостингом пароль, добавляем свой публичный ключ для root, меняем hostname, обновляем, устанавливаем unzip перезагружаем.
На этом базовая подготовка VPS закончена, дальше интересней.
1 - Необходимо создать временный раздел для хранения образа MicrotikCHR
mount -t tmpfs tmpfs /tmp/
2 - через wget скачать образ MicrotikCHR raw по ссылке, что приведена выше
wget https://download.mikrotik.com/routeros/6.47.9/chr-6.47.9.img...
3 - распаковать скачанный архив
unzip chr-6*
4 - просмотреть разделы на диске, это необходимо, для того чтобы знать на какой из их, записать образ RoS CHR
fdisk -l
· в моём случае это - /dev/sda: 20GiB (Основной раздел диска)
· если ошибиться с выбором раздела, прийдётся вернуться к установке ОС и повторной первичной настройке
5 - Записать образ с помощью dd на нужный раздел
dd if=chr-6.47.9.img of=/dev/sda bs=4M oflag=sync
· if= то что ми пишем
· of= то куда пишем
· bs= размер блока записи
· oflag= опция дополнительных параметров, sysnc - дополняет сектора значениями NUL
6 - Перезагрузится, обычный reboot не сработает, потому:
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
Дальше перехожу в веб-интерфейс хостинга и задаю пароль для пользователя admin через KVM (по умолчанию логин Mikrotik, admin без пароля)
/user set [find name=admin] password=SupeR_stronG_paSs-228
Параллельно добрые люди с ботами хотят взломать мой облачный роутер :-)
Дабы избежать неловких ситуаций, следует ограничить доступ к сервисам ssh, winbox , остальные отключить.
IP - Services
Теперь предстоит самое интересное, а именно настроить l2tp/IPSec
1. Ip - pool
– name : l2tp=pool
– addresses : 192.168.20.2-192.168.20.200
– next pool : none
2. PPP - Profiles / Создать профиль для l2tp туннеля
– name : l2tp-profile
– local address : l2tp-pool
– remote address : l2tp-pool
– DNS servers : 1.1.1.1 (можно использовавать любые)
3. PPP - Secrets / Создать профиль пользователя
– name : vpn-user001 (уникальность имён приветствуется)
– password : пароль умеренной сложности
– service : l2tp
– profiles : ранее созданный l2tp-profile
4. PPP - Interface - L2TP Server
– Enable
– default profile : ранее созданный l2tp-profile
– authentification : оставить только (mschap2)
– use ipsec : required
– ipsec secret : не самый простой Shared Secret
5. IP - IPSec - Proposals
– name : default
– auth algorithms : sha1
– encr. algorithms : aes-128 cbc / aes-192 cbc / aes- 256 cbc
– pfs group : modp 1024
· этот конфиг создается по умолчанию, но всё же стоит проверить ;-)
6. IP - FireWall - NAT
· без nat, подключение произойдёт, но сети не будет
– nat rule : srcnat
– out. interface list : all
– переходим на вкладку Action
– action : masquerade
7. Простая настройка firewall
· буду приводить только консольные команды без скриншотов (ну ладно будет один финальный в конце ;-) )
· В терминале через winbox или ssh
/ip firewall filter
· добавить правила fasttrack connections
add action=fasttrack-connection chain=forward connection-state=\
established,related
add action=fasttrack-connection chain=forward connection-state=\
established,related protocol=tcp
add action=fasttrack-connection chain=forward connection-state=\
established,related protocol=udp
add action=accept chain=forward comment="FastTrack Connection" \
connection-state=established,related
· Правила для established, related + открыть порты для l2tp (500,1701,4500)
add action=accept chain=in connection-state=established,related
add action=accept chain=input comment="Port Access" dst-port=500,1701,4500 \
in-interface=ether1 protocol=udp
· разрешить ping (icmp)
add action=accept chain=in in-interface=etgher1 protocol=icmp
· остальное drop
add action=drop chain=forward connection-state=invalid
add action=drop chain=input connection-state=invalid
add action=drop chain=in
8. получить лицензию на CHR
- Зарегистрироваться на оф.сайте Mikrotik
- Зарегистрировать CHR (после триального периода роутер не превращается в тыкву, если его не обновлять, продолжит работать на полной скорости даже после истечения лицензии)
system - license - renew license
- account : логин в учётную запись на Mikrotik.com
- passwrod : пароль от учётной записи на Mikrotik.com
А в личном кабинете видно временную лицензию
И на финал, тест скорости ;-)
Из минусов, не гигабит)
Крайне приветствую комментарии и предложения по теме!)