Вопрос или проблема
Я использую Openswan с ipsec, и ipsec постоянно жалуется на отсутствие общего ключа. Я использую Ubuntu 14.04.
Я просто экспериментирую на нескольких внутренних системах, так как я новичок в этом.
Вывод:
root@ip-10-1-1-4:/etc# ipsec auto --up L2TP-PSK
104 "L2TP-PSK" #10: STATE_MAIN_I1: инициировать
003 "L2TP-PSK" #10: получен полезный нагрузка Vendor ID [Openswan (эта версия) 2.6.38]
003 "L2TP-PSK" #10: получен полезный нагрузка Vendor ID [Dead Peer Detection]
003 "L2TP-PSK" #10: получен полезный нагрузка Vendor ID [RFC 3947] метод установлен в=115
003 "L2TP-PSK" #10: Невозможно аутентифицировать: не найден предшествующий общий ключ для `10.1.1.4' и `10.1.1.36'. Атрибут OAKLEY_AUTHENTICATION_METHOD
003 "L2TP-PSK" #10: нет приемлемого преобразования Oakley
214 "L2TP-PSK" #10: STATE_MAIN_I1: NO_PROPOSAL_CHOSEN
Сервер:
10.1.1.36 %any : PSK "69EA16F2C529E74A7D1B0FE99E69F6BDCD3E44"
Клиент:
%any 10.1.1.36 : PSK "69EA16F2C529E74A7D1B0FE99E69F6BDCD3E44"
Я знаю, что не имеет большого значения, какие стороны разговора фактически обозначены как “левая” и “правая”, так как они определяются автоматически, и я не знаю, как эти обозначения соотносятся с двумя адресами в двух вышеуказанных строках. Тем не менее, я попробовал поменять оба значения и использовать все IP (чтобы не было значений “%any”). Я также не уверен, какая сторона разговора инициирует жалобу.
Может ли кто-то с большим опытом подсказать, что делать дальше 🙂 ?
Спасибо. Это, конечно, немного запутано для новичка.
- Вы импортируете свой файл .secrets в /etc/ipsec.secrets? (это была моя проблема)
-
Если да, попробуйте заменить двойные кавычки вокруг вашего секрета на одинарные. (Я нашел это предложение в документации openswan, но не тестировал ни так, ни так.)
-
Строка секрета должна следовать за пустой строкой. (То же самое, как выше, предложено в документации openswan, но не тестировалось ни так, ни так)
Для меня оказалось, что мне нужно было определить путь к файлу секретов здесь:
/etc/strongswan.d/charon/stroke.conf
По какой-то причине без этого он не читал /etc/ipsec.secrets
В моем случае это произошло, потому что я создал PSK внутри /etc/ipsec.secret
вместо правильного пути /etc/ipsec.secrets
. Небольшое, но важное отличие!
Ответ или решение
Проблема, с которой вы столкнулись при использовании Openswan с IPSec, заключается в ошибке аутентификации, которая говорит о том, что не найден предварительно установленный ключ (PSK) для указанных IP-адресов. Давайте разберем ваше сообщение об ошибке более подробно и предоставим несколько рекомендаций по устранению этой проблемы.
Ошибка аутентификации IPSec: анализ
Вы привели результат выполнения команды, которая сигнализирует об отсутствии предварительно установленного ключа для указанных адресов (в данном случае 10.1.1.4
и 10.1.1.36
). Основные сообщения об ошибках, которые стоит учесть:
- "Can’t authenticate: no preshared key found": система не может найти указанный предварительно установленный ключ (PSK) для связи между двумя IP-адресами.
- "STATE_MAIN_I1: NO_PROPOSAL_CHOSEN": возможно, параметры шифрования или безопасности, предложенные одной из сторон, не были приняты другой стороной.
Шаги для решения проблемы
-
Проверьте файл /etc/ipsec.secrets:
Убедитесь, что вы правильно указали предварительно установленный ключ. Это должно выглядеть примерно так:10.1.1.36 %any : PSK "69EA16F2C529E74A7D1B0FE99E69F6BDCD3E44" %any 10.1.1.36 : PSK "69EA16F2C529E74A7D1B0FE99E69F6BDCD3E44"
Обратите внимание, что важно использовать одинарные кавычки вместо двойных для указания секрета, как вы уже упомянули в вашем вопросе.
-
Проверьте путь к файлу секрета:
Если вы используете Strongswan, как указали в одном из ваших сообщений, убедитесь, что в файле/etc/strongswan.d/charon/stroke.conf
правильно указан путь к файлу/etc/ipsec.secrets
. -
Добавьте пустую строку в конце файла:
Некоторые версии Openswan могут требовать, чтобы после строки с PSK была добавлена пустая строка. Убедитесь, что вы добавили закрывающую пустую строку в вашем файле/etc/ipsec.secrets
. -
Проверьте права доступа на файл:
Убедитесь, что файл/etc/ipsec.secrets
доступен для чтения ему пользователем, от имени которого запускается служба IPSec. Вы можете использовать командуls -l /etc/ipsec.secrets
для проверки прав доступа. -
Используйте правильные IP-адреса:
Если у вас есть несколько интерфейсов или IP-адресов, убедитесь, что они правильно указаны в конфигурации. Вы можете попробовать использовать явные IP-адреса вместо%any
. -
Правильная конфигурация обеих сторон:
Убедитесь, что конфигурации на обеих сторонах (клиенте и сервере) соответствуют друг другу. Если на одной стороне указан10.1.1.36
, убедитесь, что та же информация присутствует с правильными конфигурациями на противоположной стороне.
Заключение
Ошибки, связанные с аутентификацией IPSec, могут быть вызваны различными причинами, включая неправильные конфигурационные параметры, отсутствие PSK или проблемы с доступом к файлам. Следуя указанным выше шагам, вы сможете устранить проблему и успешно установить VPN-соединение с использованием IPSec. Если же вы продолжаете сталкиваться с трудностями, рекомендуется обратиться к документации Openswan или на специализированные форумы для более детальной помощи.