Размещение VPN‑сервера: IPsec/L2TP, Cisco IPsec и IKEv2
Подробное руководство по созданию VPN-сервера с IPsec/L2TP, Cisco IPsec и IKEv2. Самостоятельное размещение VPN для безопасности вашей сети.
Подготовка системы
Обновляем систему и настраиваем базовую безопасность
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
- Настройка IPsec/L2TP
- Настройка Cisco IPsec
- Настройка IKEv2
- Дополнительная безопасность
- Мониторинг и обслуживание
- Заключение
- Рекомендации по использованию
- Ссылки на ресурсы
Введение
В условиях возрастающих требований к защите данных и приватности в сети интернет, развертывание собственного VPN-сервера становится востребованным решением для многих пользователей и администраторов. Это руководство поможет вам создать собственный VPN-сервер на базе IPsec с поддержкой множества протоколов, обеспечивая безопасный доступ к вашим ресурсам из любой точки мира.
Что такое VPN и зачем его нужно размещать самостоятельно
Виртуальная частная сеть (VPN) создает зашифрованное соединение между вашим устройством и сервером в интернете. Это позволяет защитить ваш трафик от перехвата, обойти географические ограничения и обеспечить приватность в сети.
Размещение VPN-сервера самостоятельно дает полный контроль над вашими данными, в отличие от использования публичных сервисов, которые могут собирать логи или ограничивать скорость. Это также более экономичный вариант в долгосрочной перспективе.
Преимущества самостоятельного размещения VPN
- Полный контроль над данными: вы знаете, где находятся ваши данные и кто к ним имеет доступ
- Экономия в долгосрочной перспективе: единовременные затраты на оборудование вместо регулярной оплаты подписки
- Гибкость настройки: вы можете настроить VPN под свои нужды
- Надежность: не зависите от сторонних сервисов и их политик
- Масштабируемость: вы можете легко расширять функционал по мере необходимости
Обзор протоколов
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
Рекомендуется использовать свежую установку системы без лишних сервисов.
Настройка базовой безопасности
-
Обновите систему:
sudo apt update && sudo apt upgrade -y -
Настройте брандмауэр:
sudo ufw allow OpenSSH sudo ufw enable -
Создайте нового пользователя с правами sudo:
adduser newuser usermod -aG sudo newuser -
Отключите аутентификацию по паролю для SSH, используя только ключи:
sudo nano /etc/ssh/sshd_configРаскомментируйте и измените строку:
PasswordAuthentication noПерезапустите SSH:
sudo systemctl restart sshd
Установка IPsec VPN
Клонирование репозитория
Скрипт setup-ipsec-vpn — это популярный инструмент для быстрого развертывания VPN-сервера с поддержкой нескольких протоколов.
-
Клонируйте репозиторий:
git clone https://github.com/hwdsl2/setup-ipsec-vpn.git cd setup-ipsec-vpn -
Запустите скрипт установки:
sudo bash setup-ipsec-vpn.sh -
Следуйте инструкциям на экране:
- Введите имя сервера
- Установите пароль для VPN-пользователей
- Выберите DNS-серверы (можно использовать общедоступные, такие как Cloudflare или Google)
- Настройте протоколы (рекомендуется включить все)
Конфигурация сервера
После установки скрипт создаст файл конфигурации /etc/ipsec.conf и /etc/ipsec.secrets. Чтобы добавить новых пользователей:
-
Откройте файл конфигурации пользователей:
sudo nano /etc/ipsec.d/passwd -
Добавьте новых пользователей в формате:
username:password_hash -
Чтобы сгенерировать хеш пароля, используйте:
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): тот, что вы указали при установке
Для тестирования подключения выполните:
-
Установите ipsec-tools (если еще не установлены):
sudo apt install ipsec-tools -
Проверьте статус IPsec:
sudo ipsec status -
Проверьте статус туннеля:
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
Отключение ненужных сервисов
-
Отключите ненужные сетевые службы:
sudo systemctl stop cups sudo systemctl disable cups -
Отключите 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
Обновление и резервное копирование
-
Создайте резервную копию конфигурационных файлов:
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:
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-сервера с поддержкой нескольких протоколов.
Рекомендации по использованию
- Регулярно обновляйте систему и VPN-компоненты
- Используйте надежные пароли и регулярно их меняйте
- Мониторьте активные соединения и аномальную активность
- Создавайте резервные копии конфигурационных файлов
- Рассмотрите возможность использования двухфакторной аутентификации для доступа к серверу