Thank you for reading this post, don't forget to subscribe!
Цель:
Связать 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 настроена, проверяйте.
Не забывайте про фаервол.