Я немного застрял с настройкой 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, я не думаю, что это должно вызвать какие-либо проблемы.
Как было предложено попробовать 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 (если он содержит). Если вы в отчаянии, вы можете установить правый =% любой поэтому любой партнер с принятым сертификатом может пройти аутентификацию.