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

Служба OpenVPN, запускаемая с правами root: root, а не nobody: nogroup?

Это было перемещено из NetworkEngineering.

я использовал это руководство по DigitalOcean (далее «руководство») по настройке службы OpenVPN (v2.3.10, OpenSSL 1.0.2g) несколько месяцев назад. Он работает безупречно и быстрее, чем наше старое устройство VPN. Я сейчас нахожусь в точке, где мне нужно отозвать сертификат. Я выполнил шаги из шага 14 в руководстве, и на этой странице без везения.

я добавил crl-verify $SomeSuchDir/crl.pem (где $SomeSuchDir является любым из путей '/ etc / openvpn', '/ root / openvpn-ca / keys' и null (как указано в руководстве)) к файлу конфигурации, перезапустил службу, и ни один из сертификатов не работает, действительный или аннулированы одинаково. С crl-verify crl.pem опция включена, я получаю эту ошибку

«TLS_ERROR: ошибка чтения BIO tls_read_plaintext: ошибка: 14089086: подпрограммы SSL: ssl3_get_client_certificate: ошибка проверки сертификата»

когда действующий или отозванный сертификат пытается подключиться. Когда я закомментирую параметр и перезапускаю службу, я все еще могу подключиться с явно отозванным сертификатом. В файле index.txt есть «R» и дополнительное поле для отозванного сертификата, и я получаю сообщение «error 23» при запуске revoke-full bad-cert сценарий.

Я просмотрел сценарий revoke-full, файл переменных vars и файл openssl-1.0.0.cnf, и похоже, что все там, где должно быть. У кого-нибудь еще была проблема с созданием CRL для OpenVPN?

ОБНОВИТЬ:

Переместив это из NetworkEngineering, я покопался в файле журнала и нашел CRL: cannot read CRL from file $SomeSuchDir/crl.pem. Файл был по крайней мере доступен для чтения. Я наткнулся эта почта, где у автора были похожие проблемы. Его решение заключалось в том, чтобы закомментировать две строки, которые запускают службу OpenVPN как никто: nogroup. Хотя мой файл crl.pem был доступен для чтения всем, каталоги-предки должны быть по крайней мере "r-x" никому: nogroup. Все мои файлы были внутри / root, поэтому никому не было доступа: nogroup.

Я создал / REV и воткнул в него crl.pem, никого не сделав владельцем: nogroup. Я изменил параметр конфигурации на crl-verify /REV/crl.pem и перезапустил службу. Похоже, что отозванные сертификаты не разрешены, а действительные сертификаты разрешены.

Я прошел через еще один раунд подключения к другому сертификату, который должен быть отозван. я сделал ./revoke-full cert-to-be-revoked, получил соответствующие сообщения «error 23 ...» и «База данных обновлена», скопировал $ KEY_DIR / crl.pem в / REV /, отправил telnet в интерфейс управления, выполнил kill cert-to-be-revoked, и клиент не смог повторно подключиться. Я проверил отозванный сертификат, и соответствующий серийный номер был в «Отозванных сертификатах:» с openssl crl -in crl.pem -text.

Итак, теперь вопрос в том, безопасно ли запускать службы OpenVPN от имени root: root вместо nobody: nogroup?