понедельник, 5 января 2015 г.

Весь трафик через OpenVPN сервер

Понадобилось мне скрыть свое местонахождение для всего трафика, первым в голову пришел вариант с OpenVPN сервером и решил реализовать, вот краткая заметка о настройке.

Я уже писал о настройке OpenVPN сервера, но тогда задача стояла только связать несколько компьютеров в одну сеть, основная часть описана в этой заметке. Но я бегло накидаю команды для сетапа сервера, за пояснениями можно обратиться к той заметке.

Установка OpenVPN сервера на Ubuntu 12.04

# apt-get update
# apt-get install openvpn -y
# mkdir /etc/openvpn/easy-rsa
# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
# vim /etc/openvpn/easy-rsa/vars
# cd /etc/openvpn/easy-rsa
# source vars
# ./clean-all
# ./build-ca



# ./build-key-server server1
# ./build-dh
# cd keys/
# cp ca.crt dh1024.pem server1.crt server1.key /etc/openvpn
# cd /etc/openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
# gzip -d server.conf.gz
# vim server.conf
Изменим:
port 1195 (что бы сразу не палился стандартный 1194 порт, немного усложним задачу хакеров в поиске OpenVPN сервера).
и главное, что добавим это директиву: push redirect-gateway
Данная директива, как раз и означает, что весь трафик клиента будет направлен через OpenVPN сервер (он просто редактирует route и добавляет нужные записи).

И запустим наш сервер:
# /etc/init.d/openvpn start

Сгенерируем сертификат и ключ для клиента:
# cd /etc/openvpn/easy-rsa/
# source vars
# ./build-key client1

Настроим NAT, что бы трафик ходил через сервер:
# iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
# iptables -A FORWARD -d 10.8.0.0/24 -m state -state ESTABLISHED,RELATED -j ACCEPT
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT -to-source IP.IP.IP.IP 

Что бы данные правила сохранились после перезагрузки, добавим данные правила в /etc/rc.local.

И включим форвардинг пакетов в ядре отредактировав файл:
# vim /etc/sysctl.conf 
и раскомментируем строчку: net.ipv4.ip_forward=1

И что бы не перезагружаться лишний раз, применим данные изменения:
# echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

Скопируем client1.crt, client1.key, ca.crt на клиентский компьютер.

Настройка OpenVPN клиента на Ubuntu:

# sudo apt-get install openvpn
и создадим конфигурационный файл:
# cd /etc/openvpn
# vim client.conf
client
dev tun
proto udp
remote IP.IP.IP.IP Port 
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.cer
cert client1.cer
key client1.key
comp-lzo
verb 3

И теперь просто запустим OpenVPN клиент:
# /etc/init.d/openvpn start

Проверить свой ip можно например с помощью сайта: http://2ip.ru/

Полезные ссылки:
http://www.opennet.ru/base/sec/openvpn_server.txt.html

Комментариев нет:

Отправить комментарий