Задача: поднять на сервере под управлением Debian lenny VPN сервер на 
базе OpenVPN для выхода посредством этого сервера в интернет.
Выгоды от этого много, все не перечислишь, от использования реального ip 
в интернете, до обхода ограничений провайдера и сокрытия от него 
трафика. Так же кроме шифрования трафик сжимается, что экономит его.
Устанавливаем OpenVPN и все его зависимости:

     aptitude install openvpn

Переходим в директорию с утилитами для создания ключей и сертификатов:

     cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

В файле vars можно изменить данные для подписи ключей под себя, 
редактируем последние 5 строчек:

     export KEY_COUNTRY=»RU»
     export KEY_PROVINCE=»RU»
     export KEY_CITY=»Kirov»
     export KEY_ORG=»Personal service»
     export key_email=�...@gealex.ru»

Остальные переменные оставляем как есть.
Инициализируем переменные и очищаем от старых сертификатов и ключей 
папку keys и создаем серийный и индексные файлы для новых ключей:

     ./vars
     ./clean-all

В директории /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/ 
появляются серийный и индексный файлы.
Создаем ключи, отвечая на предлагаемые вопросы (можно не отвечать, а 
жать enter):

     ./build-ca # Создаем Certificate Authority для сервера
     ./build-key-server server # Создаем сертификат X.509 для сервера
     ./build-dh # Создаем ключ Диффи Хельман

В папке ./keys появляется созданные ключи, нужные ключи нужно 
скопировать в директорию /etc/openvpn/:

     cp ./keys/ca.crt /etc/openvpn
     cp ./keys/server.crt /etc/openvpn
     cp ./keys/server.key /etc/openvpn
     cp ./keys/dh1024.pem /etc/openvpn

Создаем ключи для клиентов:

     ./build-key-pkcs12 client1
     ./build-key-pkcs12 client2

из папки ./keys забираем файл client1.p12 и  client1.p12 и отдаем клиентам.
Настраиваем серверСоздаем фал конфигурации из фала примера:

     zcat 
/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > 
/etc/openvpn/server.conf

Настройки которые включены по умолчанию в файле /etc/openvpn/server.conf:

     port 1194
     proto udp # более быстрый и меньше генерирует служебный трафик, но 
не гарантирует доставку пакета, кому нужна работа без потерь можно 
влючить tcp proto tcp
     dev tun # используем тип тунеля для интернет, tap для eternet
     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
     keepalive 10 120 # пинг каждые 10 секунд для поддержания канала связи
     comp-lzo # сжатие трафика
     persist-key
     persist-tun
     status openvpn-status.log #лог
     verb 3 # уровень болтливости записей в логи
     # Добавил опции:
     local 111.111.111.111 # ip на котором будет слушать порт openvpn сервер
     push «redirect-gateway» # при подключении клиента у него 
устанавливается шлюз по умолчанию на этот сервер

Конфиг сохраняем
Стартуем OpenVPN сервер:

     /etc/init.d/openvpn start

Далее, для того что бы клиенты использовали интернет нужно настроить NAT:

     iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT # разрешаем клиентом 
из сети 10.8.0.0/24 обращатся в интернет.
     iptables -A FORWARD -d 10.8.0.0/24 -m state –state 
ESTABLISHED,RELATED -j ACCEPT # разрешаем отдавать пакеты из интернета 
клиентам сети 10.8.0.0/24.
     iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT –to-source 
111.111.111.111 # с этого ip пользователи будут ходить в интернет.

После перезагрузки данные правила утратят свое действие, поэтому 
добавляем их в файл /etc/rc.local или в правила iptables
Еще осталось включить форвардинг в ядре
в файле /etc/sysctl.conf раскомментируем строчку: net.ipv4.ip_forward=1
Чтобы не перезагружаться сообщаем ядру о включении форвардинга:

     echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

Все, настройка серверной части закончилась.


Настройка клиентов:Windows XP

Качаем и устанавливаем openvpn для windows отсюда 
http://openvpn.se/download.html , на момент написания файл – 
openvpn-2.0.9-gui-1.0.3-install.exe
Перезагружаем систему
В директорию c:\Program Files\OpenVPN\config\ вложим ключ client1.p12 
(клиентский ключ который сгенерировали).
Там же создаем текстовый файл с названием client.ovpn и вписываем туда 
параметры:

     remote 111.111.111.111 1194 # ip и порт нашего сервера
     client
     dev tun
     ping 10
     comp-lzo
     proto udp # или proto tcp, в зависимости от настроек сервера
     tls-client
     pkcs12 client1.p12 #имя файла клиентского ключа
     verb 3
     pull

Далее кликаем правой кнопкой мыши на значке openvpn в трее и выбираем 
connect. Если все было настроено правильно, произойдет соединение с 
сервером и можно пользоваться интернетом. Программы для интернета 
настраивать не нужно, на всякий случай проверим что весь трафик идет 
через сервер – заходим на сайт http://internet.yandex.ru/ и смотрим ip, 
он должен быть как у нашего сервера.

Linux
Все настройки производим от пользователя root.
Устанавливаем OpenVPN. В директорию /etc/openvpn/вкладываем файл ключа 
клиента VPN, созданный на сервере.
Создаем в этой директории файл client.conf и вписываем туда параметры 
как для клиента windows в файле client.ovpn. Сохраняем.
Запускаем OpenVPN

     /etc/init.d/openvpn start

Все мы в интернете через OpenVPN.

28.10.2010 13:21, Vladimir пишет:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Добрый день, уважаемые.
>
> Подскажите, как решить правильно задачу: существует OpenVPN-сервер,
> авторизация на основе сертификатов, весь набор имущества есть --
> сертификаты, ключи.
> Установил опенвпн и плагин к менеджеру, появилась возможность создать
> впн-соединение по этому протоколу. Настраиваю, пытаюсь подключиться --
> не получается, ругается на отсутствие сертификата. Захожу в настройку
> соединения -- на позициях, где пишутся ключи, получается какая-то чушь.
> Т. е., допустим, был у меня сертификат cert.pem, личный ключ key.pem, я
> их выбрал. Закрыл-открыл настройку соединения -- вместо cert.pem выбран
> каталог "Загрузки", вместо файла ключа -- какой-нибудь другой файл,
> который рядом валялся.
> Как побороть и в каком направлении копать? Очень не хотелось бы
> использовать метод прямого написания конфиг-файла и запуска демона vpn...
>
> - --
> С уважением,
> Владимир
>
> xmpp: t...@jabber.rndfido.net
>
> GnuPG Key ID 0x86502F95
> GnuPG Key Fingerprint: 32E1 4D6E 318D EE0A 4E7A 9429 203E 7AFA 8650 2F95
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iEYEARECAAYFAkzJQK0ACgkQID56+oZQL5Xp+QCffoLEVGgFWVrOk75QSsBfZrgM
> 3kAAn1SlhVEmM1Xi+yM++Vu6pQ00/XCN
> =uZBF
> -----END PGP SIGNATURE-----
>

-- 
С уважением,
Alex Emergy

-- 
ubuntu-ru mailing list
ubuntu-ru@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-ru

Дати відповідь електронним листом