Установка и настройка OpenVPN на Debian 8
Генерация сертификатов как здесь.
Подключить репозиторий и у меня подключены бэк-порты.
На всякий случай продублирую
Using OpenVPN apt repositories We maintain several OpenVPN (OSS) software repositories. To setup the repositories you need to change to the root user. Typically this is done using sudo: $ sudo -s Then import the public GPG key that is used to sign the packages: $ wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|apt-key add - Next you need to create a sources.list fragment (as root) so that apt can find the new OpenVPN packages. One way to do it is this: $ echo "deb http://build.openvpn.net/debian/openvpn/<version> <osrelease> main" > /etc/apt/sources.list.d/openvpn-aptrepo.list Where <version> can be one of stable: stable releases only - no alphas, betas or RCs testing: latest releases, including alphas/betas/RCs release/2.3: OpenvPN 2.3 releases release/2.4: OpenVPN 2.4 releases, including alphas/betas/RCs and <osrelease> depends your distribution: wheezy (Debian 7.x) jessie (Debian 8.x) precise (Ubuntu 12.04) trusty (Ubuntu 14.04) xenial (Ubuntu 16.04) Examples: $ echo "deb http://build.openvpn.net/debian/openvpn/testing jessie main" > /etc/apt/sources.list.d/openvpn-aptrepo.list $ echo "deb http://build.openvpn.net/debian/openvpn/release/2.3 wheezy main" > /etc/apt/sources.list.d/openvpn-aptrepo.list Now you're set for installing OpenVPN. Note that packages built for older operating system releases might work just fine on newer release of the same operating system. Installing OpenVPN On Debian/Ubuntu use $ apt-get update && apt-get install openvpn
Обновить libssl, возможно не критично, но это ssl :D
сервер /etc/openvpn/server.conf
mode server tls-server daemon local 192.168.0.226 port 1194 proto tcp-server # - используемый тип устройства и номер dev tap0 #указываем файл с ключем сервера pkcs12 /etc/openvpn/easy-rsa/keys/server-cert.p12 #указываем файл Диффи Хельман dh /etc/openvpn/easy-rsa/keys/dh2048.pem #задаем IP-адрес сервера и маску подсети ifconfig 10.8.0.1 255.255.255.0 server 10.8.0.0 255.255.255.0 #### clients ip client-config-dir /etc/openvpn/ccd ifconfig-pool-persist ipp.txt push "route 10.8.0.0 255.255.255.0 10.8.0.1" push "dhcp-option DNS 10.8.0.1" #push "dhcp-option DOMAIN net.local" #push "dhcp-option DOMAIN-SEARCH net.local" #push "redirect-gateway" keepalive 10 120 # пинг каждые 10 секунд для поддержания канала связи client-to-client ######### #auth MD5 # включаем шифрацию пакетов cipher BF-CBC keepalive 10 120 # сжатие трафика comp-lzo # максимум клиентов max-clients 100 # Не перечитывать ключи после получения # SIGUSR1 или ping-restart persist-key # Не закрывать и переоткрывать TUN\TAP # устройство, после получения # SIGUSR1 или ping-restart persist-tun # логгирование (не забудьте создать эту дирректорию /var/log/openvpn/) status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log # Уровень информации для отладки verb 6
клиент Linux /etc/openvpn/client.conf.
client dev tap0 proto tcp-client remote 192.168.0.226 1194 resolv-retry infinite nobind #user nobody #group nobody persist-key persist-tun dh dh2048.pem pkcs12 lopic85.p12 ns-cert-type server comp-lzo status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log verb 6 mute 20 auth-nocache
На клиент положить копию dh2048.pem с сервера или какая там у вас будет глубина шифрования и сертификат клиента. Сертификат может быть с паролем, может быть без. Как сделаете (смотри картинки по генерации сертификатов внимательно). На клиенте тоже обновить версию openvpn до серверной (может и не надо но d 2.4.0 есть lz4 сжатие и работать будет только на 2.4.0 клиенте).
Для выдачи клиентам постоянных ip, на сервере в каталоге /etc/openvpn/ccd нужно создавать файлики по одному на клиента:
/etc/openvpn/ccd/lopic.crt
ifconfig-push 10.8.0.13 255.255.255.0 push "route 10.8.0.0 255.255.255.0 10.8.0.1"
Имя файла должно совпадать с именем сертификата (при генерации (common name) или можно посмотреть в логах). И создать файл /etc/openvpn/ipp.txt
КОСТЫЛЬ №1 Присвоение постоянных ip клиентам openvpn 2.4.0
После написания файла lopic.crt, и перезагрузки openvpn ip выдавался следующий после сервера 10.8.0.2, а не тот который прописан в lopic.crt
Нужно:
- ОСТАНОВИТЬ openvpn
- в файле /etc/openvpn/ipp.txt прописать в новой строке 'lopic,10.8.0.13' (зяпятая между именем и ip без пробелов). lopic.crt уже должен быть
- запустить openvpn
КОСТЫЛЬ №2 автостарт openvpn 2.4.0 в systemd
Не знаю, баг это или фича, но на сервере сервисы openvpn.service и openvpn@.service активны, загружены и исполнены, а интерфейса нет.
Как сдел я:
- /etc/scripts/ovpn_restart.sh
#!/bin/bash sleep 10 systemctl restart openvpn exit 0