Установка VPN сервера

Скрипт автоматической установки IKEv2 VPN сервера на базе StrongSwan. Поддерживает Debian, Ubuntu, CentOS, RHEL, Rocky, Alma, Fedora, Arch Linux и Manjaro.

Требования к серверу

  • 1
    Операционная система

    Поддерживаются: Debian 10+, Ubuntu 20.04+, CentOS 8+, Rocky Linux 8+, AlmaLinux 8+, Fedora 36+, Arch Linux, Manjaro

  • 2
    Ресурсы

    Минимум: 1 CPU core, 512 MB RAM, 5 GB SSD

  • 3
    Сетевые требования

    Открытые порты: UDP 500, UDP 4500, TCP 22 (для SSH)

  • 4
    Права доступа

    Доступ к серверу с правами root или sudo

Установка Рекомендуется

Скачайте и запустите скрипт установки:

wget https://stena.vpn.ru/vpn.sh -O vpn.sh && sudo sh vpn.sh

При выполнении скрипта вам будет предложено ввести домен для VPN (или использовать IP-адрес), подсеть для клиентов и DNS-серверы.

Параметры скрипта

Вы можете использовать следующие параметры при запуске скрипта:

sudo ./vpn.sh -d vpn.example.com -s 10.20.30.0/24 -n 1.1.1.1,9.9.9.9 -c myclient
  • -d — Доменное имя сервера (или IP-адрес)
  • -s — Подсеть для клиентов (по умолчанию: 10.20.30.0/24)
  • -n — DNS-серверы через запятую (по умолчанию: 1.1.1.1,9.9.9.9)
  • -c — Имя клиента (по умолчанию: client1)
  • -h — Показать справку

Что делает скрипт

  1. 1
    Определяет ОС

    Автоматически определяет дистрибутив Linux и устанавливает необходимые пакеты

  2. 2
    Устанавливает пакеты

    Устанавливает: strongswan, strongswan-pki, nftables, fail2ban, openssl, uuid, curl

  3. 3
    Настраивает firewall

    Настраивает nftables с правилами для VPN (UDP 500, 4500) и SSH (TCP 22)

  4. 4
    Создает PKI

    Генерирует корневой и промежуточный центры сертификации, сертификат сервера

  5. 5
    Настраивает StrongSwan

    Конфигурирует IKEv2 с современными параметрами шифрования (AES-256-GCM, SHA384, ECP384)

  6. 6
    Защищает сервер

    Настраивает fail2ban для защиты от брутфорса на портах IPSec

  7. 7
    Создает клиента

    Генерирует конфигурационные файлы для подключения клиентов

Файлы после установки

После успешной установки в директории /root/ будут созданы файлы для подключения клиентов:

  • client1.p12 — PKCS#12 контейнер для iOS/macOS (можно импортировать в систему)
  • client1.mobileconfig — Apple Profile для автоматической настройки iOS/macOS
  • client1.sswan — Конфигурация для Android (StrongSwan App)

⚠️ Важно

Переместите корневой центр сертификации (/root/pki/root/) с сервера в безопасное место после установки. Он не требуется для работы VPN, но необходим для создания новых клиентов.

Подключение клиентов

После установки сервера настройте подключение на своих устройствах:

  • Windows — Настройка VPN на Windows
  • macOS — Настройка VPN на Mac
  • Linux — Настройка VPN на Linux
  • Android — Настройка VPN на Android
  • iOS — Настройка VPN на iPhone/iPad

Удаление VPN

Для удаления VPN-сервера выполните следующие команды:

systemctl stop strongswan-starter
systemctl disable strongswan-starter
systemctl stop nftables
systemctl disable nftables
rm -rf /etc/ipsec.d/* /root/pki /root/*.p12 /root/*.mobileconfig /root/*.sswan

Возможные проблемы

Убедитесь, что у вас есть права root. Используйте sudo sh vpn.sh или войдите под root. Также проверьте, что wget установлен: apt install wget или yum install wget.

Скрипт поддерживает Debian, Ubuntu, CentOS, RHEL, Rocky, Alma, Fedora, Arch и Manjaro. Если ваш дистрибутив не поддерживается, вы можете установить пакеты вручную согласно документации strongSwan.

Проверьте, что службы включены: systemctl enable strongswan-starter nftables fail2ban. Также убедитесь, что порты UDP 500 и 4500 открыты в файрволе.

Проверьте, что на сервере открыты порты: nft list ruleset должен показывать правила для портов 500 и 4500 UDP. Также убедитесь, что провайдер не блокирует эти порты.

Для добавления нового клиента вам понадобится промежуточный CA из /root/pki/intermediate/. Используйте команды openssl для генерации новых сертификатов, аналогично тому, как это делает скрипт.

Остались вопросы?

Вы можете написать нам, мы постараемся помочь вам в его решении