Настройка VPN на примере openvpn (сервер FreeBSD, клиенты на Ubuntu и Windows XP)

Настройка сервера.

Снача устанавливаем порт для этого заходим в:

------------------------------

cd /usr/ports/security/openvpn

------------------------------

и выполняем:

------------

make install

------------

При появлении окна настройки оставляем все как есть.

Сперва нужно отредактировать /etc/rc.conf и добавить следующую строчку:

---------------

vi /etc/rc.conf

---------------

а если кто не умеет через vi тогда набираем:

---------------

ee /etc/rc.conf

---------------

добавляем:

--------------------

openvpn_enable="YES"

--------------------

Теперь создать конфигурационный файл, который разместим в /usr/local/etc/ в папке openvpn которую нужно создать:

------------------

cd /usr/local/etc/

mkdir openvpn

cd openvpn

touch openvpn.conf

vi openvpn.conf

------------------

Пример рабочего конфигурационного файла:

------------------------------------------------------

dev tun

# подсеть и маска сервера которые будут созданы при подключении,

# сервер получит айпи 10.1.0.1 с маской 255.255.255.0 а клиент свой IP

# из этого диапазона например 10.1.0.6 (а точнее такой и будет).

server 10.1.0.0 255.255.255.0 # предполагая что у вас за сервером на внутренней сетевой (192.168.1.1)

# сидит сеть 192.168.1.0 соответственно вам нужно для получения к ней

# доступа добавить запись в таблицу маршрутизации.

push "route 192.168.1.0 255.255.255.0"

tls-server

ca ca.crt

cert server.crt

key server.key

dh dh1024.pem

proto tcp

port 5000

comp-lzo

keepalive 10 120

verb 4

------------------------------------------------------

Создание сертификатов.

скопируем в свою домашнюю папку копию оригинала:

---------------------------------------------------------

cp -r /usr/local/share/doc/openvpn/easy-rsa /home/myuser/

---------------------------------------------------------

и зайдем в нее:

------------------------

cd /home/myuser/easy-rsa

------------------------

Теперь отредактируем файл vars можно конечно этого не делать по потом при создании ключей придется вбивать много

повторяющейся информации:

-------

vi vars

-------

отредактируем следующие строки:

----------------------------

export KEY_COUNTRY=KG

export KEY_PROVINCE=NA

export KEY_CITY=BISHKEK

export KEY_ORG="phn.nm.ru"

export KEY_EMAIL="phn@nm.ru"

----------------------------

думаю переводить не нужно забиваем то что соответствует вам.

Так как в FreeBSD по умолчанию оболочка tcsh следующие скрипты работать не будут чтобы это обойди набираем:

-----

sh

-----

Теперь можно создать сертификаты, а потом уже вернуться в tcsh, вбиваем следующее и смотрим внимательно на пробел в

первой команде после точки:

-----------

. vars

./clean-all

./build-ca

-----------

вот на этом этапе вам и помогут заранее введенные данные в файле vars в тех строчках где они были введены они теперь стоят по умолчанию вам достаточно вбивать Enter, остается заполнить только следующие строки:

----------------------------------------------------------------

Organizational Unit Name (eg, section) []: office

