Вы здесь

OPENVPN клиент+сервер

Установка и настройка openvpn выполняется через репозиторий epel.
подключаем репозиторий epel, ставим openvpn и easy-rsa:

# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install openvpn easy-rsa
# chkconfig openvpn on #автозапуск

Генерация сертификатов для openvpn

Чтобы постоянно не вводить информацию, поправим файл /usr/share/easy-rsa/2.0/vars
и далее:

# cd /usr/share/easy-rsa/2.0
# source vars
# ./clean-all
# /usr/share/easy-rsa/2.0/build-ca
# /usr/share/easy-rsa/2.0/build-dh
# /usr/share/easy-rsa/2.0/build-key-server server
# /usr/share/easy-rsa/2.0/build-key client1
# mv /usr/share/easy-rsa/2.0/keys/ /etc/openvpn/
# chmod 640 /etc/openvpn/keys/server.key && chgrp nobody /etc/openvpn/keys/server.key

На все вопросы понажимать просто Enter, при генерации сертификатов клиента и сервера там в конце надо будет будет два раза нажать «y» на вопросы «y/n»

Если в последствии нужно создать дополнительные клиентские сертификаты:

# cp /etc/openvpn/keys /usr/share/easy-rsa/2.0/
# source vars
# ./pkitool client2
# cp /usr/share/easy-rsa/2.0/keys/client2.* /etc/openvpn/
 

Настройка iptables для openvpn

В скрипте запуска /etc/init.d/openvpn находим строку и раскомментируем ее:
echo 1 > /proc/sys/net/ipv4/ip_forward

Создаем правила iptables на сервере:

# iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Если это VPS на Openvz, тогда такие правила:

# iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to IP_Адрес_Вашего_ВПС
# iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT

Сохраняем правила iptables:

# iptables-save > /etc/sysconfig/iptables

Настройка конфигурационных файлов

создаем файл на сервере /etc/openvpn/server.conf:

port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
server 10.8.0.0 255.255.255.0
push «redirect-gateway def1 bypass-dhcp»
push «dhcp-option DNS 8.8.8.8″ # здесь ДНС гугла 8.8.8.8 можно заменить на ДНС из файла /etc/resolv.conf на сервере.
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
log /var/log/openvpn.log
verb 3

Установить openvpn gui клиент на Вашу машину, если это windows обычно.
в директорию с конфигами клиента C:\Program Files\OpenVPN\config из папки /etc/openvpn/keys/ на сервере скопировать файлы:

ca.crt
client1.crt
client1.key

В C:\Program Files\OpenVPN\config создать файл client1.ovpn:

client
dev tun
proto udp
remote ТУТ_IP_АДРЕС_СЕРВЕРА_OPENVPN_ИЛИ_ДОМЕН 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 3

файлик с разширением .ovpn можно взять из папки C:\Program Files\OpenVPN\sample-config и перезаписать его ;-)
В принципе, все готово, можно запускать openvpn клиент и подключаться к серверу.

Для клиента на centos создадим файл /etc/openvpn/client.conf со следующим содержанием:

client
dev tun
proto udp
remote ТУТ_IP_АДРЕС_СЕРВЕРА_OPENVPN_ИЛИ_ДОМЕН 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
log /var/log/openvpn.log
verb 3

 

Для роутера Mikrotik нужно ключ перекомпилировать в формат pem:

# openssl rsa -in keys/client1.key -out keys/client1.pem

Так-же микротик не пожжерживает протокол UDP и сжатие заголовков, так что сервер нужно настроить соответствуюшим образом: протокол ТСР без компрессии.

И далее загружаем файлы (client1.crt client1.pem) на роутер и уже там:

System → Certifiactes → Import

Сначала импортировать client1.crt потом client1.pem