Назад | Перейти на главную страницу

Подключение strongswan к плохо настроенному openswan

Я немного застрял с настройкой strongswan для подключения к моей офисной сети, поскольку он каким-либо образом отказывается проверять правильную сторону, мне было интересно, знает ли кто-нибудь способ просто сказать strongswan, чтобы он игнорировал сертификат сервера и завершал подключение? или если есть способ загрузить сертификат правой стороны, чтобы я мог хотя бы использовать rightcert, чтобы заставить его распознать правую сторону.

К сожалению, у меня нет доступа к конфигурации сервера, к которому я подключаюсь (я не могу изменить ее, если это не лаваш), но это то, что я могу сказать об этом, не имея доступа к конфигурации, а также сетевой администратор поддерживает только окна, так что я в значительной степени сам по себе, когда задаю вопросы по этому поводу.

Вот соответствующие ошибки из журналов strongswan

16[ENC] received unknown vendor ID: 49:4b:45:76:32
16[IKE] received end entity cert "<some cert with no fqn or ip in the cn>" #for example C=AB, ST=CD, L=CD, O=Example Org, OU=IT, CN=made_up_thing, E=example@example.com
16[IKE] no trusted RSA public key found for '<server ip>'

Вот содержимое моего ipsec.conf с удаленными значениями ip и cert

config setup
        charondebug="ike 2, cfg 2, enc 2"

conn %default
        ikelifetime=480m
        keylife=20m
        rekeymargin=3m
        keyingtries=1
        keyexchange=ikev1
        ike=3des-sha1-modp1024,3des-sha1-modp2048,aes128-sha1-modp1024,aes256-sha1-modp1024,aes128-sha1-modp2048,aes256-sha1-modp2048
        #ike=3des-md5;modp1024,aes-sha1;modp1536,aes-sha1;modp1024

conn office
        left=%any
        leftcert=/etc/vpn.crt
        leftid="CN=client blah, O=org, ST=uk, ..." #actual value match dn from /etc/vpn.crt
        leftauth=pubkey
        leftfirewall=yes
        right=<server ip>
        rightsubnet=192.168.3.0/24
        rightca="CN=ca blah, O=org, ST=uk, ..." #actual value match dn from /etc/ipsec.d/cacerts/ca.pem
        auto=add

Из того, что я понял после прочтения https://wiki.strongswan.org/issues/940 strongswan должен проверить, что сертификат правой стороны подписан тем же ЦС, и двигаться дальше, но я подозреваю, что, поскольку rightid не соответствует сертификату в любом случае, он просто подбрасывает его и отказывается, хотя также может быть, что openswan не отправляет по сертификату CA, так как я не вижу в журналах «отправку сертификата эмитента», хотя, поскольку у меня есть копия сертификата CA, я не думаю, что это должно вызвать какие-либо проблемы.

Обновление 1:

Как было предложено попробовать rightid=%any я вижу в журналах тот же результат, что и его отсутствие no trusted RSA public key found for '<server ip>'

если я изменю значение на значение cn из журналов, поэтому в моем примере выше это было «made_up_thing», он все равно не работает, но журналы показывают 11[IKE] IDir '<server ip>' does not match to 'made_up_thing'

Ваша проблема в том, что вы не указали праведный, и в этом случае по умолчанию используется IP-адрес удаленного устройства. Поскольку это обычно не содержится в сертификате как subjectAltName, аутентификация завершится с ошибкой, которую вы видели.

Чтобы исправить этот набор праведный либо к полному DN субъекта сертификата пульта дистанционного управления, либо к одному из его subjectAltNames (если он содержит). Если вы в отчаянии, вы можете установить правый =% любой поэтому любой партнер с принятым сертификатом может пройти аутентификацию.