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

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

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

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

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

Возможно ли это? Если да, то как?

решение1

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

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

Поищите немного, и я полагаю, вы найдете ссылки, связанные с «Томатом».

решение2

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

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

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

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

и нет, вам не следует защищать сертификат паролем.

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

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

Сначала OpenVPN использует пароль сертификата для расшифровки закрытого ключа и установления соединения, затем в дело вступает auth-user — если учетные данные неверны, вы выходите из системы.

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

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

решение3

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

Связанный контент