OpenVPN - dim13/lor GitHub Wiki
Эта статья - заготовка, шаблон. Created by Pinkbyte, 20.06.2011
OpenVPN — это программное обеспечение для построения виртуальных частных сетей (Virtual Private Network, подробнее тут). Распространяется под лицензией GNU GPL. Официальный сайт проекта — http://openvpn.net
OpenVPN в Linux реализует туннели через драйвер TUN/TAP. Вследствие этого поддерживаются как стандартные туннели 3-го уровня (IP-туннели, tun), так и туннели 2-го уровня(Ethernet-туннели, tap). Преимуществом Ethernet-туннелей является возможность работы по ним служб, использующих широковещательную рассылку(broadcasting), а также других протоколов, кроме IP(например IPX). Однако Ethernet-туннели в OpenVPN обладают немного меньшей управляемостью (нельзя фильтровать трафик между двумя VPN-клиентами на сервере). Поэтому чаще используются IP-туннели
Аутентификация в OpenVPN возможна несколькими способами:
Преимущества:
- Легкость установки и развертывания
Недостатки
- Низкая масштабируемость
- Низкий уровень безопасности (утечка ключа приведет к возможности полностью расшифровать содержание всех перехваченных ранее сеансов)
- Секретный ключ хранится в простом файле на каждом VPN-клиенте
- Распространение секретного ключа на новых клиентов должно происходить через уже имеющийся защищенный канал связи (во избежание перехватов, так как при перехвате будут скомпрометированы ВСЕ клиенты)
Преимущества
- Высокая масштабируемость
- Возможность отзыва скомпрометированных или более ненужных клиентских сертификатов
- Возможность генерации сертификатов на ограниченный срок
Недостатки
- Сложность первоначальной настройки: необходима генерация всей инфраструктуры сертификатов - CA, серверного и клиентских сертификатов на каждого клиента)
Сервер (Linux, тип туннеля - TAP, сертификаты и ключи - в папке /etc/openvpn/serv)
cd /etc/openvpn/serv
port 1194
proto udp
dev tap_vpn
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server-bridge 192.168.3.1 255.255.255.0 192.168.3.50 192.168.3.250
ifconfig 192.168.3.1 255.255.255.0
keepalive 10 60
client-to-client
comp-lzo
persist-key
persist-tun
mssfix 1300
float
Клиент (Linux, тип туннеля - TAP, сертификаты и ключи - в папке /etc/openvpn/home):
cd /etc/openvpn/home
client
proto udp
dev tap
ca ca.crt
dh dh1024.pem
cert phantom.crt
key phantom.key
remote server.local 1194
comp-lzo
persist-key
persist-tun
keepalive 10 60
float
resolv-retry infinite
nobind
ns-cert-type server
pull
cd - смена текущей директории. Полезна для использования относительных путей в остальных конфигурационных файлах.
proto - тип транспортного протокола, в который будут инкапсулированы IP-пакеты. Может принимать значения tcp и udp