Недавно была задачка настроить VPN-туннеля между двумя офисами, решил краткую инструкции сделать:
Давайте подробнее разберем процесс создания защищенного VPN-туннеля между двумя офисами с использованием OpenVPN, уделив внимание деталям настройки и конфигурации на примерах.
Шаг 1: Подготовка
Перед началом настройки убедитесь, что у вас есть две машины (одна в каждом офисе), на которых будет установлен OpenVPN: одна будет выступать в роли сервера, а другая — клиента. Определите внутренние IP-адреса для каждого офиса, чтобы они не пересекались, например, 192.168.1.0/24 для первого офиса и 192.168.2.0/24 для второго.
Шаг 2: Установка и настройка OpenVPN на сервере
- Установите OpenVPN и Easy-RSA: В большинстве дистрибутивов Linux OpenVPN и Easy-RSA можно установить через менеджер пакетов. На сервере выполните:
sudo apt update && sudo apt install openvpn easy-rsa
- Настройка Easy-RSA и создание сертификатов: Создайте директорию для Easy-RSA и инициализируйте среду для генерации сертификатов:
make-cadir ~/openvpn-ca cd ~/openvpn-ca source vars ./clean-all ./build-ca
Вам будет предложено ввести информацию для сертификата Центра сертификации (CA). Эти данные будут использоваться во всех сертификатах, которые вы создадите.
Затем создайте сертификат и ключи для сервера:
./build-key-server server ./build-dh openvpn --genkey --secret keys/ta.key
Эти команды создадут ключи и сертификаты, необходимые для аутентификации и шифрования туннеля.
- Конфигурация сервера OpenVPN: Скопируйте пример конфигурационного файла OpenVPN в
/etc/openvpn
и отредактируйте его, чтобы настроить параметры сети, пути к сертификатам и ключам:
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Важные параметры в файле server.conf
:
ca ca.crt
: Путь к сертификату CA.cert server.crt
иkey server.key
: Пути к сертификату и ключу сервера.dh dh.pem
: Путь к файлу Diffie-Hellman.server 10.8.0.0 255.255.255.0
: Диапазон IP-адресов для клиентов VPN.push "route 192.168.1.0 255.255.255.0"
: Маршрут до сети первого офиса, который будет отправлен клиентам. Затем запустите и активируйте сервер OpenVPN:
sudo systemctl start openvpn@server sudo systemctl enable openvpn@server
Шаг 3: Настройка OpenVPN-клиента
- Настройка сертификатов и ключей клиента: На сервере Easy-RSA используйте скрипты для создания клиентских сертификатов:
./build-key client1
Перенесите сертификаты и ключи (ca.crt
, client1.crt
, client1.key
, ta.key
) на клиентскую машину в директорию /etc/openvpn
.
- Конфигурация клиента OpenVPN: Создайте файл конфигурации
client.conf
на клиенте, аналогично серверной конфигурации, указав адрес сервера и пути к файлам сертификатов и ключей. Пример содержимогоclient.conf
:
client dev tun proto udp remote server_address 1194 resolv-retry infinite nobind user nobody group nogroup persist-key persist-tun ca ca.crt cert client1.crt key client1.key remote-cert-tls server cipher AES-256-CBC verb 3
Замените server_address
на реальный IP-адрес или доменное имя вашего сервера.
- Запуск клиента: После настройки конфигурации запустите клиентский процесс OpenVPN:
sudo systemctl start openvpn@client sudo systemctl enable openvpn@client
Шаг 4: Тестирование и маршрутизация
- Проверка соединения: Убедитесь, что VPN-туннель успешно установлен, проверив статус службы на сервере и клиенте. Используйте
ping
для проверки связности между машинами в разных офисах через VPN. - Настройка маршрутизации: Возможно, потребуется настроить маршрутизацию на сервере и клиенте, чтобы трафик между офисами проходил через VPN-туннель. Это может включать добавление маршрутов в конфигурацию OpenVPN и настройку правил NAT на сервере для перенаправления трафика.
Заключение
Настройка VPN-туннеля между двумя офисами с помощью OpenVPN требует внимательности к деталям настройки сертификатов, ключей и конфигураций. При правильной конфигурации вы получите защищенное и надежное соединение для обмена данными между офисами, с высоким уровнем шифрования и аутентификации.
https://krivoshein.site/vpn-instrument-bezopasnosti-a-ne-obhod-tsenzury/