Я использую strongSwan 5.2.1 в Debian Jessie, и у меня возникли проблемы с его настройкой для выполнения того, что я хочу.
Посылка
В тестовой среде я пытаюсь использовать IPsec в транспортном режиме между виртуальной машиной Linux и виртуальной машиной Windows, настроенной как FTP-сервер в активном режиме. Будет применен IPsec только на FTP-трафик; то есть трафик к / от TCP-портов 20 и 21 на виртуальной машине Windows. Весь остальной трафик между двумя хостами (например, эхо-запросы) должен быть незашифрованным.
В реальном сценарии, для которого я это делаю, IP-адрес FTP-сервера будет отличаться, поэтому я бы хотел, чтобы моя конфигурация strongSwan не ссылалась на конкретный удаленный IP-адрес.
файл ipsec.conf в Linux
Содержание следующее:
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
# strictcrlpolicy=yes
# uniqueid = no
# Add connections here.
include /var/lib/strongswan/ipsec.conf.inc
conn main
type=transport
left=%any
right=10.1.1.2
leftauth=psk
rightauth=psk
ike=3des-sha1-modp1024
esp=3des-sha1
keyexchange=ikev1
conn data
also=main
rightsubnet=%dynamic[6/20]
auto=route
conn command
also=main
rightsubnet=%dynamic[6/21]
auto=route
Проблема
Приведенный выше IPsec.conf делает все, что я хочу, за исключением того, что IP-адрес FTP-сервера указан в файле строкой right=10.1.1.2
.
В also=route
Параметр означает, что обмен ключами инициируется только при обнаружении трафика, идущего в / из 10.1.1.2
на портах TCP 20 или 21. Мне нужна конфигурация, которая инициирует обмен ключами для любой IP-адрес при обнаружении трафика, идущего к / от этого адреса, TCP-порты 20 и 21.
Возможна ли такая конфигурация в strongSwan, и если нет, есть ли другой демон управления ключами для Linux, который может делать то, что я хочу достичь?
Дополнительные замечания
right=%any
не добиваюсь того, чего хочу. Этот параметр позволяет любому удаленному хосту инициировать обмен ключами с локальным хостом; это не означает, что локальный хост инициирует обмен ключами с любым удаленным хостом.Any IP Address
на обоих концах соединения и успешно ведет себя так, как я хочу.Спасибо.
Использовать right=%any
с политиками ловушки транспортного режима (т. е. auto=route
) вам нужно как минимум strongSwan 5.3.3. Обратитесь к ikev2 / ловушка-любой сценарий для примера.