Инструменты пользователя

Инструменты сайта


openvpn_debian_wheezy

Различия

Здесь показаны различия между двумя версиями данной страницы.

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

openvpn_debian_wheezy [2020/03/27 05:42] (текущий)
darkfire создано
Строка 1: Строка 1:
 +====== OpenVPN Debian Wheezy/sid ======
 +<​file>​
 +# aptitude install openvpn
 +# mkdir /​etc/​openvpn/​easy-rsa
 +# cp -R /​usr/​share/​doc/​openvpn/​examples/​easy-rsa/​2.0/​* /​etc/​openvpn/​easy-rsa/​
 +</​file>​
 +Изменяем параметры по умолчанию для сертификатов
 +<​file>​
 +# nano /​etc/​openvpn/​easy-rsa/​vars ​
 +...
 +export KEY_COUNTRY="​US"​
 +export KEY_PROVINCE="​CA"​
 +export KEY_CITY="​SanFrancisco"​
 +export KEY_ORG="​Fort-Funston"​
 +export KEY_EMAIL="​me@myhost.mydomain"​
 +</​file>​
 +Создадим переменные окружения [[bash]], если это не сделать,​ при генерации ключей клиентов переменные будут взяты из /​etc/​openvpn/​easy-rsa/​openssl.cnf а не из файла vars
 +<​file>​
 +# cd /​etc/​openvpn/​easy-rsa
 +# source ./vars
 +NOTE: If you run ./​clean-all,​ I will be doing a rm -rf on /​etc/​openvpn/​easy-rsa/​keys
 +# ./clean-all
 +# ./build-dh
 +</​file>​
 +Создадим сертификат для сервера с именем vpnspar
 +<​file>​
 +# ./pkitool --initca
 +# ./pkitool --server vpnspar
 +</​file>​
 +Создадим сертификат для клиента с именем farm1c. Отдельный ключ для каждого клиента.
 +<​file>​
 +# ./pkitool farm1c
 +</​file>​
 +<​file>​
 +# mkdir /​etc/​openvpn/​keys
 +# cp keys/ca.crt /​etc/​openvpn/​keys
 +# cp keys/​dh1024.pem /​etc/​openvpn/​keys
 +# cp keys/​vpnspar.crt /​etc/​openvpn/​keys
 +# cp keys/​vpnspar.key /​etc/​openvpn/​keys
 +</​file>​
 +В директории ccd хранятся индивидуальные настройки для каждого клиента. Имя файла должно соответствовать имени сгенерированного клиентского сертификата. Файлы конфигурации клиентов являются текстовыми файлами и содержат команды,​ выполняемые сервером при подключении клиентов. Обычно файл клиента содержать команды:​
 +  - добавляет клиенту маршрут к локальной подсети центрального офиса(push "route 192.168.1.0 255.255.255.0"​)
 +  - определяет адрес локальной подсети,​ находящейся за клиентом (например iroute 192.168.2.0 255.255.255.0)
 +  - привязка к статическому IP (ifconfig-push 192.168.14.21 192.168.14.22),​ где ifconfig-push <​IP-адрес клиента>​ <​IP-адрес сервера>​. Выбранные пары IP-адресов,​ во-первых,​ должны быть уникальными,​ во-вторых,​ должны входить в состав последовательных подсетей,​ ограниченных маской /30 (255.255.255.252),​ и, в-третьих,​ должны находиться в пределах пула IP-адресов,​ выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN). ​
 +<​file>​
 +# mkdir /​etc/​openvpn/​ccd
 +# nano ccd/farm1c
 +push "route 192.168.1.0 255.255.255.0"​
 +#push "route 192.168.35.0 255.255.255.0"​
 +# static IP
 +ifconfig-push 192.168.14.21 192.168.14.22
 +#iroute 192.168.2.0 255.255.255.0
 +</​file>​
 +==== server.conf ====
 +
 +Конфигурируем сервер в файле server.conf
 +<​file>​
 +# cp /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​server.conf.gz /​etc/​openvpn/​
 +# gunzip server.conf.gz
 +# nano /​etc/​openvpn/​server.conf
 +</​file><​file bash server.conf>​
 +local ххх.196.98.ххх ​           # IP на котором сервер слушает входящие сообщения
 +port 1194                       # порт на котором сервер слушает входящие сообщения
 +proto udp
 +dev tun
 +# Включение интерфейса управления OpenVPN. Доступен при помощи telnet localhost 7505
 +management localhost 7505
 +
 +ca keys/​ca.crt ​                   # местонахождение самоподписного доверенного сертификата (CA)
 +cert keys/​vpnspar.crt ​            # местонахождение сертификата сервера
 +key keys/​vpnspar.key ​             # местонахождение закрытого ключа сервера
 +dh keys/​dh1024.pem ​               # местонахождение файла параметров Диффи-Хэлмана
 +# Настройка режима сервера и адреса VPN-сети, ​
 +# из которой OpenVPN будет раздавать адреса клиентам.
 +# Сервер возьмет себе 192.168.14.1,​
 +# остальные адреса будут доступны для клиентов.
 +# Каждый клиент сможет связаться с сервером по адресу 192.168.14.1.
 +server 192.168.14.0 255.255.255.0
 +# в файле ipp.txt хранится информация о соединении,​ например на случай обрыва соединения
 +# и его дальнейшего восстановления
 +ifconfig-pool-persist ipp.txt
 +
 +# маршруты которые будут передаваться каждому клиенту.
 +# push - команда OpenVPN, передаваемая клиенту и выполняемая клиентом
 +# (в данном случае добавляем на стороне клиента два маршрута к виртуальной частной сети)
 +push "route 192.168.1.0 255.255.255.0"​
 +push "route 192.168.35.0 255.255.255.0"​
 +
 +# Перенаправлять default gateway на vpn-сервер. Если не нужно - закомментировать или ​
 +# добавить в ccd для конкретного клиента
 +push "​redirect-gateway def1"
 +
 +# указываем где будут хранятся файлы с настройками IP-адресов клиентов
 +client-config-dir ccd
 +
 +# добавляем маршрут сервер-клиент.
 +# route - добавляет на стороне сервера маршруты к локальным подсетям,​ находящимся за клиентами
 +route 192.168.14.0 255.255.255.252
 +
 +# разрешить общение клиентов подключенных к серверу OpenVPN общение между собой
 +client-to-client
 +
 +# Директива проверки работоспособности,​ включающая отсылку
 +# ping-подобных сообщений туда и обратно через
 +# соединение для того, чтобы каждая сторона знала когда
 +# другая сторона внезапно пропадет (gone down).
 +# Пинг каждые 10 секунд,​ с предположением,​ что удаленный
 +# узел недоступен,​ если не получено на одного пинга за период времени
 +# равный 120 секундам.
 +keepalive 10 120
 +comp-lzo
 +max-clients 10
 +user nobody
 +group nogroup
 +persist-key
 +persist-tun
 +# Содержимое небольшого файла состояния,​ показывающего
 +# текущие соединения,​ усекается
 +# и перезаписывается раз в минуту.
 +status /​var/​log/​openvpn-status.log
 +log         /​var/​log/​openvpn.log
 +verb 3                             # уровень отладки
 +</​file>​
 +<​file>​
 +# /​etc/​init.d/​openvpn start
 +</​file>​
 +
 +===== Аннулировать сертификат клиента =====
 +  * [[http://​openvpn.net/​index.php/​open-source/​documentation/​howto.html#​revoke|Revoking Certificates]]
 +  * **Пример**. Аннулируем сертификат пользователя farm1c<​file>​
 +# cd /​etc/​openvpn/​easy-rsa
 +# source ./vars
 +# ./​revoke-full farm1c
 +Using configuration from /​etc/​openvpn/​easy-rsa/​openssl.cnf
 +Revoking Certificate 02.
 +Data Base Updated
 +</​file>​После команды revoke-full изменится в файл /​etc/​openvpn/​easy-rsa/​keys/​index.txt строка соответствующая сертификату пользователя farm1c.
 +
  
openvpn_debian_wheezy.txt · Последние изменения: 2020/03/27 05:42 — darkfire