Дозволити автентифікацію пароля на сервері SSH з внутрішньої мережі


22

У мене є сервер OpenSSH 5.9p1, який працює на Ubuntu Precision 12.04, який приймає з'єднання як із внутрішньої мережі, так і з Інтернету. Я хотів би вимагати аутентифікації відкритого ключа для з'єднань з Інтернету, але прийміть або аутентифікацію відкритого ключа, або пароль для з'єднань із внутрішньої мережі. Чи можу я налаштувати OpenSSH для цього?

Відповіді:


34

MatchДиректива /etc/ssh/sshd_configдозволяє вибірково застосовувати директиви конфігурації. Одним із доступних критеріїв відповідності є адреса джерела з'єднання, і це може бути використане для реалізації того, що ви хочете. Ви можете вимкнути автентифікацію пароля за замовчуванням, а потім увімкнути його для з'єднань із діапазонів IP внутрішньої мережі. (Зверніть увагу, що ви також хочете відключити ChallengeResponseAuthentication, щоб запобігти використанню паролів.) Цей приклад дозволяє автентифікувати паролі з усіх приватних діапазонів IPC RF1818. Докладніше див. На сторінці sshd_config .

PasswordAuthentication no
ChallengeResponseAuthentication no

Match Address 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
    PasswordAuthentication yes

Зауважте, що Блок відповідності повинен бути доданий до кінця файлу, інакше все, що випливає, буде узгоджено до наступного блоку відповідності. Неправильне розташування блоку Match може спричинити неможливість підключення.


3
Зверніть увагу: якщо ви зробите це і переправите SSH з якоїсь загальнодоступної машини (jumhost) на машину з вищевказаним конфігурацією (внутрішній хост), ви все одно можете відкрити себе для атаки, оскільки вихідним IP-адресою стрибка буде адресу RFC1918 і дозволити автентифікацію пароля для вашого внутрішнього хоста.
c4urself
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.