Размещение VPN‑сервера: IPsec/L2TP, Cisco IPsec и IKEv2

Подробное руководство по созданию VPN-сервера с IPsec/L2TP, Cisco IPsec и IKEv2. Самостоятельное размещение VPN для безопасности вашей сети.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор11 апреля 2026 г.

Подготовка системы

Обновляем систему и настраиваем базовую безопасность

sudo apt update && sudo apt upgrade -y
sudo ufw allow OpenSSH
sudo ufw enable
adduser newuser
usermod -aG sudo newuser
sudo nano /etc/ssh/sshd_config
# Раскомментируйте и измените: PasswordAuthentication no
sudo systemctl restart sshd

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

Клонируем репозиторий и запускаем установочный скрипт

git clone https://github.com/hwdsl2/setup-ipsec-vpn.git
cd setup-ipsec-vpn
sudo bash setup-ipsec-vpn.sh

Добавление пользователей

Создаем VPN-пользователей с хешированными паролями

echo "username:$(openssl passwd -1 -salt $(head -c 100 /dev/urandom | od -An -N 4 -tu4 | cut -c2-) 'yourpassword')" | sudo tee -a /etc/ipsec.d/passwd

Настройка IPsec/L2TP

Конфигурируем параметры IPsec/L2TP в /etc/ipsec.conf

config l2tp-psk
    auth sha256
    pfs sha256
    rekey no
    keyingtries 3
    dpdaction clear
    dpddelay 10
    left %defaultroute
    leftprotoport=17/1701
    rightprotoport=17/0
    auto=add
    leftid=%any
    leftsourceip=%config
    right=%any
    rightid=%any
    rightsourceip=%no
    ike-frag=no
    ike= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    phase2alg= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    sha2-truncbug=no

Настройка Cisco IPsec

Добавляем конфигурацию для Cisco IPsec

config cisco-unity
    auth sha256
    pfs sha256
    rekey no
    keyingtries 3
    dpdaction clear
    dpddelay 10
    left %defaultroute
    leftprotoport=17/1701
    rightprotoport=17/0
    auto=add
    leftid=%any
    leftsourceip=%config
    right=%any
    rightid=%any
    rightsourceip=%no
    ike-frag=no
    ike= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    phase2alg= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    sha2-truncbug=no
    modecfgpull=yes
    xauthby=file
    xauthclient=yes
    ikev2=never

Настройка IKEv2

Настраиваем параметры для стабильного IKEv2 соединения

config ikev2
    auth sha256
    pfs sha256
    rekey no
    keyingtries 3
    dpdaction clear
    dpddelay 10
    left %defaultroute
    leftprotoport=17/0
    rightprotoport=17/0
    auto=add
    leftid=%any
    leftsourceip=%config
    right=%any
    rightid=%any
    rightsourceip=%no
    ike-frag=no
    ike= aes256-sha2-modp1024,aes128-sha2-modp1024,aes256-sha1-modp1024,aes128-sha1-modp1024!
    phase2alg= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    sha2-truncbug=no
    ikev2=insist
    fragmentation=yes
    forceencaps=yes
    modecfgpull=yes
    xauthby=file
    xauthclient=yes

Настройка брандмауэра

Открываем необходимые порты для VPN и SSH

sudo ufw allow 500,4500/udp  # Для IPsec
sudo ufw allow 1701/udp     # Для L2TP
sudo ufw allow 22/tcp        # Для SSH
sudo ufw enable

Отключение ненужных сервисов

Останавливаем неиспользуемые службы и отключаем IPv6

sudo systemctl stop cups
sudo systemctl disable cups
# Добавляем в /etc/sysctl.conf:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
sudo sysctl -p

Настройка автоматического обновления

Включаем автоматическое обновление системы

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

Проверка статуса

Мониторинг работы VPN-сервера

sudo ipsec status
sudo ipsec statusall
sudo tail -f /var/log/syslog | grep ipsec
sudo tail -f /var/log/xl2tpd.log

Создание резервной копии

Регулярное резервное копирование конфигурационных файлов

