установка и настройка 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 -y openvpn easy-rsa
chkconfig openvpn on #автозапуск
Генерация сертификатов для openvpn
На все вопросы понажимать просто Enter, при генерации сертификатов клиента и сервера там в конце надо будет будет два раза нажать “y” на вопросы “y/n”
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
Настройка 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 клиент и подключаться к серверу.
Небольшой бонус ненужной информации по openvpn
– чтобы просто подключаться по локальной сети openvpn а шлюз для интернет не изменять, в настройках сервера нужно закомментировать
#push "redirect-gateway def1 bypass-dhcp"
– примеры конфигов можно взять из папки /usr/share/doc/openvpn-2.*/sample/sample-config-files/
– пример скрипта для iptables /usr/share/doc/openvpn-2.*/sample/sample-config-files/firewall.sh
– для тестирования сертификаты можно не генерить а взять готовые из rpm-ки так( в одну строчку запустить):
mkdir /etc/openvpn/keys; for i in client.crt client.key dh1024.pem server.key ca.key server.crt ca.crt; do cp /usr/share/doc/openvpn-2.*/sample/sample-keys/$i /etc/openvpn/keys/; done
– для работы openvpn на vps openvz, администратор openvz должен выполнить команды:
vzctl set $CTID --devnodes net/tun:rw --save
vzctl set $CTID --devices c:10:200:rw --save
vzctl set $CTID --capability net_admin:on --save
vzctl exec $CTID mkdir -p /dev/net
vzctl exec $CTID mknod /dev/net/tun c 10 200
vzctl exec $CTID chmod 600 /dev/net/tun
vzctl restart $CTID
– установка openvpn с исходников описана по этой ссылке
Что бы работал полноценный гейт нужно исправить строку:
push “redirect-gateway def1 bypass-dhcp”
на
push “redirect-gateway def1”
Спасибо за пост. Еще интересует настройка мобильных клиентов. Посоветуйте, пожалуйста, хорошый и удобный мобильный OpenVPN клиент ?
OpenVPN for Android