Безопасная настройка Strongswan

Вопрос или проблема

Я настроил соединение “хост-к-хосту”, где я хочу, чтобы только IP сервера был виден, чтобы любой, кто подключен к VPN, мог общаться с сервисами на этом сервере.

connections {
    rw {
      pools = rw_pool
      send_cert = всегда
      unique = нет
      fragmentation=yes
      local {
        auth = pubkey
        certs = [CERT].pem
        id = [ID]
      }

      remote {
        auth = eap-mschapv2
        eap_id = %any
      }
      children {
        rw {
          local_ts  = [WAN IP СЕРВЕРА]
          esp_proposals = chacha20poly1305-sha512, aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1
        }
      }
      send_certreq = нет
    }
 }

Соединение работает, и запросы действительно приходят из диапазона IP VPN, однако, поскольку я нацеливаюсь на внешний IP, разве это не будет направлять трафик по незащищенному каналу после выхода из IP?

Конфигурация клиента:

connections {
    home {
      version=2
      remote_addrs = [АДРЕС СЕРВЕРА]
      vips = 0.0.0.0
      local {
        auth = eap-mschapv2
        eap_id = [ID]
      }
      remote {
        auth = pubkey
        id = [ID СЕРВЕРА]
      }
      children {
        home {
          remote_ts  = [WAN IP СЕРВЕРА]
          local_ts = dynamic
          #remote_ts  = 10.10.10.0/24
          start_action = старт
        }
      }
    }
  }

Второй, более мелкий вопрос: как бы вы настроили связь “хост-к-сайту”, где мой сервер является единственной сущностью в своей сети, а с другой стороны находится маршрутизатор Fortigate с более крупной сетью за ним, будет ли такой набор работать?

Спасибо за усилия заранее!

Ответ или решение

Безопасная настройка StrongSwan для VPN

Настройка VPN с использованием StrongSwan может быть сложной задачей, особенно когда цель состоит в том, чтобы обеспечить безопасный доступ к серверу без раскрытия особенностей внутренней сети. Рассмотрим предложенные вами конфигурации и обратим внимание на ключевые аспекты, которые необходимо учесть для создания безопасного соединения.

1. Основная конфигурация

В вашей конфигурации на сервере вы используете следующие параметры:

connections {
    rw {
      pools = rw_pool
      send_cert = always
      unique = no
      fragmentation=yes
      local {
        auth = pubkey
        certs = [CERT].pem
        id = [ID]
      }

      remote {
        auth = eap-mschapv2
        eap_id = %any
      }
      children {
        rw {
          local_ts  = [WAN IP OF SERVER]
          esp_proposals = chacha20poly1305-sha512, aes256gcm16-ecp384,aes256-sha256,aes256-sha1,3des-sha1
        }
      }
      send_certreq = no
    }
 }
Критически важные моменты:
  1. Аутентификация: Вы используете аутентификацию по открытому ключу для сервера и EAP (Extensible Authentication Protocol) для клиента. Это хорошая практика, однако рекомендуется дополнительно убедиться в том, что все ключи и сертификаты защищены належащим образом.

  2. Трафик после выхода из VPN: Как вы правильно заметили, если ваш трафик направляется на внешний IP-адрес сервера, это действительно может подвергать его риску, если соединение не шифруется. Рекомендуется настраивать маршрутизацию так, чтобы весь трафик, идущий через VPN, оставался защищенным. Вы можете использовать политику маршрутизации, чтобы убедиться, что трафик не выходит за пределы VPN.

  3. Фрагментация: Настройка fragmentation=yes может быть полезна, если у вас возникают проблемы с MTU. Однако, это может снизить производительность, поэтому используйте его с осторожностью.

2. Клиентская конфигурация

Клиентская конфигурация настроена следующим образом:

connections {
    home {
      version=2
      remote_addrs = [SERVER ADDR]
      vips = 0.0.0.0
      local {
        auth = eap-mschapv2
        eap_id = [ID]
      }
      remote {
        auth = pubkey
        id = [SERVER ID]
      }
      children {
        home {
          remote_ts  = [WAN IP OF SERVER]
          local_ts = dynamic
          start_action = start
        }
      }
    }
  }
Рекомендации:
  • Убедитесь, что local_ts настроен на динамический: Это заблокирует возможность для локального клиента отправлять трафик на IP-адрес сервера без соответствующей маршрутизации через VPN.

  • Используйте выборку адресов VIP: Заменив vips = 0.0.0.0 на адреса действующих виртуальных IP, вы можете более точно управлять маршрутизацией трафика.

3. Настройка "Хост к сети"

Для настройки соединения "Хост к сети", где ваш сервер выступает как единичный объект в сети, а с другой стороны стоит маршрутизатор Fortigate, необходимо учитывать следующее:

  • Настройте IPsec VPN между Fortigate и вашим сервером: Используйте стандартные параметры IPsec, такие как аутентификация по открытому ключу и степень шифрования, идентичные тем, что вы использовали в предыдущем пункте.

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

  • Регулируйте политики безопасности: Убедитесь, что на Fortigate установлен соответствующий уровень безопасности для VPN-подключения, позволяющий трафику пройти.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...