OpenVPN — это одно из самых популярных и безопасных решений для создания виртуальных частных сетей (VPN). VPN позволяет пользователям подключаться к удаленным сетям через зашифрованные туннели, обеспечивая безопасность и анонимность передачи данных. В этой статье мы рассмотрим, как самостоятельно настроить сервер OpenVPN на Linux и подключить клиента к нему.

Установка OpenVPN на сервере Linux

  1. Установите OpenVPN и EasyRSA (для генерации сертификатов) с помощью менеджера пакетов вашего дистрибутива. Например, для Ubuntu или Debian:
    sudo apt-get update
    sudo apt-get install openvpn easy-rsa
  2. Скопируйте пример конфигурационного файла сервера в каталог /etc/openvpn:
    sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
    sudo gzip -d /etc/openvpn/server.conf.gz

Настройка PKI (Public Key Infrastructure)

  1. Создайте каталог для хранения ключей и сертификатов:
    sudo mkdir /etc/openvpn/easy-rsa
    sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa
  2. Измените файл vars в каталоге /etc/openvpn/easy-rsa, указав ваши собственные значения для различных переменных, таких как KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG и KEY_EMAIL.
  3. Инициализируйте PKI:
    cd /etc/openvpn/easy-rsa
    source vars
    ./clean-all
    ./build-ca

Создание сертификатов и ключей для сервера и клиента

  1. Создайте сертификат и ключ для сервера:
    ./build-key-server server
  2. Создайте сертификат и ключ для клиента:
    ./build-key client1
  3. Генерируйте ключ Diff-Hellman для обмена ключами:
    ./build-dh
  4. Скопируйте созданные файлы в соответствующие каталоги:
    sudo cp /etc/openvpn/easy-rsa/keys/{server.crt,server.key,ca.crt,dh2048.pem} /etc/openvpn/

Настройка конфигурационного файла сервера

  1. Отредактируйте /etc/openvpn/server.conf, указав путь к ключам и сертификатам:
    ca ca.crt
    cert server.crt
    key server.key
    dh dh2048.pem
  2. Укажите подсеть для VPN-клиентов, например:
    server 10.8.0.0 255.255.255.0
  3. Включите пересылку пакетов между клиентами и интернетом:
    push "redirect-gateway def1 bypass-dhcp"
    push "dhcp-option DNS 8.8.8.8"
    push "dhcp-option DNS 8.8.4.4"

    Полный конфиг:

    port 1194
    proto udp
    dev tun

    ca ca.crt
    cert server.crt
    key server.key
    dh dh2048.pem

    server 10.8.0.0 255.255.255.0

    push «redirect-gateway def1 bypass-dhcp»
    push «dhcp-option DNS 8.8.8.8»
    push «dhcp-option DNS 8.8.4.4»

    keepalive 10 120
    cipher AES-256-CBC
    comp-lzo

    persist-key
    persist-tun

    status openvpn-status.log
    log openvpn.log
    verb 3

  4. Сохраните файл и перезапустите сервер OpenVPN:
    sudo systemctl restart openvpn@server

php Copy code

Настройка клиентского конфигурационного файла

  1. Создайте файл client1.ovpn с примером конфигурации клиента:
    client
    dev tun
    proto udp
    remote [YOUR_SERVER_IP] 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    mute-replay-warnings
    ca ca.crt
    cert client1.crt
    key client1.key
    ns-cert-type server
    cipher AES-256-CBC
    comp-lzo
    verb 3
  2. Скопируйте этот файл и сертификаты/ключи (client1.crt, client1.key, ca.crt) на клиентскую машину.

php Copy code

Подключение клиента к серверу OpenVPN

  1. Установите OpenVPN на клиентском компьютере:
    sudo apt-get update
    sudo apt-get install openvpn
  2. Поместите файлы client1.ovpn, client1.crt, client1.key и ca.crt в каталог /etc/openvpn на клиентском компьютере.
  3. Подключитесь к серверу:
    sudo openvpn --config /etc/openvpn/client1.ovpn

css Copy code

После успешного подключения ваш трафик будет проходить через сервер OpenVPN, обеспечивая безопасность и анонимность.

Заключение

Теперь вы знаете, как самостоятельно настроить сервер OpenVPN на Linux и подключить клиента к нему. Опираясь на эту информацию, вы сможете создать свой собственный VPN-сервер для защиты вашей приватности и безопасности в интернете.