====== Mikrotik: сервер OpenVPN и Ubuntu в качестве клиента ======
Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
[[https://курсы-по-ит.рф/lp-mikrotik-mtcna?utm_source=wiki-rtza&utm_medium=cpc&utm_campaign=30| Узнать подробности]]
Задача:
* Mikrotik в качестве сервера OpenVPN, Ubuntu в качестве клиента
* Генерация сертификатов на Mikrotik
===== Настраиваем Mikrotik =====
==== Создаем сертификаты ====
Создаем сертификаты: CA, сервера OpenVPN, клиента OpenVPN как описано тут: [[software:mikrotik:mikrotik-generate-certificate|Mikrotik: работа с сертификатами]]
Экспортируем сертификаты: ca.crt, client1.crt, client1.key (с паролем)
==== Создаем профиль ====
Открываем PPP / Profiles, создаем новый (не все из указанных опций нужны, смотрите сами):
* Закладка General
* Name: openvpn-profile
* Local Address: 10.10.10.1
* Change TCP MSS: Yes
* Закладка Protocols
* Use Compression: Yes
* Use Encryption: Yes
* Закладка Limits
* Only One: No
==== Создаем пользователя ====
Открываем PPP / Secrets, создаем нового пользователя:
* Name: ovpn-client1
* Password: $ecretP@$$word
* Service: ovpn
* Profile: openvpn-profile
* Remote-Address: 10.10.10.2 (или можно сделать через пул адресов)
==== Включаем OpenVPN ====
Открываем PPP / OVPN Server, включаем:
* Enabled: включаем
* Port: 1194
* Mode: ip
* Default-profile: openvpn-profile
* Certificate: Выбираем сертификат сервера (не CA!)
* Require Client Certificate: включаем для проверки сертификата клиента
* Auth: sha1, остальное отключаем
* Cipher: aes 256, остальное отключаем
==== Создаем интерфейс для клиента ====
Это необязательно, но так удобнее работать для разрешения трафика.
Открываем PPP / Interface и создаем OVPN Server Binding
* Name: OVPN-Client1
* User: ovpn-client1
==== Разрешаем трафик ====
Открываем порт OpenVPN чтобы клиенты могли подключаться.
Не забываем поднять правила вверх списка чтобы они не попадали под запреты!
Открываем IP / Firewall, создаем новое правило:
* Chain: input
* Protocol: 6 (tcp)
* Dst. Port: 1194
* Action: Accept
При необходимости можете ограничить интерфейс и адреса с которых будет идти подключение.
Разрешаем трафик через VPN, открываем IP / Firewall, создаем 3 новых правила (зачем именно так - отдельный вопрос):
* Правило input
* Chain: input
* In. Interface: OVPN-Client1
* Action: accept
* Правило forward
* Chain: forward
* In. Interface: OVPN-Client1
* Action: accept
* Правило output
* Chain: output
* Out. Interface: OVPN-Client1
* Action: accept
===== Настраиваем Ubuntu =====
==== Устанавливаем OpenVPN на Ubuntu ====
Подробно описано тут: [[software:openvpn:ubuntu-openvpn-installation|Установка 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
{{tag>mikrotik ubuntu openvpn настройка клиент сервер}}