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-releaseyum 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 tunproto tcp-serverlocal 1.1.1.1lport 1194remote 2.2.2.2rport 1194secret /etc/openvpn/keys/vpn.key 0ifconfig 192.168.1.1 192.168.1.2route 192.168.1.2 255.255.255.255user nobodygroup nobodypersist-tunpersist-keykeepalive 10 60ping-timer-remverb 0daemontun-mtu 48000fragment 0mssfix 0comp-lzocipher aes-256-cbctcp-nodelaysndbuf 0rcvbuf 0push "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 tunproto tcp-clientlocal 2.2.2.2lport 1194remote 1.1.1.1rport 1194secret /etc/openvpn/keys/vpn.key 1ifconfig 192.168.1.2 192.168.1.1route 192.168.1.1 255.255.255.255user nobodygroup nobodypersist-tunpersist-keykeepalive 10 60ping-timer-remverb 0daemontun-mtu 48000fragment 0mssfix 0comp-lzocipher aes-256-cbc |
Добавим в автозагрузку и запускаем:
systemctl enable openvpn@client |
systemctl start openvpn@client |
Все, связь Site-to-Site настроена, проверяйте.
Не забывайте про фаервол.