Настройка защищённого туннеля Ubuntu-Cisco: полное руководство
Подробное руководство по созданию защищённых VPN-туннелей между Ubuntu и Cisco маршрутизаторами с использованием IPsec и StrongSwan. Узнайте о настройке отказоустойчивых соединений с двумя ISP.
Как создать защищённый туннель между Ubuntu и Cisco?
У меня есть виртуальная машина в облаке и маршрутизатор Cisco в серверной комнате. Какие технологии и инструменты можно использовать для создания двух защищённых туннелей с Ubuntu на Cisco? Также интересует, почему может потребоваться два туннеля к двум разным устройствам Cisco, подключённым к разным интернет‑провайдерам.
Для создания защищённого туннеля между Ubuntu и Cisco устройствами можно использовать различные технологии, включая IPsec с StrongSwan на Ubuntu и соответствующую конфигурацию на маршрутизаторах Cisco. При наличии двух туннелей к разным Cisco устройствам, подключённым к разным интернет‑провайдерам, достигается отказоустойчивость и повышенная надёжность соединения.
Содержание
- Технологии для создания VPN‑туннелей
- Настройка Ubuntu как VPN‑клиента
- Конфигурация Cisco маршрутизаторов
- Двойные туннели и отказоустойчивость
- Преимущества использования двух интернет‑провайдеров
- Практическая реализация
Технологии для создания VPN‑туннелей
Для создания защищённого туннеля между Ubuntu и Cisco маршрутизаторами доступны несколько технологий:
IPsec (Internet Protocol Security) – наиболее распространённый стандарт для создания защищённых туннелей. На Ubuntu можно использовать:
- StrongSwan – мощный инструмент для IPsec VPN с поддержкой IKEv2
- Network Manager – для простого графического управления VPN‑соединениями
- vpnc – классический клиент для Cisco VPN3000 concentrator
Типы туннелей:
- Site-to-Site (сайт‑к‑сайту) – постоянное соединение между двумя сетями
- Remote Access – для доступа отдельных пользователей в корпоративную сеть
Важно: Рекомендуется использовать IKEv2 с шифрованием AES‑256 для обеспечения максимальной безопасности современных VPN‑соединений [1].
Настройка Ubuntu как VPN‑клиента
Установка необходимых компонентов
sudo apt update
sudo apt install strongswan strongswan-pki network-manager-strongswan
Конфигурация через Network Manager
- Откройте Network Manager и выберите «VPN‑соединения → Настроить VPN → Добавить»
- Выберите тип подключения «IPsec/IKEv2 (strongSwan)»
- Заполните параметры:
- Имя соединения: Cisco‑VPN
- Сервер: внешний IP‑адрес Cisco маршрутизатора
- Идентификатор пользователя: ваш логин
- Пароль: ваш пароль
Ручная конфигурация через StrongSwan
Создайте файл конфигурации /etc/ipsec.conf:
config setup
charondebug="ike 1, cfg 0"
conn cisco-vpn
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
leftid=@ubuntu-client
leftauth=eap-mschapv2
right=%any
rightid=@cisco-gateway
rightauth=eap-mschapv2
rightsourceip=10.10.20.0/24
ike=chacha20poly1305-sha512-curve25519-prfsha512,aes256gcm16-sha384-prfsha384-ecp384!
esp=chacha20poly1305-sha512,aes256gcm16-sha384!
Конфигурация Cisco маршрутизаторов
Базовая настройка IPsec на Cisco
crypto isakmp policy 10
encr aes 256
hash sha
authentication pre-share
group 14
lifetime 86400
crypto isakmp key cisco-key address 203.0.113.5
Настройка трансформации IPsec
crypto ipsec transform-set ESP-AES256-SHA256 esp-aes 256 esp-sha256-hmac
mode tunnel
crypto map CRYPTO-MAP 10 ipsec-isakmp
set peer 203.0.113.5
set transform-set ESP-AES256-SHA256
match address 100
Настройка ACL для трафика
access-list 100 permit ip 192.168.1.0 0.0.0.255 10.10.20.0 0.0.0.255
На Cisco устройствах можно настроить HSRP (Hot Standby Router Protocol) для обеспечения отказоустойчивости VPN‑туннелей. При этом активный и резервный маршрутизаторы будут использовать один виртуальный IP‑адрес [2].
Двойные туннели и отказоустойчивость
Архитектура с двумя туннелями
Ubuntu Cloud
│
├── Туннель 1 ── Cisco Router 1 (ISP A)
│
└── Туннель 2 ── Cisco Router 2 (ISP B)
Настройка политики маршрутизации
Для распределения трафика между двумя туннелями можно использовать:
- Policy‑Based Routing (PBR) на Cisco устройствах
- Multipath Routing на Ubuntu
- BFD (Bidirectional Forwarding Detection) для быстрого обнаружения сбоев
Конфигурация Failover
# На Ubuntu настройка маршрутов с разными метриками
ip route add 10.10.20.0/24 via 203.0.113.1 dev eth0 metric 100
ip route add 10.10.20.0/24 via 198.51.100.1 dev eth1 metric 200
Система будет автоматически использовать маршрут с меньшей метрикой. При сбое основного соединения трафик будет перенаправлен через резервный туннель [3].
Преимущества использования двух интернет‑провайдеров
1. Отказоустойчивость
- Если основной интернет‑провайдер отключается, связь сохраняется через резервного провайдера
- Время переключения составляет доли секунды при использовании BFD
2. Повышение производительности
- Распределение нагрузки между двумя каналами
- Снижение задержек за счёт выбора оптимального маршрута
3. Безопасность
- Разные провайдеры означают разные физические линии
- Снижение риска одновременного сбоя обоих каналов
4. Соответствие требованиям
- Многие корпоративные стандарты требуют двойного подключения
- Обеспечение SLA (Service Level Agreement) с гарантированной доступностью
Компании, использующие IPsec Stateful Failover, получают 100 % избыточность для IPSec VPN‑трафика без необходимости перенастройки удалённых пиров [4].
Практическая реализация
Пошаговый план настройки
-
Подготовка инфраструктуры:
- Убедитесь, что оба Cisco маршрутизатора имеют публичные IP‑адреса
- Настройте фаерволы для прохождения трафика UDP/500 и UDP/4500
-
Установка и настройка Ubuntu:
bashsudo apt install strongswan sudo systemctl enable --now strongswan -
Создание конфигурации туннелей:
/etc/ipsec.conf– основные параметры/etc/ipsec.secrets– ключи аутентификации
-
Тестирование:
bashsudo ipsec up cisco-vpn1 sudo ipsec up cisco-vpn2 ping 10.10.20.1
Мониторинг и отладка
# Просмотр статуса туннелей
sudo ipsec statusall
# Просмотр логов
sudo tail -f /var/log/syslog | grep charon
# Проверка маршрутов
ip route show
Автоматизация переключения
Для автоматического переключения при сбое можно использовать скрипты с мониторингом состояния:
#!/bin/bash
# Проверка доступности основного туннеля
if ! ping -c 3 10.10.20.1 > /dev/null 2>&1; then
echo "Primary tunnel down, switching to backup"
sudo ipsec down cisco-vpn1
sudo ipsec up cisco-vpn2
fi
Источники
- Ubuntu Community Help Wiki – VPNClient
- Cisco IPSec Stateful Failover Feature Module
- VPN Failover with HSRP High Availability
- Cisco VPN Availability Configuration Guide
- Configure Site-to-Site VPN Tunnel with ASA and Strongswan
Заключение
-
Для создания защищённого туннеля между Ubuntu и Cisco рекомендуется использовать IPsec с IKEv2 и шифрованием AES‑256, что обеспечивает высокую безопасность и совместимость.
-
При настройке двух туннелей к разным Cisco устройствам достигается отказоустойчивость и распределение нагрузки, что критически важно для бизнес‑критических приложений.
-
Использование двух интернет‑провайдеров значительно повышает надёжность соединения, так как снижает риск одновременного сбоя обоих каналов связи.
-
Для автоматического переключения между туннелями следует настроить мониторинг состояния и скрипты failover, что позволит минимизировать время простоя при сбоях.
-
Регулярное тестирование и мониторинг VPN‑соединений необходимы для обеспечения стабильной работы и быстрого обнаружения потенциальных проблем в инфраструктуре.