OpenVPN клиент на CentOS 6

Ранее я уже описывал как поднять сервер VPN на микротике, в этой статье я опишу как настроить 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-release

либо

rpm -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 вида

1
2
user
123

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

nano /etc/openvpn/client.conf

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
proto tcp-client
# в этой строчке мы указываем адрес в интернете нашего микротика
remote 123.123.123.123
dev tap
 
nobind
persist-key
 
tls-client
#указываем имена публичного CA сертификата
ca ca.crt
# публичного сертификата клиента
cert client.crt
# и его закрытый ключ
key  client.key
#каждые 10 секунд проверять туннель, если нет ответа 120 секунд, переподключаться
keepalive 10 120
verb 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 start

 

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

service openvpn start

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

tail -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 md5\nMinimumDHBits 512\n” >> /etc/pki/tls/legacy-settings

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

chkconfig  --level 35 openvpn on

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