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

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


Боковая панель

.

openvpn_debian_wheezy
👉Английский по скайпу: стоит ли учить?💥

OpenVPN Debian Wheezy/sid

# aptitude install openvpn
# mkdir /etc/openvpn/easy-rsa
# cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Изменяем параметры по умолчанию для сертификатов

# 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"

Создадим переменные окружения bash, если это не сделать, при генерации ключей клиентов переменные будут взяты из /etc/openvpn/easy-rsa/openssl.cnf а не из файла vars

# 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

Создадим сертификат для сервера с именем vpnspar

# ./pkitool --initca
# ./pkitool --server vpnspar

Создадим сертификат для клиента с именем farm1c. Отдельный ключ для каждого клиента.

# ./pkitool farm1c
# 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

В директории ccd хранятся индивидуальные настройки для каждого клиента. Имя файла должно соответствовать имени сгенерированного клиентского сертификата. Файлы конфигурации клиентов являются текстовыми файлами и содержат команды, выполняемые сервером при подключении клиентов. Обычно файл клиента содержать команды:

  1. добавляет клиенту маршрут к локальной подсети центрального офиса(push "route 192.168.1.0 255.255.255.0")
  2. определяет адрес локальной подсети, находящейся за клиентом (например iroute 192.168.2.0 255.255.255.0)
  3. привязка к статическому IP (ifconfig-push 192.168.14.21 192.168.14.22), где ifconfig-push <IP-адрес клиента> <IP-адрес сервера>. Выбранные пары IP-адресов, во-первых, должны быть уникальными, во-вторых, должны входить в состав последовательных подсетей, ограниченных маской /30 (255.255.255.252), и, в-третьих, должны находиться в пределах пула IP-адресов, выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN).
# 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

server.conf

Конфигурируем сервер в файле server.conf

# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
# gunzip server.conf.gz
# nano /etc/openvpn/server.conf
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                             # уровень отладки
# /etc/init.d/openvpn start

Аннулировать сертификат клиента

  • Пример. Аннулируем сертификат пользователя farm1c
    # 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

    После команды revoke-full изменится в файл /etc/openvpn/easy-rsa/keys/index.txt строка соответствующая сертификату пользователя farm1c.

Kwork.ru - услуги фрилансеров от 500 руб.
openvpn_debian_wheezy.txt · Последнее изменение: 2020/06/13 13:46 (внешнее изменение)