OpenVPN сервер на Debian с клиентами на MikroTik

Справочник системного администратора

Иногда возникает потребность построить 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. Сохраняем правило.

Пробуем пропинговать сервер из локальной сети за микротиком, все должно работать.

Tags: ,