Возможный? Сервер OpenVPN, требующий входа как на основе сертификата, так и пароля (через встроенное ПО Tomato)

8

Я использовал сборку Tomato от Shibby (версия 64k NVRAM) на своем маршрутизаторе Asus N66U для запуска сервера OpenVPN.

Мне любопытно, можно ли настроить этот сервер OpenVPN, чтобы требовать как сертификат, так и имя пользователя / пароль, прежде чем пользователю будет разрешен доступ.

Я заметил, что при заполнении реквизитов сертификата есть запись «пароль для вызова», но все говорят, что нужно оставить это поле пустым «или иначе»; Я понятия не имею, почему, и я не могу найти объяснение. Кроме того, я собирал эту проблему в Google и заметил, что люди говорят о PAM-модуле для OpenVPN для аутентификации с помощью имени пользователя / пароля, но, похоже, это была опция / или; другими словами, я могу заставить аутентификацию через имя пользователя / пароль или сертификат. Я хочу требовать обоих.

Это возможно? Если так, то как?

Эрик
источник

Ответы:

4

Функция OpenVPN вы ищете, что позволит сервер для клиентов аутентификации на основе как их свидетельств и удостоверения, является auth-user-pass-verify. Эта функция позволяет серверу передавать имя пользователя / пароль, предоставленные удаленным пользователем, сценарию, который выполняет аутентификацию. На этом этапе вы можете проверять учетные данные в соответствии со всем, что вы хотите - PAM, RADIUS, LDAP, дымовые сигналы и т. Д.

Я ничего не знаю о прошивках "Tomato", поэтому я даже не буду пытаться дать вам пошаговое руководство. Я сделал быстрый поиск, и я подозреваю, что вы можете использовать опцию OpenVPN «Custom Configuration», чтобы включить auth-user-pass-verifyссылку. Вам понадобится скрипт для выполнения аутентификации.

Пройдите поиск, и я подозреваю, что вы найдете ссылки на "Tomato".

Эван Андерсон
источник
2

Пароль для вызова - это пароль, используемый для расшифровки ключа. Это единственный способ сделать «пароль» и ключ.

Вы действительно можете проверить только по паролю или ключу, но не обоим. Если у вас включены оба метода, он сначала попробует аутентификацию по ключу, а в случае неудачи обратится к аутентификации по паролю.

Отсутствие ключевой фразы на ключе позволяет кому-то подражать вашей личности, если ему удается заполучить ключ.

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

tacotuesday
источник
Я вот на что с трудом отвечаю. Надеюсь, кто-то еще может просветить нас в этом отношении; это кажется нелогичным предложением.
Эрик
В то же время, существует ли измеримый способ сравнить силу сертификата + требования только с комбинацией имени пользователя и пароля? Я предполагаю, что на порядок сложнее взломать, но это только предположение, основанное на моих косвенных знаниях.
Эрик
Это старый ответ, но ... Это не то, что пароль для вызова и делает. Вы можете использовать ключевую фразу для защиты ключа, как описано выше, но пароль для вызова не имеет отношения к делу. Он не хранится ни в сертификате, ни в ключе, но хранится в СА. Он предназначен для использования при использовании CA для отзыва ключа или замены.
Джек Б
2

auth-user-pass-verify - это то, что нужно. Кроме того, вы можете указать, что имя пользователя auth-user должно быть сертифицированным CN, вы также можете заставить openvpn устанавливать только одно соединение на каждый сертификат за раз.

Таким образом, «мимик» должен иметь правильного пользователя по сравнению с сертификатом CN и правильным пропуском, и он должен войти в систему в то время, когда реальный владелец не имеет

Кроме того, вы можете подумать о IDS, в зависимости от того, какой из них вы выберете, вы даже можете сузить его, например, допустимые внешние диапазоны IP-адресов, время входа в систему и так далее.

Любой открытый сертификат должен быть немедленно отозван. Сервер подписи должен быть отключен от сети - передавайте ключ через usb - тогда у вас будет действительно надежный безопасный доступ.

и нет, вы не должны пароль сертификата.

  1. Легко брутфорс
  2. Вы не можете заблокировать пользователя (сертификат пропущен только в автономном режиме).
  3. Люди постоянно теряют свои пароли, вынуждая вас каждый раз отзывать и воссоздавать сертификат - большой риск наличия большого количества сертификатов там, где вы, возможно, иногда забываете отзыв.

Но если вы действительно хотите, вы можете использовать auth-user и cert password одновременно, не будет никакого отката или чего-то еще.

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

Однако, если злоумышленник получит обычные учетные данные, у вас уже есть проблемы и высоки шансы, он также получит сертификат.

Так что я не вижу здесь реальной пользы, только много недостатков и неправильное чувство большей безопасности.

без разницы
источник
0

Я следовал этому руководству (с TomatoUSB Shibby 1.28 на моем Asus N66U): http://www.dd-wrt.com/wiki/index.php/OpenVPN. Это может вам сильно помочь.

AndyZ
источник
2
AndyZ - добро пожаловать в SF, но нам нравятся ответы, которые содержат больше вещества, чем просто ссылка (которая может сгнить с возрастом). Если вы можете пересмотреть этот ответ, чтобы он содержал важные сведения о методе, которому вы следовали, а также ссылку на статью, это может быть действительно хорошим ответом.
MadHatter