Вы здесь

OpenVPN

OpenVPN —Виртуальная частная сеть (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами (используя инфраструктуру открытых ключей PKI) . Она позволяет устанавливать соединения между компьютерами, находящимися за NAT-firewall, без необходимости изменения их настроек.

OpenVPN была создана Джеймсом Йонаном (James Yonan) и распространяется под лицензией GNU GPL.

Установка


Для установки OpenVPN в терминале введите:
sudo apt-get install openvpn

Генерация сертификатов

Сертификаты сервера

Создаем и копируем easy-rsa в папку /etc/openvpn. Это гарантирует, что любые изменения  не будут потеряны, если пакет обновится.
sudo mkdir /etc/openvpn/easy-rsa/
sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Вам также необходимо настроить разрешения в папке easy-rsa для текущего пользователя на создание файлов:
sudo chown -R $USER /etc/openvpn/easy-rsa/

Затем отредактируйте /etc/openvpn/easy-rsa/vars указав данные о принадлежность открытого ключа (организации/частному лицу/... )
nano /etc/openvpn/easy-rsa/vars

меняем умолчательные значения заключенные в кавычки на ваши
пример:
export KEY_COUNTRY="MD"
export KEY_PROVINCE="MD"
export KEY_CITY="Tiraspol"
export KEY_ORG="my home"
export KEY_EMAIL="user@example.com"


Генерация сертификатов сервера:
cd /etc/openvpn/easy-rsa/
source vars
./clean-all

Внимание: данная команда выполняется достаточно медленно даже на очень мощных компьютерах:
./build-dh

./pkitool --initca
./pkitool --server server
cd keys
openvpn --genkey --secret ta.key
sudo cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/

Сертификаты клиентов


Для клиентов вашей VPN также необходимо создать уникальные сертификаты для аутентификации на сервере. Чтобы создать сертификат для одного из клиентов, введите в терминале:
cd /etc/openvpn/easy-rsa/
source vars
./pkitool client1

Скопируйте следующие файлы в папку /etc/openvpn/ клиентской машины:
  • /etc/openvpn/ca.crt
  • /etc/openvpn/easy-rsa/keys/client1.crt
  • /etc/openvpn/easy-rsa/keys/client1.key
  • /etc/openvpn/ta.key
Для файлов сертификата и ключа, лучше всего использовать безопасные методы копирования (используйте утилиту scp или сменные носители).

Пример конфигурации

Конфигурация сервера

Создаем файл конфигурации /etc/openvpn/server.conf:
nano /etc/openvpn/server.conf
и копируем в файл текст:
#Если вы хотите запустить несколько OpenVPN процессов
#на одной машине, используйте различные номера
#свободных портов для каждого процесса.  Вы также должны
#открыть этот порт в вашем файерволе.
port 443 
#протокол, по умолчанию UDP
proto tcp-server
;proto udp

#указание типа интерфейса и режима работы: tun = L3-туннель, tap = L2-туннель
dev tun

#VPN подсеть
#из которой OpenVPN будет выделять адреса клиентам.
#Сервер возьмет себе адрес 10.8.0.1,
#остальные остануться доступными для клиентов.
server 10.8.0.0 255.255.255.0

#Файле  ipp.txt будут храниться соответствие клиента IP адресу
#Если OpenVPN будет остановлен или перезапущен, 
#переприсоединившиеся клиенты смогут получить
#тот же виртуальный IP адрес из пула, что был назначен ранее
ifconfig-pool-persist ipp.txt

#По умолчанию, клиенты могут видеть только сервер.
#Чтобы клиенты могли "видеть" друг друга в сети включаем директиву: 
client-to-client

#SSL/TLS корневой сертификат (ca), 
#сертификат(cert), 
#и частный ключ (key). 
ca ca.crt
cert server.crt
key server.key # Этот файл необходимо строго хранить в секрете

# файл параметров Диффи-Хэлмана
dh dh1024.pem

# Сервер и каждый клиент должны иметь
# копию этого ключа.
# Второй параметр выставляется в '0'
# для сервера и '1' для клиентов.
tls-auth ta.key 0

#криптографический сертификат
cipher DES-EDE3-CBC  # Triple-DES #

#Cжатие на VPN линии.
comp-lzo

После настройки OpenVPN сервера, перезапускаем :
sudo /etc/init.d/openvpn restart

Конфигурация клиента


На клиентской машине установите OpenVPN:
sudo apt-get install openvpn

Создаем файл конфигурации /etc/openvpn/client.conf:
nano /etc/openvpn/client.conf
и копируем в файл текст:
client
remote example.com 443
proto tcp-client
dev tun
resolv-retry infinite
ca  ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
cipher DES-EDE3-CBC
comp-lzo

Перезапускаем OpenVPN клиент:
sudo /etc/init.d/openvpn restart
Метки: