Задача: поднять на сервере под управлением 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