Начальная установка OpenVPN

Модератор: padonki

Ответить
Аватара пользователя
Padonak
padonki
Сообщения: 3785
Зарегистрирован: 14 авг 2006, 20:43
Контактная информация:

Начальная установка OpenVPN

Сообщение Padonak »

# Установка пакетов

Код: Выделить всё

apt install openvpn easy-rsa bridge-utils 
# Настройка центра сертификации
# скопируем в эту папку все необходимые скрипты easy-rsa

Код: Выделить всё

mkdir /etc/openvpn/easy-rsa

Код: Выделить всё

cp -R /usr/share/easy-rsa /etc/openvpn/

Код: Выделить всё

cd /etc/openvpn/easy-rsa/
# команда создаст папку pki и и необходимые файлы для генерации сертификатов

Код: Выделить всё

./easyrsa init-pki
# команда создаёт ключ центра сертификации

Код: Выделить всё

./easyrsa build-ca
# надо создать ключи Диффи-Хафмана

Код: Выделить всё

./easyrsa gen-dh
# Если вы хотите использовать TLS авторизацию

Код: Выделить всё

openvpn --genkey secret /etc/openvpn/easy-rsa/pki/ta.key
# Для отзыва уже подписанных сертификатов нам понадобится сертификат отзыва

Код: Выделить всё

./easyrsa gen-crl
# Для создания сертификатов, которые будут использоваться сервером

Код: Выделить всё

./easyrsa build-server-full server nopass
# все полученные ключи надо скопировать

Код: Выделить всё

cp ./pki/ca.crt /etc/openvpn/server/ca.crt

Код: Выделить всё

cp ./pki/dh.pem /etc/openvpn/server/dh.pem

Код: Выделить всё

cp ./pki/crl.pem /etc/openvpn/server/crl.pem

Код: Выделить всё

cp ./pki/ta.key /etc/openvpn/server/ta.key

Код: Выделить всё

cp ./pki/issued/server.crt /etc/openvpn/server/server.crt

Код: Выделить всё

cp ./pki/private/server.key /etc/openvpn/server/server.key

Далее - править конфиг :)

vim /etc/openvpn/server.conf

Код: Выделить всё

sndbuf 0
rcvbuf 0
push "sndbuf 524288"
push "rcvbuf 524288"
tun-mtu 1500

local   { ip адрес ВНЕШНЕГО интерфейса }
port 1194
proto udp
dev tap0
script-security 2
up "/etc/openvpn/up.sh br0 tap0 1500"
down "/etc/openvpn/down.sh br0 tap0"
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
key /etc/openvpn/server/server.key
dh /etc/openvpn/server/dh.pem
ifconfig-pool-persist ipp.txt
server-bridge 192.168.12.1 255.255.255.0 192.168.12.100 192.168.12.253
push "route 192.168.12.0 255.255.255.0"
client-to-client
keepalive 10 120
tls-auth /etc/openvpn/server/ta.key 1 # This file is secret
key-direction 0
cipher AES-128-CBC   # AES
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log         /var/log/openvpn/openvpn.log
log-append  /var/log/openvpn/openvpn.log
verb 3
Так как Я использую вид тоннеля TAP(подключаемые компьютеры оказываюся как бы во внутренней сети LAN c адресами сети предприятия), то надо подправить сетевые настройки - bridge поднять и небольшие скрипты прописать.

Код: Выделить всё

 vim /etc/network/interfaces

Код: Выделить всё

auto br0
        iface br0 inet static
        address 192.168.12.1
        netmask 255.255.255.0
        bridge_ports enp3s2



auto enp3s2
        iface enp3s2 inet static
        address 0.0.0.0
        netmask 0.0.0.0

        iface enp3s2 inet manual
        up ip link set $IFACE up promisc on
        down ip link set $IFACE down promisc off
Где enp3s2 - это интерфейс смотрящий во внутреннюю сеть

И не забудьте подправить FireWall :)

скрипт up.sh

Код: Выделить всё

#!/bin/sh

BR=$1
DEV=$2
MTU=$3
/sbin/ip link set "$DEV" up promisc on mtu "$MTU"
/sbin/brctl addif $BR $DEV

скрипт down.sh

Код: Выделить всё

#!/bin/sh

BR=$1
DEV=$2

/sbin/brctl delif $BR $DEV
/sbin/ip link set "$DEV" down

Не забываем делать их исполняемыми:

Код: Выделить всё

chmod +x up.sh

Код: Выделить всё

chmod +x down.sh
Далее перезагружаем комп Смотрим, чтоб поднялся сетевой мост, запустился openvpn . Если что коряво - смотрим логи :)

Далее генерируем первого пользователя с именем "TEST":

Код: Выделить всё

cd /etc/openvpn/easy-rsa/

Код: Выделить всё

./easyrsa build-client-full test nopass
Потом находим файлы :

Код: Выделить всё

ca.crt
client.ovpn
ta.key
test.crt
test.key

Их надо передать пользователю, после установки OpenVPN на его компе, скопировав это всё в папочку conf в папке opnvpn

файл client.ovpn

Код: Выделить всё

##  Редактировать только эти строчки !!!!!!
#  вписать имя сертификата

cert {имя сгенерированного сертификата-по инструкции "TEST"}.crt
key {имя сгенерированного сертификата-по инструкции "TEST"}.key
remote {ip адрес Вашего сервера OpenVPN} 1194

####    Далее не трогать ! 
##################################################
client
dev tap
proto udp
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
remote-cert-tls server
tls-auth ta.key 1
auth-nocache
cipher AES-128-CBC
comp-lzo
verb 4
mute 20
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Изображение
Аватара пользователя
Padonak
padonki
Сообщения: 3785
Зарегистрирован: 14 авг 2006, 20:43
Контактная информация:

Как через easy rsa отозвать сертификат

Сообщение Padonak »

На сервере с CA сертификат отзывается так:

Код: Выделить всё

./easyrsa revoke client
Затем нужно подтвердить отзыв введя yes

Чтобы сообщить OpenVPN о том, что сертификат отозван нужен CRL или certificate revocation list.

Код: Выделить всё

./easyrsa gen-crl
В результате будет создан файл crl.pem, он перемещается на съемном носителе (в идеале) или при помощи scp на сервер OpenVPN в /etc/openvpn/


В /etc/openvpn/server.conf добавляется опция, которая будет сообщать о необходимости проверять наличие CRL.

Код: Выделить всё

crl-verify /etc/openvpn/easy-rsa/pki/crl.pem
Перезапускаем OpenVPN сервера

Код: Выделить всё

 /etc/init.d/openvpn restart
Моя характеристика с детского сада: Хорошо кушает, спит, гуляет! Прошло много лет, ничего не изменилось.
Изображение
Ответить