Иногда возникает потребность построить OpenVPN тоннель между Linux сервером (Ubuntu, Debian) и маршрутизатором MikroTik. В данном руководстве разберем пример развертывания OpenVPN сервера на Debian и настройку подключения на RouterOS в роутерах MikroTik.
В данном примере мы будем использовать следующую сетевую конфигурацию:
1. IP-адрес сервера внутри OpenVPN тоннеля: 192.168.168.1
2. IP-адрес клиента MikroTik внутри OpenVPN тоннеля: 192.168.168.2
Устанавливаем Easy-RSA:
sudo apt install easy-rsa
Подготавливаем корневой сертификат (CA), выполняем поочередно команды:
sudo make-cadir /etc/easy-rsa
sudo -i
cd /etc/easy-rsa
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-dh
./easyrsa gen-crl
Создаем сертификат для сервера Debian (на последней команде отвечаем – yes):
./easyrsa gen-req debian nopass
./easyrsa sign-req server debian
Создаем сертификат для клиента c именем MikroTik (на последней команде отвечаем – yes):
./easyrsa gen-req mikrotik nopass
./easyrsa sign-req client mikrotik
Теперь установим OpenVPN:
sudo apt install openvpn
Создаем файл конфигурации OpenVPN сервера:
sudo nano /etc/openvpn/server/debian.conf
Вставляем содержимое (Shift+Insert):
ca /etc/easy-rsa/pki/ca.crt
cert /etc/easy-rsa/pki/issued/debian.crt
key /etc/easy-rsa/pki/private/debian.key
dh /etc/easy-rsa/pki/dh.pem
crl-verify /etc/easy-rsa/pki/crl.pem
proto tcp
dev tun
topology subnet
server 192.168.168.0 255.255.255.0
client-config-dir /etc/openvpn/ccd
Далее создаем файл конфигурации для клиента:
sudo mkdir /etc/openvpn/ccd
sudo nano /etc/openvpn/ccd/mikrotik
Вставляем туда следующее:
ifconfig-push 192.168.168.2 255.255.255.0
После этого запускаем openvpn-сервер:
sudo systemctl start openvpn-server@debian
Если все получилось, то команда покажет статус “active (running)”:
sudo systemctl status openvpn-server@debian
Если что то пошло не так, то внимательно изучаем журнал и пытаемся понять, где ошиблись:
journalctl -xe
Прописываем автоматический запуск нашего OpenVPN сервера при старте операционной системы:
sudo systemctl enable openvpn-server@debian
OpenVPN сервер подготовлен. Переходим к настройке роутера.
Переносим сгенерированные ранее файлы сертификата клиента (/etc/easy-rsa/pki/issued/mikrotik.crt и /etc/easy-rsa/pki/private/mikrotik.key) на MikroTik:
1. В WinBox переходим в меню Files и загружаем сертификат и его ключ.
2. Далее в WinBox переходим в меню System – Certificates – Import и импортируем в хранилище сертификатов сначала сертификат, затем приватный ключ клиента.
3. Затем в WinBox переходим в меню PPP – Interface – Add – OVPN Client, на вкладке Dial Out прописываем внешний IP-адрес вашего сервера OpenVPN, в списке Certificate выбираем только что импортированный сертификат и указываем шифрование sha1 aes256.
Если соединение установилось, пробуем из микротика пропинговать сервер по IP: 192.168.168.1. Если пинг идет, значит соединение работает. Однако из локальной сети за микротиком сервер возможно будет не доступен. Чтобы решить это проблему, необходимо создать правило NAT.
В WinBox переходим в меню IP – Firewall, открываем вкладку NAT. Жмем Add, в Dst. Address прописываем внутренний адрес сервера 192.168.168.1, в Out. Interface указываем имя вашего ovpn-подключения, на вкладке Action выбираем masquerade. Сохраняем правило.
Пробуем пропинговать сервер из локальной сети за микротиком, все должно работать.