Содержание

Mikrotik: сервер OpenVPN и Ubuntu в качестве клиента

Курс «Настройка оборудования MikroTik»

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Узнать подробности

Задача:

Настраиваем Mikrotik

Создаем сертификаты

Создаем сертификаты: CA, сервера OpenVPN, клиента OpenVPN как описано тут: Mikrotik: работа с сертификатами

Экспортируем сертификаты: ca.crt, client1.crt, client1.key (с паролем)

Создаем профиль

Открываем PPP / Profiles, создаем новый (не все из указанных опций нужны, смотрите сами):

Создаем пользователя

Открываем PPP / Secrets, создаем нового пользователя:

Включаем OpenVPN

Открываем PPP / OVPN Server, включаем:

Создаем интерфейс для клиента

Это необязательно, но так удобнее работать для разрешения трафика.

Открываем PPP / Interface и создаем OVPN Server Binding

Разрешаем трафик

Открываем порт OpenVPN чтобы клиенты могли подключаться.

Не забываем поднять правила вверх списка чтобы они не попадали под запреты!

Открываем IP / Firewall, создаем новое правило:

При необходимости можете ограничить интерфейс и адреса с которых будет идти подключение.

Разрешаем трафик через VPN, открываем IP / Firewall, создаем 3 новых правила (зачем именно так - отдельный вопрос):

Настраиваем Ubuntu

Устанавливаем OpenVPN на Ubuntu

Подробно описано тут: Установка OpenVPN в Ubuntu

Настраиваем OpenVPN как клиент на Ubuntu

Копируем сертификаты ca.crt, client1.crt, client1.key (с паролем) на сервер в папку /etc/openvpn

Снимаем пароль с client1.key (иначе при запуске OpenVPN будет его требовать, а нам нужно чтобы все работало автоматически):

openssl rsa -in client1.key -out client1.key

Создаем конфигурационный файл /etc/openvpn/client.conf

XXX.XXX.XXX.XXX - адрес Mikrotik

client
dev tun
proto tcp
remote XXX.XXX.XXX.XXX 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
remote-cert-eku 'TLS Web Server Authentication'
cipher AES-256-CBC
auth SHA1
auth-nocache
auth-user-pass client1.txt
user nobody
group nogroup
route 10.10.10.0 255.255.255.0 10.10.10.1
verb 3
mute 20

Создаем файл /etc/openvpn/client1.txt с логином и паролем:

ovpn-client1
Password: $ecretP@$$word

Убираем права на файлы для всех пользователей кроме root:

chown root:root ca.crt client1.crt client1.key client1.txt client.conf
chmod 600 ca.crt client1.crt client1.key client1.txt client.conf

Запускаем клиента, смотрим логи, проверяем работу:

systemctl start openvpn@client

Включаем автоматический запуск OpenVPN при старте сервера:

systemctl enable openvpn@client