Настройка OpenVPN на CentOS 6.x

Не знаю по какой причине, но в версии CentOS 6.x отсутствует такой чудесный пакет как OpenVPN. А он частенько бывает нам необходим. К счастью существует достаточно дополнительных репозитариев, где все это есть.

Итак, приступим.
Первым делом подключим репозитарий, в котором есть наш пакет. В моем примере это будет repoforge.
Заходим в консоль сервера, например, в папку /root, скачиваем необходимый нам rpm пакет, содержащий установку rpmforge и устанавливаем его:
# cd /root
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el6.rf.i686.rpm

Далее, необходимо проверить установлен и активен ли у нас tun/tap интерфейс:
# sudo cat /dev/net/tun
В результате выполнения этой команды, должно появиться сообщение вида
# cat: /dev/net/tun: File descriptor in bad state
Это значит что с интерфейсом все нормально.
Далее устанавливаем, собственно, сам OpenVPN:
# yum install openvpn
А вот дальше начинается самое интересное. Нам нужно сгенерировать ключи для OpenVPN. Для этого копируем соответствующий инструментарий в /etc/openvpn:
# cp -r /usr/share/doc/openvpn-2.2.2/easy-rsa/ /etc/openvpn/
Затем необходимо немного изменить файл vars, чтоб он правильно работал в CentOS 6.3. Открываем файл /etc/openvpn/easy-rsa/2.0/vars в любимом редакторе и правим:
# vi /etc/openvpn/easy-rsa/2.0/vars
меняем строку 29 с:
export KEY_CONFIG=`$EASY_RSA/whichopensslcnf $EASY_RSA`
на:
export KEY_CONFIG=/etc/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf

Сохраняемся и выходим.
Далее генерируем ключи:
# chmod 755 /etc/openvpn/easy-rsa/2.0/*
#cd /etc/openvpn/easy-rsa/2.0
# source /etc/openvpn/easy-rsa/2.0/vars
# /etc/openvpn/easy-rsa/2.0/clean-all
# chmod 755 /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/pkitool
# /etc/openvpn/easy-rsa/2.0/build-ca
# /etc/openvpn/easy-rsa/2.0/build-key-server server
# /etc/openvpn/easy-rsa/2.0/build-dh
# /etc/openvpn/easy-rsa/2.0/build-key client1
# /etc/openvpn/easy-rsa/2.0/build-key client2

Копируем полученные ключи в папку /etc/openvpn
cp -r /etc/openvpn/easy-rsa/2.0/keys/* /etc/openvpn/
и конфигурационный файл server.conf туда же:
cp /usr/share/doc/openvpn-*/sample-config-files/server.conf /etc/openvpn/
Правим его.
Ниже приведу мой конфиг:
port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key
dh dh1024.pem

server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

keepalive 10 120
comp-lzo
max-clients 5
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log         /var/log/openvpn.log
verb 0

Теперь включаем форвард в ядре. Для этого изменяем в файле /etc/sysctl.conf
# vi /etc/sysctl.conf
строку
net.ipv4.ip_forward = 0
на строку:
net.ipv4.ip_forward = 1

После этого включаем трансляцию адресов NAT чтобы пакеты от клиентской машины попадая на наш выделенный сервер могли уйти в Интернет, ну и, соответственно, возвращались назад.

/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Для VPS на базе OpenVZ команда выглядит так:

/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source xxx.xxx.xxx.xxx

где xxx.xxx.xxx.xxx — это Ip адрес сетевого интерфейса вашего VPS.
Сохраняем конфиг iptables:

iptables-save > /etc/sysconfig/iptables

Перезагружаем OpenVPN и радуемся настроенному VPN.

# service openvpn restart

Более подробно о настройке OpenVPN я писал статье Установка и настройка OpenVPN в CentOS 4. Здесь же описаны основные шаги по установке пакета под centos 6.x

Оригинал dedicatesupport.com/content/nastroika-openvpn-na-centos-6x

Запись опубликована в рубрике *CentOS. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91