Цель:
Связать 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 настроена, проверяйте.
Не забывайте про фаервол.