Шифруемся VPN'ом
Возникают в жизни иногда такие моменты когда нужно зашифровать интернет-трафик, которым обмениваются два хоста находящиеся в разных точках планеты. Для таких целей очень хорошо подходит решение под названием .
Отбросив в сторону обсуждение мотивов, которые могут сподвигнуть человека на такое решение, бо их может быть великое множество, рассмотрим реализацию на конкретном примере. А вернее на двух конкретных примерах.
В обоих примерах считаем что локально у нас какой-нибудь Windows XP, а удаленная машина, с которой нужно обмениваться шифрованным трафиком это VDS на базе OpenVZ.
Пример первый. Мы хотим выходить в интернет через удаленный конец туннеля.
Ставим openvpn
# apt-get install openvpn
или для красной шапки
# yum install openvpn
Пишем в поддержку хостера, предоставляющего Вам VDS просьбу включить для него tun/tap интерфейсы и поддержку NAT, обычно не отказвают.
Пока ждем — стругаем конфиги для клиентской и серверной части и устанавливаем клиентскую часть на наш локальный компьютер.
Конфиг сервера будет примерно такой, с объяснением основных опций:
port 1194 # порт
proto udp # протокол
dev tun # туннельный интерфейс
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
# Предыдущие четыре строчки это наше шифрование
# о нем ниже
server 10.8.0.0 255.255.255.0 # наша сетка
ifconfig-pool-persist ipp.txt # пул адресов
push «route 10.8.0.1» # маршрут
push «redirect-gateway def1» # делать defaulgate'ом
push «dhcp-option DNS 10.8.0.1» # DNS-сервер
push «dhcp-option WINS 10.8.0.1» # WINS-сервер
# все что push передается клиенту в качестве
# параметров настройки сет
keepalive 10 120 # поддерживать связь
comp-lzo # пожать трафик
user nobody # пользователь
group nogroup # группа
persist-key #
persist-tun
status openvpn-status.log
log /var/log/openvpn.log # лог
verb 6 # детализация лога
Конфиг для клиента такой:
client
dev tun
dev-node test # определяет как называется
# сетевое подключение, можно не указывать
proto udp
remote 2.14.6.6 1194 # адрес и порт на сервере
resolv-retry infinite
nobind
route-method exe
route-delay 2
persist-key
persist-tun
mute-replay-warnings
ca «c:\\vpn\\ca.crt»
cert «c:\\vpn\\client1.crt»
key «c:\\vpn\\client1.key»
ns-cert-type server
cipher BF-CBC
verb 6
mute 20
comp-lzo
Теперь о ключах. В комплекте с OpenVPN идет набор скриптов для создания центра сертификации и генерирования ключей для сервера и клиентов, называется easy-rsa. Создаем необходимые ключи и сертификаты с его помощью.
# cd /etc/openvpn/easy-rsa
# ./vars
# ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-key client1
# ./build-dh
Копируем ca.crt, client1.crt и client1.key на локальный компьютер в директорию c:\vpn, ждем от поддержки хостера сообщения что tun/tap и NAT для VDS активированы.
Запускаем openvpn на сервере
# /etc/init.d/openvpn start
На локальном компьютере тыкаем на свежесозданный конфиг правой кнопкой и выбираем в меню Start OpenVPN with this config
Подключились — хорошо, не подключились — аализируем логи и ищем ошибки.
Последний штрих. Для того чтобы ходить в интернет через тунель нужно настроить NAT на VDS следующим образом.
# /sbin/iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
# /sbin/iptables -A FORWARD -i venet0 -o tun0 -m state \
— state RELATED,ESTABLISHED -j ACCEPT
# /sbin/iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT
Все готово, можно бороздить просторы World Wide Web.
Пример второй. У Вас на локальном компьютере на абстрактном порту, например 9090 слушает некий сервис и Вы хотите чтобы к нему можно было обращаться извне. Настройка OpenVPN будет аналогичной, а вот NAT нужно сделать по-другому.
iptables -t nat -A PREROUTING -p tcp -d 2.14.6.6 --dport 9090 \
— j DNAT --to-destination 10.8.0.2:9090
iptables -t nat -A POSTROUTING -o tap0 -j SNAT --to-source 10.8.0.2
Вот примерно так, ну и конечно объединить вариант тоже никто не мешает.
Решения проверены на практике, работают. Если что-то не работает — ищите ошибки.
Интересное в найденном:
- Встретил намедни ресурс, блог салона моды (да-да, блоги ведут не только интернет-гики). А ведь, действительно, есть, что почитать, от инструкций как правильно погладить рубашку до советов как оправдываться, если вещь купленная в подарок не подошла тому, кому предназначалась. Добавляю в закладки, пригодится при создании имиджа.
- , которую подсказал коллега. Типа погугли за меня. Естественно тоже и активно юзать против тех кто не желает пользоваться поиском.
- Лилея мечту построить собственный дерявянный коттедж за городом периодически почитываю информацию по теме. Вот сегодня еще один ресурс достойный внимания — загородные дома из дерева. Есть каталог проектов, парочку для себя даже приглядел.



Комментариев нет на запись "Шифруемся VPN'ом"
Ваш комментарий может быть первым :) .
Оставить комментарий