sudo tar -czvf vpn-backup.tar.gz /etc/ipsec.conf /etc/ipsec.secrets /etc/xl2tpd/xl2tpd.conf /etc/ppp/chap-secrets /etc/ppp/options.xl2tpd
# Добавьте в cron:
# 0 3 * * * tar -czvf /home/user/backup/vpn-backup-$(date +\%Y\%m\%d).tar.gz /etc/ipsec.conf /etc/ipsec.secrets /etc/xl2tpd/xl2tpd.conf /etc/ppp/chap-secrets /etc/ppp/options.xl2tpd

Руководство: Как самостоятельно разместить IPsec VPN - Скрипты для построения собственного VPN-сервера с IPsec/L2TP, Cisco IPsec и IKEv2

Содержание

Введение

В условиях возрастающих требований к защите данных и приватности в сети интернет, развертывание собственного VPN-сервера становится востребованным решением для многих пользователей и администраторов. Это руководство поможет вам создать собственный VPN-сервер на базе IPsec с поддержкой множества протоколов, обеспечивая безопасный доступ к вашим ресурсам из любой точки мира.

Что такое VPN и зачем его нужно размещать самостоятельно

Виртуальная частная сеть (VPN) создает зашифрованное соединение между вашим устройством и сервером в интернете. Это позволяет защитить ваш трафик от перехвата, обойти географические ограничения и обеспечить приватность в сети.

Размещение VPN-сервера самостоятельно дает полный контроль над вашими данными, в отличие от использования публичных сервисов, которые могут собирать логи или ограничивать скорость. Это также более экономичный вариант в долгосрочной перспективе.

Преимущества самостоятельного размещения VPN

  1. Полный контроль над данными: вы знаете, где находятся ваши данные и кто к ним имеет доступ
  2. Экономия в долгосрочной перспективе: единовременные затраты на оборудование вместо регулярной оплаты подписки
  3. Гибкость настройки: вы можете настроить VPN под свои нужды
  4. Надежность: не зависите от сторонних сервисов и их политик
  5. Масштабируемость: вы можете легко расширять функционал по мере необходимости

Обзор протоколов

IPsec/L2TP

IPsec (Internet Protocol Security) — это набор протоколов для обеспечения безопасной передачи данных по IP-сетям. L2TP (Layer 2 Tunneling Protocol) используется вместе с IPsec для создания туннеля. Эта комбинация обеспечивает высокий уровень безопасности и совместима с большинством устройств, включая старые операционные системы.

Cisco IPsec

Это реализация IPsec, разработанная Cisco Systems, с некоторыми специфическими расширениями. Протокол широко используется в корпоративных сетях и обеспечивает совместимость с оборудованием Cisco. Идеально подходит для интеграции с существующей сетевой инфраструктурой.

IKEv2

IKEv2 (Internet Key Exchange version 2) — это протокол согласования ключей для IPsec. Он обеспечивает быстрое восстановление соединений при смене сети (например, при переключении с Wi-Fi на мобильные данные), что делает его идеальным для мобильных устройств. IKEv2 также менее подвержен блокировке провайдерами.

Сравнение протоколов

ПротоколСкоростьСовместимостьСтабильность при смене сетиСложность настройки
IPsec/L2TPСредняяВысокая (все устройства)СредняяНизкая
Cisco IPsecВысокаяСредняя (в основном Cisco)СредняяСредняя
IKEv2ВысокаяХорошая (современные устройства)ВысокаяСредняя

Подготовка системы

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

Для развертывания VPN-сервера вам понадобится:

  • Виртуальный или выделенный сервер с минимальными характеристиками:
    • 1 ядро процессора
    • 512 МБ оперативной памяти
    • 10 ГБ дискового пространства
  • Операционная система: Ubuntu 20.04/22.04 или Debian 10/11

Рекомендуется использовать свежую установку системы без лишних сервисов.

