Я использовал сборку Tomato от Shibby (версия 64k NVRAM) на моем маршрутизаторе Asus N66U для запуска сервера OpenVPN.
Мне любопытно, можно ли настроить этот сервер OpenVPN, чтобы требовать как сертификат И имя пользователя / пароль перед тем, как пользователю будет разрешен доступ.
Я заметил, что при заполнении сведений о сертификате есть запись «пароль вызова», но все говорят, что нужно оставить ее пустым «или иначе»; Не знаю почему, и не могу найти объяснения. Кроме того, я много раз гуглил эту проблему и заметил, что люди говорят о модуле PAM для OpenVPN для аутентификации через имя пользователя / пароль, но это появился быть вариантом либо / или; другими словами, я могу принудительно аутентифицировать через имя пользователя / пароль ИЛИ сертификат. Я хочу потребовать и то, и другое.
Это возможно? Если да, то как?
Функция OpenVPN, которую вы ищете, которая позволит серверу аутентифицировать клиентов на основе обе их сертификат и учетные данные, auth-user-pass-verify
. Эта функция позволяет серверу передавать имя пользователя / пароль, предоставленные удаленным пользователем, сценарию, выполняющему аутентификацию. На этом этапе вы можете проверить учетные данные по всему, что захотите - PAM, RADIUS, LDAP, дымовые сигналы и т. Д.
Я ничего не знаю о прошивках "Tomato", поэтому я даже не буду пытаться давать вам здесь пошаговые инструкции. Я произвел быстрый поиск и подозреваю, что вы можете использовать опцию «Пользовательская конфигурация» OpenVPN, чтобы включить auth-user-pass-verify
ссылка. Вам понадобится сценарий для выполнения аутентификации.
Поищите немного, и я подозреваю, что вы найдете ссылки на "Помидор".
auth-user-pass-verify - это то, что нужно сделать. Кроме того, вы можете заставить имя пользователя auth-user быть сертифицированным CN, вы также можете заставить openvpn устанавливать только одно соединение для каждого сертификата за раз.
Таким образом, "имитатор" должен иметь правильного пользователя по сравнению с сертификатом CN и правильным проходом, и он должен входить в систему в то время, когда настоящий владелец делает
Кроме того, вы можете подумать об IDS, в зависимости от того, какую из них вы выберете, вы можете даже сузить ее, например, допустимые внешние диапазоны IP, время входа в систему и так далее.
Любой открытый сертификат следует немедленно отозвать. Сервер подписи должен быть отключен от сети - передайте ключ по USB - тогда у вас будет действительно надежный безопасный доступ.
и нет, вы не должны вводить пароль для сертификата.
Но если вы действительно хотите, вы можете использовать пароль аутентификации и сертификат одновременно, не будет никакого отката или чего-то еще.
Сначала openvpn будет использовать пароль сертификата для расшифровки закрытого ключа для установления соединения - затем пользователь авторизации запускается автоматически - если учетные данные неверны, вы отключены.
Однако если злоумышленник получит обычные учетные данные, у вас уже будут проблемы, и высока вероятность, что он также получил пароль сертификата.
Так что я не вижу здесь реальной пользы, просто есть множество недостатков и неправильное чувство большей безопасности.
Пароль запроса - это кодовая фраза, используемая для дешифрования ключа. Это единственный способ действительно сделать «пароль» и ключ.
Вы действительно можете подтвердить только по паролю или ключ, а не оба. Если у вас включены оба метода, он сначала попытается выполнить аутентификацию по ключу, а если это не удастся, он вернется к аутентификации по паролю.
Отсутствие парольной фразы на ключе позволяет кому-то имитировать вашу личность, если они случайно завладеют ключом.
Я бы посоветовал выяснить, почему Interwebz говорит, что вы не должны использовать парольные фразы для ключей, и посмотреть, действительно ли это проблема.
Я следовал этому руководству (с TomatoUSB Shibby 1.28 на моем Asus N66U): http://www.dd-wrt.com/wiki/index.php/OpenVPN Это может вам очень помочь.