OpenVPN: различия между версиями
lor>Cetjs2 м (Откат правок 130.180.218.154 (обсуждение) к версии Cetjs2) |
Admin (обсуждение | вклад) м (1 версия импортирована) |
(нет различий)
|
Текущая версия от 21:39, 27 февраля 2023
Эта статья - заготовка, шаблон. Created by Pinkbyte, 20.06.2011
Что такое OpenVPN?
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-клиенте
- Распространение секретного ключа на новых клиентов должно происходить через уже имеющийся защищенный канал связи (во избежание перехватов, так как при перехвате будут скомпрометированы ВСЕ клиенты)
Парой логин/пароль (как через самописный скрипт, так и с помощью плагинов: PAM, RADIUS и т.д.)
С использованием SSL-сертификатов
Преимущества
- Высокая масштабируемость
- Возможность отзыва скомпрометированных или более ненужных клиентских сертификатов
- Возможность генерации сертификатов на ограниченный срок
Недостатки
- Сложность первоначальной настройки: необходима генерация всей инфраструктуры сертификатов - 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