Настройка базовой безопасности

  1. Обновите систему:

    sudo apt update && sudo apt upgrade -y
    
  2. Настройте брандмауэр:

    sudo ufw allow OpenSSH
    sudo ufw enable
    
  3. Создайте нового пользователя с правами sudo:

    adduser newuser
    usermod -aG sudo newuser
    
  4. Отключите аутентификацию по паролю для SSH, используя только ключи:

    sudo nano /etc/ssh/sshd_config
    

    Раскомментируйте и измените строку:

    PasswordAuthentication no
    

    Перезапустите SSH:

    sudo systemctl restart sshd
    

Установка IPsec VPN

Клонирование репозитория

Скрипт setup-ipsec-vpn — это популярный инструмент для быстрого развертывания VPN-сервера с поддержкой нескольких протоколов.

  1. Клонируйте репозиторий:

    git clone https://github.com/hwdsl2/setup-ipsec-vpn.git
    cd setup-ipsec-vpn
    
  2. Запустите скрипт установки:

    sudo bash setup-ipsec-vpn.sh
    
  3. Следуйте инструкциям на экране:

    • Введите имя сервера
    • Установите пароль для VPN-пользователей
    • Выберите DNS-серверы (можно использовать общедоступные, такие как Cloudflare или Google)
    • Настройте протоколы (рекомендуется включить все)

Конфигурация сервера

После установки скрипт создаст файл конфигурации /etc/ipsec.conf и /etc/ipsec.secrets. Чтобы добавить новых пользователей:

  1. Откройте файл конфигурации пользователей:

    sudo nano /etc/ipsec.d/passwd
    
  2. Добавьте новых пользователей в формате:

    username:password_hash
    
  3. Чтобы сгенерировать хеш пароля, используйте:

    echo "username:$(openssl passwd -1 -salt $(head -c 100 /dev/urandom | od -An -N 4 -tu4 | cut -c2-) 'yourpassword')"
    

Настройка IPsec/L2TP

Конфигурация IPsec/L2TP

Файл конфигурации IPsec/L2TP обычно находится в /etc/ipsec.conf. Основные параметры:

config l2tp-psk
    auth sha256
    pfs sha256
    rekey no
    keyingtries 3
    dpdaction clear
    dpddelay 10
    left %defaultroute
    leftprotoport=17/1701
    rightprotoport=17/0
    auto=add
    leftid=%any
    leftsourceip=%config
    right=%any
    rightid=%any
    rightsourceip=%no
    ike-frag=no
    ike= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    phase2alg= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    sha2-truncbug=no

Настройка клиента и тестирование соединения

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

  • Сервер: IP-адрес или доменное имя вашего сервера
  • Протокол: L2TP/IPsec
  • Имя пользователя: то, что вы настроили в /etc/ipsec.d/passwd
  • Пароль: соответствующий пароль
  • Предключеный ключ (PSK): тот, что вы указали при установке

Для тестирования подключения выполните:

  1. Установите ipsec-tools (если еще не установлены):

    sudo apt install ipsec-tools
    
  2. Проверьте статус IPsec:

    sudo ipsec status
    
  3. Проверьте статус туннеля:

    sudo ipsec statusall
    

Настройка Cisco IPsec

Конфигурация Cisco IPsec

Для поддержки Cisco IPsec добавьте следующую конфигурацию в /etc/ipsec.conf:

config cisco-unity
    auth sha256
    pfs sha256
    rekey no
    keyingtries 3
    dpdaction clear
    dpddelay 10
    left %defaultroute
    leftprotoport=17/1701
    rightprotoport=17/0
    auto=add
    leftid=%any
    leftsourceip=%config
    right=%any
    rightid=%any
    rightsourceip=%no
    ike-frag=no
    ike= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    phase2alg= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    sha2-truncbug=no
    modecfgpull=yes
    xauthby=file
    xauthclient=yes
    ikev2=never

Совместимость с устройствами Cisco

Для настройки клиента Cisco используйте следующие параметры:

  • Метод аутентификации: XAUTH (расширенная аутентификация)
  • Имя пользователя и пароль: те, что вы настроили
  • Предключеный ключ: тот же, что и для L2TP
  • DH Group: 2 или 5
  • Шифрование: AES-256
  • Хэш: SHA-1 или SHA-256

Настройке IKEv2

Конфигурация IKEv2

