Ubuntu 10.04 i386 + OpenVPN-клиент в NetworkManager - как?
Alex Emergy
alex.emergy на gmail.com
Чт Окт 28 12:40:52 BST 2010
Задача: поднять на сервере под управлением 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=»me на 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: tven на 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