Почему не стартует OpenVPN
Всю голову поломал не могу понять что ему нужно пишу в консоли: /etc/init.d/openvpn start
В ответ получаю
[ ok ] Starting openvpn (via systemctl): openvpn.service.
Смотрю в процессах нет никакого намека на него. Иду дальше
запращиваю статус systemctl status openvpn
В ответ получаю
openvpn.service — OpenVPN service
Loaded: loaded (/lib/systemd/system/openvpn.service; enabled) Active: active (exited) since Пт 2016-07-08 15:59:45 CEST; 1min 11s ago Process: 32548 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 32548 (code=exited, status=0/SUCCESS) CGroup: /system.slice/openvpn.service
июл 08 15:59:45 server systemd[1]: Started OpenVPN service. июл 08 15:59:52 server systemd[1]: Started OpenVPN service.
Делаю поиск по pidу
ps axu | grep 32548
В ответ получаю
root 556 0.0 0.0 14444 980 pts/0 S+ 16:02 0:00 grep 32548
Смотрю syslog
Jul 8 16:04:27 server systemd[1]: Stopping OpenVPN service.
Jul 8 16:04:27 server systemd[1]: Starting OpenVPN service.
Что ему надо подскажите
смотри openvpn.log (который указан в conf файле), либо запусти напрямую в консоли.
И всё у тебя будет пучком
В ответ получил
● openvpn@server.service — OpenVPN connection to server
Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled)
Active: failed (Result: exit-code) since Пт 2016-07-08 16:27:37 CEST; 6s ago
Process: 2540 ExecStart=/usr/sbin/openvpn —daemon ovpn-%i —status /run/openvpn/%i.status 10 —cd /etc/openvpn —config /etc/openvpn/%i.conf (code=exited, status=1/FAILURE)
июл 08 16:27:37 server systemd[1]: openvpn@server.service: control process exited, code=exited status=1
июл 08 16:27:37 server systemd[1]: Failed to start OpenVPN connection to server.
июл 08 16:27:37 server systemd[1]: Unit openvpn@server.service entered failed state.
Он пустой в том то и дело
Конфиг лежит в /etc/openvpn/server.conf ?
запусти вручную openvpn —config /path/to/openvpn.conf
Я понял про конфиг уже, переименовал вот что щас пишет
● openvpn@server.service — OpenVPN connection to server
Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled)
Active: failed (Result: exit-code) since Пт 2016-07-08 16:32:18 CEST; 1min 48s ago
Process: 2947 ExecStart=/usr/sbin/openvpn —daemon ovpn-%i —status /run/openvpn/%i.status 10 —cd /etc/openvpn —config /etc/openvpn/%i.conf (code=exited, status=1/FAILURE)
июл 08 16:32:18 server ovpn-server[2947]: Options error: In [CMD-LINE]:1: Error opening configuration file: /etc/openvpn/server.conf
июл 08 16:32:18 server systemd[1]: openvpn@server.service: control process exited, code=exited status=1
июл 08 16:32:18 server systemd[1]: Failed to start OpenVPN connection to server.
июл 08 16:32:18 server systemd[1]: Unit openvpn@server.service entered failed state.
покажи содержимое /etc/default/openvpn
Вобще не реагирует
Права на конфиг какие? Дропает ли демон свои привилегии до nobody:nobody ?
# This is the configuration file for /etc/init.d/openvpn
# # Start only these VPNs automatically via init script.
# Allowed values are «all», «none» or space separated list of
# names of the VPNs. If empty, «all» is assumed.
# The VPN name refers to the VPN configutation file name.
# i.e. «home» would be /etc/openvpn/home.conf
#
# If you’re running systemd, changing this variable will
# require running «systemctl daemon-reload» followed by
# a restart of the openvpn service (if you removed entries
# you may have to stop those manually)
#
#AUTOSTART=«all»
#AUTOSTART=«none»
#AUTOSTART=«home office»
#
# WARNING: If you’re running systemd the rest of the
# options in this file are ignored.
#
# Refresh interval (in seconds) of default status files
# located in /var/run/openvpn.$NAME.status
# Defaults to 10, 0 disables status file generation
#
#STATUSREFRESH=10
#STATUSREFRESH=0
# Optional arguments to openvpn’s command line
OPTARGS=«»
#
# If you need openvpn running after sendsigs, i.e.
# to let umountnfs work over the vpn, set OMIT_SENDSIGS
# to 1 and include umountnfs as Required-Stop: in openvpn’s
# init.d script (remember to run insserv after that)
#
OMIT_SENDSIGS=0
/etc/openvpn# ls -l
итого 24
drwxr-xr-x 2 root root 4096 июл 4 05:00 easy-rsa
drwxr-xr-x 2 root root 4096 июл 4 04:56 keys
drwxr-xr-x 2 root root 4096 июл 8 14:40 log
drwxr-xr-x 2 root root 4096 июл 4 05:06 script
-rwxrwxrwx 1 root root 942 июл 8 16:32 server.conf
-rwxr-xr-x 1 root root 1301 ноя 12 2015 update-resolv-conf
С правами все хорошо специально поставил даже 777
Что-то шибко мелкий какой-то конф файл, он там точно не пустой у тебя?
mode server
##protocol port
port 1194
proto tcp
dev tap
##ip server client
server 10.4.0.0 255.255.255.0
##key ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
##option
persist-key
persist-tun
keepalive 5 60
reneg-sec 432000
##option authen.
comp-lzo
user nobody
#group nogroup
client-to-client
username-as-common-name
client-cert-not-required
auth-user-pass-verify /etc/openvpn/script/login.sh via-env
##push to client
max-clients 50
push «persist-key»
push «persist-tun»
push «redirect-gateway def1»
#push «explicit-exit-notify 1»
##DNS-Server
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»
Не подключается OpenVPN
OpenVPN — очень популярная программа для организации виртуальных сетей и VPN-серверов. Это очень удобно, так как вы можете объединить несколько компьютеров, находящихся в разных концах мира в одну виртуальную локальную сеть и для операционной системы всё будет выглядеть так, как будто эти компьютеры действительно находятся в одной локальной сети.
Но иногда сеть перестает работать или не получается её настроить. В этой статье мы разберём несколько причин, почему не подключается OpenVPN, с которыми лично сталкивался я и которые мне приходилось исправлять. Возможно, одна из них и привела к вашей поломке.
1. Сервис запущен?
Если вы только что установили и настроили OpenVPN, убедитесь, что его сервис запущен и работает. Если сервер не запущен, то, как правило, при попытке подключения вы будете получать ошибку «Connection refused». Для проверки выполните:
sudo systemctl status openvpn
В некоторых случаях сервис запускается с определённым конфигом. Тогда для проверки нужно указать этот конфигурационный файл:
sudo systemctl status openvpn@имя_конфига
Также вы можете посмотреть, слушает ли сервис подключения на порту OpenVPN:
ss -tlpn | grep openvpn
2. Открыт порт?
Если сервис запущен и слушает подключения на 1194 порту, а вы всё ещё не можете подключится, убедитесь, что этот порт не защищён брандмауэром на сервере. Для этого просто пробуем подключится к нему с помощью telnet:
telnet ip_сервера 1194
Когда всё хорошо, утилита сообщит об успешном подключении:
Если вы получаете такую же ошибку — «Connection refused» — или просто долго идёт подключение, но сервис запущен, значит порт закрыт. Открыть порт в Ubuntu можно с помощью команды:
sudo ufw allow 1194
sudo firewall-cmd —zone=trusted —add-service openvpn
sudo firewall-cmd —zone=trusted —add-service openvpn —permanent
Теперь можете снова попробовать подключаться к вашему OpenVPN-серверу и теперь всё должно заработать.
3. Соответствуют ли настройки?
Если сервер запущен и доступен извне, но вы всё ещё не можете подключится, то проверьте, соответствуют ли клиентская сторона настройкам сервера. Обратите внимание на тип подключения — tcp это или udp? Также обратите внимание на настройки шифрования и сжатия, особенно tls и comp-lzo. Все настройки, касающиеся подключения, должны быть одинаковыми как в конфигурационном файле клиента, так и сервера.
4. Используете ли правильные ключи?
Если вы подписывали ключи вручную, без использования какого-либо автоматического скрипта настройки OpenVPN, и поэтому они находятся в отдельных файлах от клиентского конфигурационного файла, тогда проверьте, используете ли вы правильные ключи и правильно ли они подписаны. Обычно при проблемах с ключами всё это очень хорошо видно в лог-файле OpenVPN. Но об этом позже. Попробуйте подписать ключи ещё раз.
5. Стабильная сеть?
Если OpenVPN подключается, но подключение постоянно разрывается, причиной этому может стать нестабильная сеть. Если вы знаете, что сеть у вас не очень стабильная или сильно загружена, уберите эти опции из конфигурационного файла клиента:
sudo vi /etc/openvpn/server.conf
#ping 5
#ping-restart 10
Как правило, это решает проблему с сетью и программа может нормально работать даже в сети, которая постоянно разрывается. Также можно не удалять эти строки полностью, а просто увеличить их значения.
6. Проанализируйте лог файл
Если вам всё ещё не удалось выяснить, почему не работает подключение, значит это что-то более серьёзное и без анализа лог-файла вам не обойтись. При подключении в терминале клиента вы обычно будете получать примерно одну и ту же ошибку:
SIGUSR1[soft,connection-reset] received, process restarting
Более подробную информацию можно взять из лог-файла сервера. Лог-файл настраивается директивой log-append в конфигурационном файле сервера, обычно это /var/log/openvpn.log.
По умолчанию уровень логирования равен трём. На этом уровне вы мало что сможете понять. Вам нужен уровень 9, максимальный. Поэтому откройте конфигурационный файл и приведите настройки логирования к такому виду:
log-append /var/log/openvpn.log
verb 9
Теперь перезапустите OpenVPN:
sudo systemctl restart openvpn@имя_конфига
Откройте лог-файл и попробуйте снова подключится:
tail -f /var/log/openvpn.log
Здесь вы увидите очень много информации, просмотрите её внимательно и найдите, где именно находится проблема. Обычно программа сама говорит где проблема и как её решить. Главное, потом не забудьте вернуть значение параметра verb по умолчанию (3) иначе лог-файл очень быстро займёт всё свободное место на жёстком диске.
7. Два пользователя одновременно
Если по одному и тому же конфигурационному файлу пытаются подключится два или больше пользователей одновременно, то OpenVPN примет только одно подключение, а все остальные будет сбрасывать. Это поведение можно изменить, добавив к конфигурации сервера строчку:
Но лучше так не делать и создавать для каждого пользователя или устройства отдельный конфигурационный файл, тогда можно будет просто отследить, кто и когда подключался.
8. Истек срок действия crl
CRL — это список отозванных сертификатов. Этот файл имеет свой срок действия, и он может истекать. Если это произойдёт, то в логе вы найдёте ошибку «CRL has expired». Для быстрого её решения можно просто закомментировать строчку:
Но тогда отозванные сертификаты перестанут быть отозванными. Другой вариант — это создать этот файл заново. Если у вас установлен пакет скриптов EasyRSA, который, обычно, автоматически устанавливается вместе с OpenVPN, то сделать это очень просто. Перейдите в папку со скриптами:
Затем скопируйте полученный файл в папку с файлами OpenVPN:
cp /etc/openvpn/easy-rsa/pki/crl.pem /etc/openvpn/crl.pem
Готово, теперь у вас всё будет работать.
9. Сервер перегружен
Если вы не можете подключится или подключение разрывается, причиной этому может стать недостаточное количество ресурсов на сервере. Убедитесь, что сервер ничем не перегружен, а на жёстком диске есть свободное место.
Выводы
Сегодня мы разобрали несколько причин, почему может возникнуть ошибка «не удалось подключиться к OpenVPN». Конечно, это только самые простые проблемы, и при более серьёзном использовании программы можно столкнутся с более крупными проблемами. Какие казусы с подключением к OpenVPN вам приходилось решать? Напишите свои варианты решений в комментариях!