Common Name (eg, your name or your server's hostname) []: server

----------------------------------------------------------------

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

-------------------------

./build-key-server server

-------------------------

Заполняем так же, плюс еще одна строка, оставляем ее пустой, а далее понятно:

----------------------------------------------------------------

Organizational Unit Name (eg, section) []: office

Common Name (eg, your name or your server's hostname) []: server

A challenge password []:

An optional company name []: na

Sign the certificate? [y/n]: y

1 out of 1 certificate requests certified, commit? [y/n]

: y

----------------------------------------------------------------

Должны получить следующее:

--------------------------------------

Write out database with 1 new entries

Data Base Updated

--------------------------------------

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

-------------------

./build-key client

-------------------

Отвечаем на вопросы так же кроме следующих вопросов:

---------------------------------------------------------------

Organizational Unit Name (eg, section) []:client

Common Name (eg, your name or your server's hostname) []:client

---------------------------------------------------------------

Создадим параметр Diffie Hellmans

-----------

./build-dh

-----------

Возвращаемся в tcsh вводом команды:

------

exit

------

ПРОШУ обратить внимание на то где писалось server и client, при создании ключей, вместо этих слов могут быть ваши но они должны быть одинаковы именно в этих местах и не совпадать соответственно, а проще наберите как в примере, а

когда заработает экспериментируйте на здоровье.

Теперь скопируем все необходимые и не очень ключи в /usr/local/etc/openvpn:

------------------------------------

cp -r keys/* /usr/local/etc/openvpn/

------------------------------------

А если конкретно то нам нужны только следующие ключи для сервера:

ca.crt

server.crt

server.key

dh1024.pem

На этом простая конфигурация сервера закончена, перегружаем сервер и переходим к клиенту.

Примечание для начинающих, дабы у вас не возникло проблем на начальном этапе, то например внутренняя сеть за сервером 192.168.1.0, и внутренняя сетевая на вашем VPN 192.168.1.1 то для компьютеров во внутренней сети 192.168.1.1 должен быть и шлюзом. Можно и по другому но здесь есть свои нюансы, дабы вы не столкнулись с ситуацией что вы подключились, и пингуете даже внутреннюю сетевую а именно 192.168.1.1 а дальше ничего, здесь свои нюансы, дабы вы на решали не те проблемы сделайте по примету а затем когда заработает уже по своему.

Установка клиента на MS Windows XP.

Сначала скачиваем и устанавливаем GUI версию клиента, который можете найти здесь:

http://www.openvpn.se

Во время установки не мудрствуйте и устанавливайте все по умолчанию. После установки нужно скопировать ключи с сервера:

ca.crt

client.crt

client.key

в папку C:Program FilesOpenvpnconfig (можете воспользваться для этого флешкой, дискетой, думаю про электронную почту вы не подумали)

Создайте конфигурационный файл:

openvpn.ovpn файл в C:Program FilesOpenvpnconfig и вставте следующее:

-------------------------

dev tun

client

remote 82.144.201.76 5000

tls-client

ca ca.crt

cert client.crt

key client.key

proto tcp-client

comp-lzo

verb 4

-------------------------

Отключите файэрвол на новом интерфейсе:

В Windows XP, Панель управления -> Брандмауэр Windows -> Дополнительно. В параметрах сетевого подключения уберите галочку с интерфейса TAP-Win32, правда он может там быть записан как Подключение по локальной сети №Х.

Теперь правый клик на OpenVPN иконке на панели задач и выбираем "connect".

Подключившись попробуйте пропинговать удаленный интерфейс и удаленную сеть. Запустите на сервере tcpdump чтобы проверить трафик:

--------------------

tcpdump -tt -i tun0

--------------------

За дополнительной информацией идем на офсайт:

OpenVPN http://www.openvpn.net

Настройка клиента под Ubuntu Linux 7.04.

Заходим в Система ->Администрирование -> Менеджер пакетов Synaptic в разделе Все выбираем для установки пакет openvpn.

Затем помещаем в директорию /etc/openvpn/

наши файлы те же что и использовали при настройке клиента под windows:

ca.crt

client.crt

client.key

Ну и конечно файл конфигурации

openvpn.ovpn

и в консоли выполняем от имени пользователя root а именно используя (sudo -s) команду:

-------------------------------------------

openvpn --config /etc/openvpn/openvpn.ovpn

-------------------------------------------

ежели у вас возникла ошибка о невозможности найти какой-то ключ или невозможности его загрузить то вам нужно явно прописать нахождение ключей вот пример 2 варианта конфигурационного файла:

----------------------------

dev tun

client

remote 82.144.201.76 5000

tls-client

ca /etc/openvpn/ca.crt

cert /etc/openvpn/client.crt

key /etc/openvpn/client.key

proto tcp-client

comp-lzo

verb 4

----------------------------

Обновлено: 12.03.2015