OpenVPN — Site-to-Site

Цель:

Связать 2 удаленных ноды в между собой, чтобы общение между ними для них было "прозрачно". Так же важна стабильность канала, скорость и конечно же безопасность.

Представим, что есть 2 ноды:

  • Server — IP 1.1.1.1
  • Client — IP 2.2.2.2

Установим на них OpenVPN

CentOS:

yum install -y epel-release
yum install -y openvpn easy-rsa

Ubuntu:

apt install -y openvpn

На ноде Server создадим директорию для хранения ключей:

mkdir -p /etc/openvpn/keys/ && cd /etc/openvpn/keys/

Сгенерируем ключ:

openvpn --genkey --secret vpn.key

Создадим файл конфигурации:

vim /etc/openvpn/server.conf

Со следующим содержимым:

dev tun
proto tcp-server
local 1.1.1.1
lport 1194
remote 2.2.2.2
rport 1194
secret /etc/openvpn/keys/vpn.key 0
ifconfig 192.168.1.1 192.168.1.2
route 192.168.1.2 255.255.255.255
user nobody
group nobody
persist-tun
persist-key
keepalive 10 60
ping-timer-rem
verb 0
daemon
tun-mtu 48000
fragment 0
mssfix 0
comp-lzo
cipher aes-256-cbc
tcp-nodelay
sndbuf 0
rcvbuf 0
push "sndbuf 524288"
push "rcvbuf 524288"

Добавим в автозагрузку и запускаем:

systemctl enable openvpn@server
systemctl start openvpn@server

Проверьте, что у вас есть доступ к ноде по порту 1194 TCP. Так же учтите, что для OpenVPN необходима поддержка TUN/TAP туннелей, если у вас виртуальная машина openVZ, то уточните у хостера, включил ли он поддержку или нет, часто на низких тарифах не предоставляют поддержку TUN/TAP.

Переходим к ноде Client

Создадим директорию для хранения ключей:

mkdir -p /etc/openvpn/keys/ && cd /etc/openvpn/keys/
vim /etc/openvpn/keys/vpn.key

Сюда вставим содержимое ключа, который генерировали на ноде Server

Изменим права на ключ:

chmod 600 /etc/openvpn/keys/vpn.key

Создадим файл конфигурации:

vim /etc/openvpn/client.conf

Со следующим содержимым:

dev tun
proto tcp-client
local 2.2.2.2
lport 1194
remote 1.1.1.1
rport 1194
secret /etc/openvpn/keys/vpn.key 1
ifconfig 192.168.1.2 192.168.1.1
route 192.168.1.1 255.255.255.255
user nobody
group nobody
persist-tun
persist-key
keepalive 10 60
ping-timer-rem
verb 0
daemon
tun-mtu 48000
fragment 0
mssfix 0
comp-lzo
cipher aes-256-cbc

Добавим в автозагрузку и запускаем:

systemctl enable openvpn@client
systemctl start openvpn@client

Все, связь Site-to-Site настроена, проверяйте.

Не забывайте про фаервол.

Метки: Метки