IKEv2 обеспечивает более быстрое и стабильное соединение, особенно для мобильных устройств. Добавьте следующую конфигурацию в /etc/ipsec.conf:

config ikev2
    auth sha256
    pfs sha256
    rekey no
    keyingtries 3
    dpdaction clear
    dpddelay 10
    left %defaultroute
    leftprotoport=17/0
    rightprotoport=17/0
    auto=add
    leftid=%any
    leftsourceip=%config
    right=%any
    rightid=%any
    rightsourceip=%no
    ike-frag=no
    ike= aes256-sha2-modp1024,aes128-sha2-modp1024,aes256-sha1-modp1024,aes128-sha1-modp1024!
    phase2alg= aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1!
    sha2-truncbug=no
    ikev2=insist
    fragmentation=yes
    forceencaps=yes
    modecfgpull=yes
    xauthby=file
    xauthclient=yes

Поддержка мобильных устройств

Для настройки мобильных устройств используйте следующие параметры:

  • Протокол: IKEv2
  • Идентификатор сервера: IP-адрес или доменное имя вашего сервера
  • Сертификат: можно использовать самоподписанный сертификат, сгенерированный скриптом
  • Имя пользователя и пароль: те, что вы настроили

Дополнительная безопасность

Настройка брандмауэра

Для усиления безопасности настройте брандмауэр:

sudo ufw allow 500,4500/udp  # Для IPsec
sudo ufw allow 1701/udp     # Для L2TP
sudo ufw allow 22/tcp        # Для SSH
sudo ufw enable

Отключение ненужных сервисов

  1. Отключите ненужные сетевые службы:

    sudo systemctl stop cups
    sudo systemctl disable cups
    
  2. Отключите IPv6, если он не используется:

    sudo nano /etc/sysctl.conf
    

    Добавьте:

    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    net.ipv6.conf.lo.disable_ipv6 = 1
    

    Примените изменения:

    sudo sysctl -p
    

Регулярные обновления

Настройте автоматическое обновление системы:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

Мониторинг и обслуживание

Логи VPN-сервера

Просматривайте логи VPN-сервера:

# Логи IPsec
sudo tail -f /var/log/syslog | grep ipsec

# Логи xl2tpd
sudo tail -f /var/log/xl2tpd.log

Проверка соединений

Проверьте активные VPN-соединения:

# Проверьте IPsec-соединения
sudo ipsec statusall

# Проверьте сетевые интерфейсы
ip a

# Проверьте маршруты
ip r

Обновление и резервное копирование

  1. Создайте резервную копию конфигурационных файлов:

    sudo tar -czvf vpn-backup.tar.gz /etc/ipsec.conf /etc/ipsec.secrets /etc/xl2tpd/xl2tpd.conf /etc/ppp/chap-secrets /etc/ppp/options.xl2tpd
    
  2. Настройте регулярное резервное копирование с помощью cron:

    sudo crontab -e
    

    Добавьте:

    0 3 * * * tar -czvf /home/user/backup/vpn-backup-$(date +\%Y\%m\%d).tar.gz /etc/ipsec.conf /etc/ipsec.secrets /etc/xl2tpd/xl2tpd.conf /etc/ppp/chap-secrets /etc/ppp/options.xl2tpd
    

Заключение

Создание собственного VPN-сервера — это отличное решение для обеспечения безопасности вашего трафика и получения полного контроля над вашими данными. Это руководство предоставило вам пошаговую инструкцию по развертыванию VPN-сервера с поддержкой нескольких протоколов.

Рекомендации по использованию

  1. Регулярно обновляйте систему и VPN-компоненты
  2. Используйте надежные пароли и регулярно их меняйте
  3. Мониторьте активные соединения и аномальную активность
  4. Создавайте резервные копии конфигурационных файлов
  5. Рассмотрите возможность использования двухфакторной аутентификации для доступа к серверу

Ссылки на ресурсы

  1. Репозиторий setup-ipsec-vpn
  2. Документация по IPsec
  3. Руководство по безопасности Linux
  4. Как выбрать сервер для VPN
Поделиться:TelegramX / TwitterVK