Настройка хоста (LXC)
Отредактируйте конфигурацию LXC-контейнера, указав IP-адрес и шлюз:
sudo nano /var/lib/lxc/[container_name]/config
# Autostart lxc.start.auto = 1 lxc.start.delay = 5 # Network configuration lxc.network.type = veth lxc.network.flags = up lxc.network.name = eth1 lxc.network.link = br0 lxc.network.ipv4 = XXX.XXX.XXX.XXX/24 lxc.network.ipv4.gateway = XXX.XXX.XXX.XXX # for openvpn lxc.mount.entry = /dev/net dev/net none bind,create=dir lxc.cgroup.devices.allow = c 10:200 rwm # mount folder lxc.mount.entry = /home/ /var/lib/lxc/[container_name]/rootfs/home/ none bind 0 0
Настройка контейнера
Получение root-доступа
/bin/su
Настройка часового пояса
dpkg-reconfigure tzdata
Установка необходимых пакетов
apt-get install curl wget nano
Загрузка установочного скрипта OpenVPN
curl -O https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh chmod +x openvpn-install.sh
Альтернативный источник:
wget http://ruii.ru/scripts/openvpn-install.sh
Запуск установочного скрипта
./openvpn-install.sh
Параметры установки (обязательно)
- Указать внешний IP-адрес сервера
- Отключить IPv6
- Выбрать произвольный порт
- Протокол: TCP (MikroTik не поддерживает UDP OpenVPN)
- Выбрать DNS-серверы для клиентов
- Отключить компрессию (MikroTik не поддерживает)
- Customize encryption settings: Yes
- Cipher: AES-256-CBC
- Key type: RSA
- Key size: 2048 bits
- TLS Cipher: ECDHE-RSA-AES-128-GCM-SHA256
- Diffie-Hellman: 2048 bits
- Auth digest: SHA-256
- Enable tls-auth: Yes
- Создать passwordless client
Файл клиента сохраняется в домашнем каталоге пользователя.
Конфигурация OpenVPN-сервера
nano /etc/openvpn/server.conf
port 12375 proto tcp dev tun user nobody group nogroup persist-key persist-tun keepalive 10 120 client-to-client client-config-dir /etc/openvpn/client/ topology subnet server XXX.XXX.XXX.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "dhcp-option DNS 77.88.8.8" push "redirect-gateway def1 bypass-dhcp" dh dh.pem #tls-auth tls-auth.key 0 crl-verify crl.pem ca ca.crt cert server_n6k2pkZrAtbDZA6v.crt key server_n6k2pkZrAtbDZA6v.key auth SHA1 cipher AES-256-CBC ncp-ciphers AES-256-CBC status /var/log/openvpn/status.log verb 3 management localhost 7777
Конфигурация шаблона клиента
nano /etc/openvpn/client-template.txt
client proto tcp-client remote XXX.XXX.XXX.XXX 12375 dev tun resolv-retry infinite nobind persist-key persist-tun verify-x509-name server_n6k2pkZrAtbDZA6v name auth SHA1 auth-nocache cipher AES-256-CBC setenv opt block-outside-dns verb 3
Статическая конфигурация клиента
nano /etc/openvpn/client/[ClientNAME]
ifconfig-push 10.10.50.120 255.255.255.0 push "route 10.10.50.0 255.255.255.0"
Перезапуск и проверка
service openvpn restart
Просмотр подключённых клиентов:
cat /var/log/openvpn/status.log
OVPN-файл клиента доступен в каталоге /home.
Настройка клиента MikroTik
- Передать
.ovpn-файл на MikroTik - System → Certificates → Import
- Импортировать сертификат (KT)
- PPP → OVPN Client → Dial Out
- Указать внешний IP, порт, имя пользователя
- Выбрать сертификат
- Auth: SHA1
- Cipher: AES256
TAGS: OpenVPN, MikroTik, LXC, VPN, TCP, Linux