00-tech-book
.pdfФайл конфигурации подразумевает, что в каталог /etc/openvpn/ клиента были закачены файлы ca.crt, client1.crt и client1.key с сервера. Как их можно безопасно перенести объяснялось выше.
На этом все, настройка OpenVPN-клиента закончена. Запускаем OpenVPN.
# service openvpn start
Пингуем наш VPN-сервер:
# ping 10.10.10.1
PING 10.10.10.1 (10.10.10.1) 56(84) bytes of data.
64 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=4.97 ms 64 bytes from 10.10.10.1: icmp_seq=2 ttl=64 time=3.96 ms 64 bytes from 10.10.10.1: icmp_seq=3 ttl=64 time=2.03 ms
--- 10.10.10.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms rtt min/avg/max/mdev = 2.036/3.658/4.978/1.222 ms
Пингуем других VPN-клиентов если они у вас уже есть (у меня есть):
# ping 10.10.10.10
PING 10.10.10.10 (10.10.10.10) 56(84) bytes of data.
64 bytes from 10.10.10.10: icmp_seq=1 ttl=64 time=0.680 ms 64 bytes from 10.10.10.10: icmp_seq=2 ttl=64 time=0.994 ms
--- 10.10.10.10 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.680/0.837/0.994/0.157 ms
Проверяем, что весь наш трафик ходит через VPN-сервер:
# tracert www.ru
traceroute to www.ru (194.87.0.50), 30 hops max, 40 byte packets
|
|
|
|
|
1 |
10.10.10.1 (10.10.10.1) 0.769 ms 1.486 ms 40.849 ms |
|||
|
|
|
|
|
2 |
192.168.146.2 (192.168.146.2) 40.821 ms 40.791 ms |
40.760 ms |
||
|
|
|
|
|
3 |
www.ru (194.87.0.50) 40.721 ms 40.689 ms 40.659 ms |
|
10.10.10.1 – VPN-сервер
192.168.146.2 – мой шлюз во внешние сети www.ru – пункт назначения для наших пакетов.
Как видим весь трафик проходит через наш VPN-сервер.
Модуль 16. OpenVPN. |
|
241 |
|
|
|
|
|
Windows VPN-клиент
Скачиваем пакет OpenVPN для Windows + OpenVPN GUI (графический интерфейс) и устанавливаем его.
http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe
На этот клиент закачиваем его сертификат и ключ (client2.crt и client2.key) а также сертификат сервера – ca.crt. Все эти файлы я расположил в директории c:\vpn\
В директории C:\Program Files\OpenVPN\config\ создаем конфигурационный файл client.ovpn с таким содержанием:
client
dev tun proto tcp
remote 192.168.146.150 1194 resolv-retry infinite persist-key
persist-tun
ca c:\\vpn\\ca.crt
cert c:\\vpn\\client2.crt key c:\\vpn\\client2.key
comp-lzo verb 3
Внимание! В путях к файлам не опечатка, так и должно быть – по два
бекслеша.
Далее, в системном трее нажимаем правой клавишей мыши на иконку с изображением 2 компьютеров и выбираем пункт “Connect”. Windows-клиент должен подключиться к VPN-серверу и можно работать.
Посмотреть настройки сетевого интерфейса и маршрутов на Windowsмашине можно вот так:
Пуск -> Выполнить -> пишем команду ”cmd” нажимаем Enter ->
ipconfig /all – посмотреть сетевые интерфейсы
route print – посмотреть таблицу маршрутизации
Попингуйте VPN-сервер и сделайте трасировку (tracert) до www.ru
242 |
|
Модуль 16. OpenVPN. |
|
|
|
Добавление клиентов
На сервере заходим в директорию /etc/openvpn/2.0/
# cd /etc/openvpn/2.0/
Генерируем ключ для client3 (имя может быть другим)
# build-key client3
Далее, ca.crt и client3.crt/client3.key переносим на компьютер client3 в директорию /etc/openvpn/ или другой если используем Windows.
Файл конфигурации как у клиентов выше в зависимости от ОС.
Таблица предназначения ключей и сертификатов
Для полноты ясности в таблице ниже приведен список всех файлов которые мы сгенерировали. Секретные файлы держите в дали от посторонних глаз.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Файл |
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Где используется |
|
|
|
|
|
Назначение |
|
|
|
|
|
Секретность |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Сервер + клиенты |
|
Root CA Certificate |
||||||||||||||||||||||||
|
ca.crt |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Нет |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
ca.key |
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Сервер |
Root CA Key |
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Да |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
dh1024.pem |
|
|
Сервер |
|
|
Diffie Hellman parameters |
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Нет |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
Сервер |
|
|
Server Certificate |
|||||||||||||||||||||||||
|
server.crt |
|
|
|
|
|
|
|
|
|
|
|
Нет |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
server.key |
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
Сервер |
Server Key |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Да |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
client1.crt |
|
|
|
|
|
Client1 Certificate |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
Клиент1 |
Нет |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
client1.key |
Client1 key |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
Клиент1 |
Да |
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
На все последующие файлы вида clientN.* распространяются такие же условия, что и на client1.*
Конфигурационный файл openvpn.conf на Linux VPN-сервере
Самые важные и популярные опции используемые в настройке VPNсервера.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local |
|||||||||||||||
|
|
|
|
Позволяет задать IP-адрес на котором нужно |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
слушать входящие соединения. Если эта опция |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
в файле не определенна то принимаются |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
соединения на всех интерфейсах; |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
Официальный порт OpenVPN – 1194 и менять его |
||||||||||
port |
|||||||||||||||
|
|
|
|
|
|
|
не стоит; |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
proto |
|
Какой протокол использовать, я предпочитаю tcp; |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Модуль 16. OpenVPN. |
|
243 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dev |
|
|
|
|
|
|
|
|
|
Устройство которое будем использовать. tun |
|
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
– создает маршрутизируемый IP-тунель, tap – |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
создает ethernet (L2) тунель, который может |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
использоваться если |
все клиенты в одной |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
подсети; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
dev-node |
|
|
|
|
|
|
|
В Windows нужно указать имя адаптера; |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ca |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Расположение SSL/TLS Root Certificate; |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задает расположение сертификата сервера; |
|||||||||||||||||||||||
|
cert |
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
key |
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задает расположение ключа сервера; |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
dh |
|
|
|
|
|
|
|
|
Задает расположение |
Diffie Hellman parameters |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
файла; |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
server |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
Задает VPN-сеть, VPN-сервер получит самый |
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
первый IP-адрес в этой сети; |
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
ifconfig-pool-persist |
Опция определяет файл в котором будут |
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
храниться значения |
client <-> |
VPN IP-адрес, |
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
в случае перезагрузки VPN-сервера клиенты |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
получат теже самые IP-адреса которые у них |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
были до этого; |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
server-bridge |
|
|
|
|
|
|
|
|
|
|
|
Конфигурирование |
ethernet |
бриджинга. |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Бриджинг позволяет на одном физическом |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
интерфейсе объединить несколько виртуальных |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TAP интерфейсов, по сути реализуя физический |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ethernet switch. При использование моста |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
между двумя сетями, обе сети выглядят как |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
одна большая, это позволяет программам |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
широковещательной передачи данных работать |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
через такой VPN-туннель; |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
push “route ...” |
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Опцияпозволяетотправитьклиентуинформацию |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
о маршрутах. Маршрут помещается в таблицу |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
маршрутизации клиента; |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
client-config-dir ccd |
|
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
Задает директорию с файлами сетевых настроек |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
для клиентов. К примеру если мы захотим |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
назначить клиенту client1 (Certificate Common |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Name = client1) фиксированный IP-адрес, делаем |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
следующее: |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
openvpn.conf: |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
client-config-dir ccd |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
route 10.10.10.0 255.255.255.0 |
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ccd/client1: |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ifconfig-push 10.10.10.1 10.10.10.2 |
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
|
Модуль 16. OpenVPN. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
push «redirect-gateway” |
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
Опция назначает шлюз по умолчанию для |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
клиентов. Старый маршрут будет удален. С |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
опцией def1 (push «redirect-gateway def1”) |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
старый маршрут будет просто заменен, без |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
удаления из таблицы маршрутизации. Если VPN- |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сервер и клиенты в одной подсети то пригодится |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
опция local (push «redirect-gateway local def1»); |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
push «dhcp-option DNS ...” |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
Назначение DNS-сервера клиентам; |
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
push «dhcp-option WINS ...” |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
|
|
|
|
Назначение WINS-сервера клиентам; |
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
client-to-client |
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
Разрешать ли видить клиентам друг друга, по |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
умолчанию они видят только сервер; |
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
duplicate-cn |
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Позволяет разрешить подключаться к VPN- |
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
серверу клиентам с одинаковыми ключами и |
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сертификатами. Рекомендуется чтобы у каждого |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
клиента была своя пара ключ/сертификат; |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
keepalive 10 120 |
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Пинговать противоположный конец |
туннеля |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
каждые 10 секунд, при отсутствие встречных |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
пингов в течение 120 секунд считать соединение |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
потерянным и запускать пересоединение; |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
tls-auth |
|
|
|
Для максимальной безопасности |
можно |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
воспользоваться функционалом SSL/TLS и |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
создать «HMAC firewall» для борьбы с DOS- |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
атаками и UDP port flooding. Для этого |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
необходимо сгенерировать ключ, которые будет |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
на сервере и клиенте. |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# openvpn --genkey --secret ta.key |
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
На сервере строчка в конфигурационном файле |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
должна быть такой: |
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tls-auth ta.key 0 |
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
на клиенте: |
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tls-auth ta.key 1 |
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Файл является секретным. |
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
cipher |
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
Позволяет задать криптографический шифр. По |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
умолчанию используется Blowfish и менять его |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
врядли вам захочется; |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
comp-lzo |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
Включение компрессии VPN линка. |
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
max-clients |
|||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
Максимальное количество клиентов на VPN- |
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сервере одновременно; |
|
|
|
|
|
|
|||||||||||||||||||
|
user |
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
Пользователь и группаот которыхбудет работать |
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
group |
|
OpenVPN; |
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Модуль 16. OpenVPN. |
|
245 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
persist-tun |
|
|
|
|
|
|
|
|
Не закрывать |
и переоткрывать TUN/TAP |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
устройство или запускать/отключать скрипты |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
через |
|
|
|
|
|
сигнал или --p |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SIGUSR1 |
|
ing-restart (на |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
деле лучше использовать keepalive); |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
persist-key |
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Не перечитывать файлы ключей через |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
SIGUSR1 |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сигнал или -- |
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
ping-restart; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В этот файл будет сохраняться текущая |
|||||||||||||||||||||
status |
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
информация по статусу VPN-соединений и |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
обновляться каждую минуту (файл расположен |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
в /etc/openvpn/); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
log |
|
|
|
|
|
|
Расположение log-файла, при старте OpenVPN |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
он будет очищаться от старых записей; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
log-append |
|
|
|
|
|
|
Расположение log-файла, при старте OpenVPN |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
он будет пополняться свежими записями; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
verb |
Опция задает уровень журналирования в log- |
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
файл: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
0 – только фатальные ошибки; |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
4 – разумно для общего использования; |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
5 и 6 – позволяют обнаружить проблемы с |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
подключениями; |
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
9 – максимальная отладочная информация; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
mute |
|
|
|
Ограничивает |
журналирование однотипных |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
сообщений в log-файл, по умолчанию не более |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
20 сообщений одной категории, остальные будут |
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
отбрасываться; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конфигурационный файл client.conf на Linux-клиентах
Опции которые можно встретить в настройках клиента. Некоторые являются
обязательными.
|
client |
|
|
|
|
|
|
|
|
Сообщает о том, что данная машина является VPN- |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
клиентом |
|
|
|
|
|
|
|
|
|
remote |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
Задает IP-адрес VPN-сервера и порт подключения. Серверов |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
может быть указано много; |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
remote-random |
|||||||||||||||||
|
|
|
|
|
Позволяет случайным образом выбрать сервер для |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
подключения определенный в опции remote. Это |
сделано |
|||||||||
|
|
|
|
|
|
|
|
|
|
для распределения нагрузки |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||||||||
|
resolv-retry infinite |
|
|
Постоянно резолвить hostname VPN-сервера, это полезно |
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
на клиентах подключенных к сети на непостоянной основе |
, |
|
|
|||||||
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
таких как ноутбуки; |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
|
Модуль 16. OpenVPN. |
|
|
|
|
nobind |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
Использовать динамический порт на клиенте, актуально |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
только для UDP, так как при использование TCP порт всегда |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
динамический; |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
http-proxy |
Позволяет задать http-proxy для подключения кVPN-серверу; |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
mute-replay-warnings |
||||||||||||||||||||||
|
|
|
|
Беспроводные сети очень много дублируют пакеты, опция |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
позволит ограничить это; |
|
|
|
|
|
|
||||
|
ns-cert-type |
|
|
|
|
|
|
|||||||||||||||
|
|
Опция для увеличения безопасности, она позволяет гаран- |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
тировать что сервер, к которому происходит подключение |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
действительно им является. Для этого будет проверено поле |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
nsCertType, которое должно содержать значение “server”; |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Конфигурационный файл client.ovpn на Windows-клиенте
Почти тоже самое что и на Linux-клиентах. Не будет user/group опций и пути к файлам с учетом файловой системы Windows.
Также, для того чтобы OpenVPN-клиент заработал в Windows Vista в конфигурационный файл клиента нужно добавить следующее:
route-method exe route-delay 2
В процессе настройки не забывайте, что если вы используете firewall то OpenVPN необходимо в нем разрешить. Делается это примерно вот так:
#Allow TUN interface connections to OpenVPN server iptables -A INPUT -i tun+ -j ACCEPT
#Allow TUN interface connections to be forwarded through other interfaces iptables -A FORWARD -i tun+ -j ACCEPT
#Allow TAP interface connections to OpenVPN server
iptables -A INPUT -i tap+ -j ACCEPT
# Allow TAP interface connections to be forwarded through other interfaces iptables -A FORWARD -i tap+ -j ACCEPT
Резюме
Мы установили и настроилиVPN-сервер и несколькоVPN-клиентов. Клиент может использовать ОС Linux или Windows, мы знаем как производить настройку
на обеих ОС. Весь трафик клиентов проходит через VPN-сервер, благодаря заданию опции redirect-gateway и назначению маршрута по умолчанию.
Домашнее задание
Развернуть три виртуальные машины – VPN-сервер и два клиента, Linuxклиент и Windows-клиент. Произвести настройку виртуальных машин в
соответствие с руководством в этом модуле. Убедиться, что все работает.
Модуль 16. OpenVPN. |
|
247 |
|
|
|
Отказоустойчивый кластер
Кластер – это группа компьютеров объединенных в одну систему для выполнения совместных вычислений.
Есть три вида кластеров:
1. Отказоустойчивые кластеры (HA, High-availability clusters) – задача таких кластеров обеспечивать бесприбойность работы сервисов, которые он обслуживает.Приреализациитакогокластеранеобходимозадействовать не менее двух серверов, каждая нода дублирует другую и в случае ее выхода из строя сразу же берет работу на себя и обслуживает запросы;
2. Высокопроизводительные кластеры (HPC, High-performance clusters)
– задача таких кластеров увеличивать скорость вычисления. Все вычисления разбиваются на параллельно выполняющиеся потоки. Программное обеспечение должно поддерживать работу в таком
режиме;
3.Кластеры с распределением нагрузки (LB, Load balancing clusters) – принцип работы таких кластеров заключается в распределение нагрузки. Входящие запросы проходят через первичный узел (Director) который занимается распределением нагрузки между вычислительными нодами.
В этом модуле мы сделаем отказоустойчивый кластер состоящий из двух нод и запустим на нем веб-сервер Apache. Программное обеспечение которое нам понадобится – это DRBD, для зеркалирования разделов между двумя нодами, ведь при выходе одной ноды из строя вторая должна сразу включиться в работу и начать обслуживать запросы. А значит на ней всегда должна быть актуальная версия контента, в этом как раз DRBD нам и поможет, он работает по принципу RAID 1, при записи данных на основной ноде, они сразу же будут записаны и на вторую. Вторая программа – Heartbeat, она занимается интеллектуальной работой, следит за состоянием нод и принимает решения. Подробнее об этих программах ниже.
Принцип работы нашего кластера
Принцип работы отказоустойчивого кластера можно разбить на три этапа.
1. На постоянной основе происходит репликация данных с первичной ноды на вторичную, в этом нам помогает DRBD. Таким образом в любой момент времени контент приложений, на первичной ноде и вторичной полностью идентичен;
2.Для предоставления сервиса используется специально для этого выделенный IP-адрес, shared IP-адрес. Средствами Heartbeat он прописывается как алиас на первичной ноде;
248 |
|
Модуль 17. Отказоустойчивый кластер. |
|
|
|
3.Вслучаевыходаизстрояпервичнойноды,вторичнаянодапереключается в режим первичной и назначает себе shared IP. С этого момента все запросы обслуживает вторичная нода (теперь став первичной). Конечный пользователь не заметит изменений в работе сервиса, так как переключение происходит достаточно быстро + контент является
полностью актуальным.
DRBD
DRBD (Distributed Replicated Block Device) – распределенное и синхронизированное блочное устройство, это программное обеспечение для зеркалирования контента блочных устройств (HDD, partitions, logical volumes...). По своей работе, DRBD очень похож на RAID1, данные на разных нодах также реплицируются в режиме реального времени. В свою очередь для приложений DRBD полностью прозрачен и они даже не догадываются о том, что фактически их данные хранятся на нескольких серверах. Запись данных на носитель может происходит двумя способами – синхронный, когда записывающее приложение уведомляется о том, что запись завершена только после того как данные будут записаны на все ноды, и асинхронный
– это когда записывающее приложение уведомляется сразу после записи на локальном носителе, не дожидаясь аналогичных действий на peer-системе.
Место DRBD в стеке ввода/вывода Linux
Модуль 17. Отказоустойчивый кластер. |
|
249 |
|
|
|
Программы входящие в состав пакета DRBD
drbdadm Основная программа администрирования DRBD, все параметры она получает из конфигурационного файла /etc/drbd.conf. drbdadm выступает в качестве фронтенда для такие программ как drbdsetup и drbdmeta;
drbdsetup Программа конфигурирования модуля DRBD, параметры задаются из командной строки что делает программу гибкой, но повышает ложность для новичков, используется редко
drbdmeta Программа позволяет создавать, резервировать и восстанавливать DRBD meta data structures, используется редко.
Для описания устройства хранения (storage) используется понятие ресурса, которое описывает все его аспекты, такие как:
Имя ресурса – имя не должно содержать пробелы, в последствие мы будет использовать это имя чтобы ссылаться на какое либо устройство.
DRBD устройство – это виртуальное блочное устройство управляемое DRDB. Ассоциированное блочное устройство всегда именуется как /dev/drbdm, где m – младший номер устройства, который начинается с 0. Старший номер устройства равняется 147.
Disk configuration – физический диск или раздел содержащий данные.
Network configuration – IP-адрес и порт дублирующей ноды.
В DRBD каждый ресурс играет свою роль, - первичную (primary) или вторичную (secondary). В случае если DRBD устройство является primary, оно может читать и записывать данные без ограничений, создавать и монтировать файловые системы и т.д.
Если DRBD устройство является secondary то оно получает все обновления данных с primary (любые добавления, изменения или удаления данных) но не дает прямой доступ к устройству. То есть приложения не смогут читать и писать данные на устройство. Роль ресурса может изменяться вручную или автоматически.
DRBD поддерживает три режима репликации.
Protocol A. Протокол асинхронной репликации, данные на primary node считаются полностью записанными тогда, когда запись завершается на локальном носители и пакет отправлен в TCP буфер отправки. Этот режим может повлечь за собой потерю данных, если сбой произойдет раньше чем данные будут продублированы на вторичной ноде.
Protocol B. Протокол полусинхронной репликации (Memory synchronous),
250 |
|
Модуль 17. Отказоустойчивый кластер. |
|
|
|