Deadlock condition

Как я поднимал сервер-клиент VPN.

И так начнем, что нам для начало нужно, у меня все это тестировалась на двух ОС (Windows 7, Ubuntu 10.4).
Для начало посмотрим как поднимается сервер OpenVPN (надеюсь вы уже ознакомлены с термином VPN и для чего она нужна).

Server VPN (Ubuntu 10.4).

Пакет можно установить через :
apt-get install openvpn или aptitude openvpn.
Так как VPN использует SSL шифрование, нам надо еще установить OpenSSL, хотя этот пакет устанавливается по умолчанию но все равно на всякий пожарный установим его 
apt-get install openssl или aptitude openssl. 

После этого заходим в каталог или можно сразу туда же переключиться.
user@ubuntu: cd /etc/openvpn
Здесь же создаем конфигурационный файл для сервера /etc/openvpn/server.conf:

port 1194
proto udp
dev tun
;dev-node tap0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh1024.pem
server 192.168.2.0 255.255.255.0 # vpn subnet
ifconfig-pool-persist ipp.txt
push "route 192.168.1.0 255.255.255.0" # home subnet
;duplicate-cn
keepalive 10 120
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
;status openvpn-status.log
;log-append openvpn.log
verb 4
mute 20
client-to-client
client-config-dir /etc/openvpn/ccd
route 192.168.1.0 255.255.255.0

Примечание: при загрузке системы автоматически поднимаются все VPN соединения, для которых в папке /etc/openvpn есть соответствующие файлы с расширением .conf.

Теперь необходимо создать ключи и сертификаты для шифрования и авторизации:
Соответствующие скрипты для этого находятся в папке /usr/share/doc/openvpn/examples/easy-rsa/2.0

Создаем CA (авторитетный сертификат):
user@ubuntu: cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
sudo bash
. ./vars
./clean-all
./build-ca

ВНИМАНИЕ: ПРИ ГЕНЕРАЦИИ СЕРТИФИКАТА НАДО УЧИТЫВАТЬ ЧТО ВЫЗОВ КОМАНДЫ /vars ОТЛИЧАЮТСЯ НА РАЗНЫХ ВЕРСИЯХ ДИСТРИБУТИВА, К ПРИМЕРУ В ВЕРСИИ UBUNTU 8.10 КОМАНДА ВЫЗЫВАЕТСЯ ЧЕРЕЗ ОДНУ ТОЧКУ ./vars В ВЕРСИЯХ UBUNTU 10 И ВЫШЕ ЧЕРЕЗ ТОЧКА ПРОБЕЛ ТОЧКА . ./vars, ЭТО ТОЛЬКО ДЛЯ ЭТОЙ КОМАНДЫ, ИНАЧЕ КОМАНДА НЕ ЗАПУСТИТЬСЯ.

Теперь создадим сертификат и приватный ключ для сервера:

./build-key-server server

Создаём ключ для клиента (если клиентов несколько, процедуру придётся повторить):

./build-key client1

Примечание: для каждого клиента должно быть указано своё уникальное имя (в данном случае client1).

Примечание: если новый клиент создаётся спустя некоторое время, процедура будет выглядеть следующим образом:

cd /usr/share/doc/openvpn/examples/easy-rsa/2.0
source ./vars
./build-key client2

Генерируем параметры Диффи-Хеллмана:

./build-dh

Помещаем следующие файлы в директорию /etc/openvpn/

* ca.crt
* server.crt
* dh1024.pem
* server.key 


Создаем файл /etc/openvpn/ipp.txt в который программа будет помещать IP адреса выданные клиентам клиентов.

Клиент VPN (Windows 7).
Для клиента я скачал установочный пакет с сайта http://openvpn.net/index.php/open-source/downloads.html
Примечание: Все пакеты и программы запускать с админскими правами иначе конфигурационные файлы не загрузятся.
Переходим в папку OpenVPN копируем в папку config все наши с генерированные ключи:


* ca.crt
* client1.crt

* client1.key 

Запускаем OpenVPN GUI в трейе появиться значок программы, правым кликом открываем раздел Edit Config находим участок:

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
;proto tcp
proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote ваш ip 1194

***********************************


# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert client1.crt
key client1.key

Сохраняем конфиг, подключаемся connect :















После запускаем cmd набираем route print  и можем увидеть наши добавленные маршруты VPN.
Удачи в настройках :) будут вопросы пишите...



Comments