LinuxForum.Fans
Тема

openSSL vs SSLeay: настройка racoon IPSec + xl2tpd

Автор: Liber 6 сообщений 2429 просмотров
#308781

Пытаюсь разобраться с настройкой L2TP сервера. Нашел вроде неплохую статью:
https://libc6.org/page/l2tp-ipsec-server-howto

Там рассмотрен вариант с openSSL и генерацией сертификатов при помощи утилит easy-rsa (раньше входили в пакет openVPN, сейчас распространяются отдельно). Проблема следующая: у меня Debian Squeeze с предустановленным пакетом SSLeay. При попытке установить openSSL выскакивает ошибка:

text
# aptitude show openssl
Пакет: openssl
Состояние: не установлен
Версия: 0.9.8o-4squeeze13
Приоритет: необязательный
Раздел: utils
Сопровождающий: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
Размер в распакованном виде: 2 433 k
Зависимости: libc6 (>= 2.7), libssl0.9.8 (>= 0.9.8m-1), zlib1g (>= 1:1.1.4)
Предлагаются: ca-certificates
Конфликтуют: ssleay (< 0.9.2b)
Описание: Secure Socket Layer (SSL) binary and related cryptographic tools
 This package contains the openssl binary and related tools.

Теперь не знаю, как быть... Вроде, openSSL - более новая реализация, чем SSLeay. Но удалять ее и устанавливать openSSL я побаиваюсь в силу неопытности. Не возникнет ли конфликтов в результате? Мало ли, мож остальные предустановленные пакеты сконфигурированы на работу исключительно с ней?

В то же время, найти заслуживающих доверие статей/манов по настройке IPSec в связке с SSLeay, генерации сертификатов и всего в таком роде мне не удалось.

Подскажите пожалуйста, как лучше поступить в моем случае? Можно удалить SSLeay и поставить openSSL? Или все-таки как-то заставить работать racoon с тем, что есть?

Спасибо!

#309013

Поставил таки openSSL и отказался от racoon в пользу openswan.

Сейчас курю мануалы и пытаюсь вникнуть в суть™. Корневые сертификаты, ключи секретные, ключи публичные... %)

Раньше мне казалось, что принцип действия всей этой байды мне в целом понятен, но когда взялся за решение конкретных задач окончательно запутался. *WALL*

Господа гуру, не подскажете линк на ман или статейку, где это все понятно и на пальцах расписано? А то я тут сейчас наделаю, что на деле ничего шифроваться не будет. Совсем идеально, если в контексте IPsec.

Насколько я понимаю, то общий принцип таков: сперва при помощи openSSL создается собственный CA-сертификат (чтобы не обращаться к организациям-сертификаторам). Потом с его помощью создается секретный ключ для сервера, который скармливается openswan. А потом уже при помощи этого ключа генерятся публичные ключи для клиентов. Если что-то путаю, поправьте, пожалуйста! *HELP*

#309020

Или сперва генерируется секретный ключ, на основе которого создаются сертификаты?..

#309061
"Liber⇓" написал:
При попытке установить openSSL выскакивает ошибка:

# aptitude show openssl
Пакет: openssl
Состояние: не установлен
Версия: 0.9.8o-4squeeze13
Приоритет: необязательный
Раздел: utils
Сопровождающий: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
Размер в распакованном виде: 2 433 k
Зависимости: libc6 (>= 2.7), libssl0.9.8 (>= 0.9.8m-1), zlib1g (>= 1:1.1.4)
Предлагаются: ca-certificates
Конфликтуют: ssleay (< 0.9.2b)
Описание: Secure Socket Layer (SSL) binary and related cryptographic tools
This package contains the openssl binary and related tools.

А где ошибка?

#309099

"Macumazan⇓" написал:
А где ошибка?
Да, я уже просек, что это:
Конфликтуют: ssleay (< 0.9.2b)
только предупреждение. Поглядел список установленных пакетов, не нашел там SSLeay и установил OpenSSH.
#309297

Вроде начало приходить понимание мало-помалу... )
Нашел неплохую статью:
http://www.natecarlson.com/2007/07/30/configuring-an-ipsec-tunnel-between-openswan-and-windows-2000-xp/

При момощи openSSL создал CA-сертификат cacert.pem
Потом создаю новый запрос на сертификацию для клиента:
/usr/lib/ssl/misc/CA.sh -newreq
Получаются файлы newreq.pem и newkey.pem
Подписываю клиентский запрос на сертификацию:
/usr/lib/ssl/misc/CA.sh -sign
На выходе файл newcert.pem

В статье сказано, что для openswan необходимы файлы newcert.pem и newreq.pem. И их надо переименовать соответственно:
newcert.pem > hostname.pem
newreq.pem > hostname.key

Мне это как-то странно... Разве newreq.pem нужен не только для того, чтобы подписать новый клиентский сертификат? Это ведь вроде не ключевой файл? По логике, нужен файл newkey.pem.

Читаю дальше. Для использования виндовым клиентом, сертификат клиента надо преобразовать в pkcs12.
В статье это предлагается сделать такой командой:
openssl pkcs12 -export -in hostname.pem -inkey hostname.key -certfile demoCA/cacert.pem -out hostname.p12

Пытаюсь выполнить и нарываюсь на ошибку:

text
unable to load private key
5355:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:650:Expecting: ANY PRIVATE KEY

Чешу маковку и скармливаю openssl pkcs12 -export не hostname.key (бывший newreq.pem), а newkey.pem. И все прокатывает!

Выходит, все-таки в статье ошибка или я чего-то недопонял?.. Хотя в коментах видно, что народ с той же проблемой столкнулся.

Спасибо!

Войдите или зарегистрируйтесь, чтобы ответить.