Код: Выделить всё
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/
Код: Выделить всё
./easyrsa init-pki
Код: Выделить всё
./easyrsa build-ca
Код: Выделить всё
./easyrsa gen-dh
Код: Выделить всё
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
Код: Выделить всё
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
И не забудьте подправить 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
Код: Выделить всё
#!/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
Код: Выделить всё
reboot

Далее генерируем первого пользователя с именем "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