OpenVPN клиент на CentOS 6

В этой статье я опишу как настроить centos для подключения к микротику.

установка

Итак первым делом нам потребуется установить пакет

yum install openvpn

у меня он был в дистрибутиве…

yum install openvpn

и… во-первых: очень старый

во-вторых: писал в лог вот такую ошибку

× Jan 16 13:47:17 localhost openvpn[5618]: OpenVPN 2.0.9 x86_64-redhat-linux-gnu [SSL] [LZO] [EPOLL] built on Nov 12 2010
Jan 16 13:47:17 localhost openvpn[5618]: Sorry, ‘Auth’ password cannot be read from a file
Jan 16 13:47:17 localhost openvpn[5618]: Exiting
Ну и конечно отказывался стартовать.

В общем, мало того что старая версия, так ещё и собрана без поддержки логина-пароля, а на микротике без этого никак. Но проблема очень просто решается, надо добавить репозиторий EPEL

yum install epel-release1yum install epel-release

либо

rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm1rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

centos add epel

а затем снова набираем

yum install openvpn

ovpn centos yum install

настройка, конфиг файл

После установки нормальной версии openvpn мы перекидываем публичные сертификаты CA и клиента, и закрытый ключ клиента в /etc/openvpn/ и там же создаём файл auth.cfg вида

user12312user123

Процесс по созданию сертификатов описан здесь.
Следующим этапом создаём файл client.conf

nano /etc/openvpn/client.conf1nano /etc/openvpn/client.conf

следующего содержания:

proto tcp-client# в этой строчке мы указываем адрес в интернете нашего микротика

remote 123.123.123.123dev tapnobindpersist-keytls-client#указываем имена публичного CA сертификата

ca ca.crt# публичного сертификата клиента

cert client.crt# и его закрытый ключkey client.key#каждые 10 секунд проверять туннель, если нет ответа 120 секунд, переподключатьсяkeepalive 10 120verb 3 #проверка сертификата сервера #https://openvpn.net/index.php/open-source/documentation/howto.html#mitm remote-cert-tls server cipher AES-256-CBC auth SHA1 pull # эта строка задаёт файл с логином-паролем которые мы прописывали в PPP-Secrets на микротике auth-user-pass auth.cfg # в этой части мы задаём настройки сетей которые находятся за микротиком, # в моём случае 192.168.1.0 с маской 255.255.255.0 это сеть, # а 192.168.221.1 это адрес микротика который мы указывали в PPP профиле route-delay 2 route 192.168.1.0 255.255.255.0 192.168.221.112345678910111213141516171819202122232425262728293031proto tcp-client# в этой строчке мы указываем адрес в интернете нашего микротикаremote 123.123.123.123dev tap nobindpersist-key tls-client#указываем имена публичного CA сертификатаca ca.crt# публичного сертификата клиентаcert client.crt# и его закрытый ключkey  client.key#каждые 10 секунд проверять туннель, если нет ответа 120 секунд, переподключатьсяkeepalive 10 120verb 3 #проверка сертификата сервера #https://openvpn.net/index.php/open-source/documentation/howto.html#mitm remote-cert-tls server cipher AES-256-CBC auth SHA1 pull # эта строка задаёт файл с логином-паролем которые мы прописывали в PPP-Secrets на микротике auth-user-pass auth.cfg # в этой части мы задаём настройки сетей которые находятся за микротиком, # в моём случае 192.168.1.0 с маской 255.255.255.0 это сеть, # а 192.168.221.1 это адрес микротика который мы указывали в PPP профиле route-delay 2 route 192.168.1.0 255.255.255.0 192.168.221.1

после того как конфиг файл сохранён, можно запускать службу

service openvpn start1service openvpn start

Должен появится новый интерфейс в системе, проверяем командой ifconfig

service openvpn start

Если интерфейс не появился — смотрим ошибки в логах:

tail -n 100 /var/log/messages1tail -n 100 /var/log/messages

× При получении ошибки:
VERIFY ERROR: depth=0, error=certificate signature failure:
OpenSSL: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
TLS_ERROR: BIO read tls_read_plaintext error
TLS Error: TLS object -> incoming plaintext read error
TLS Error: TLS handshake failed
необходимо включить поддержку md5, выполнив команду:
echo -e «LegacySigningMDs md2 md5nMinimumDHBits 512n» >> /etc/pki/tls/legacy-settings

Добавить сервис в автозапуск можно например с помощью Webmin или командой:

chkconfig —level 35 openvpn on1chkconfig  —level 35 openvpn on

Проверяем — Всё должно работать. Как и прежде любые вопросы или пожелания можно оставлять ниже в комментариях.