URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 4945
[ Назад ]

Исходное сообщение
"ssh: Установить PasswordAuthentication в зависимости от сети"

Отправлено ilway , 30-Сен-11 17:41 
Доброго времени суток.
ОС: Centos 5, вопрос в следующем:
можно ли установить в параметрах sshd PasswordAuthentication = (yes/no) в зависимости от ip хоста, от которого пришел запрос на соединение?
Хотелось бы увидеть: внутри локальной сети допускается авторизация по паролю, из внешней сети - только по ключу.
Пока в /etc/ssh/sshd_config
PermitRootLogin without-password
PasswordAuthentication yes
, но, хотелось бы допускать пользователей снаружи сети только по ключу, без пароля (хотя бы для того, чтобы рестартануть апач).
Внешний ip заранее неизвестен, так что hosts.allow не подходит

Не представляю где копать... pam?
Помогите советом, пожалуйста


Содержание

Сообщения в этом обсуждении
"ssh: Установить PasswordAuthentication в зависимости от сети"
Отправлено Cristian , 30-Сен-11 17:57 
Как вариант, запустить два демона sshd. Один демон завесить на внутреннем интерфейсе (авторизация по паролю). Второй демон sshd смотрит в интернет, и авторизация на нем сугубо по ключу.

Плюсы данного решения в том, что вы можете контролировать пользователей интранета и интернета отдельно на разных демонах sshd, изменяя их конфигурации по отдельности.
+ можно настроить work time-ы через cron.


"ssh: Установить PasswordAuthentication в зависимости от сети"
Отправлено ilway , 30-Сен-11 18:05 
> Как вариант, запустить два демона sshd. Один демон завесить на внутреннем интерфейсе
> (авторизация по паролю). Второй демон sshd смотрит в интернет, и авторизация
> на нем сугубо по ключу.
> Плюсы данного решения в том, что вы можете контролировать пользователей интранета и
> интернета отдельно на разных демонах sshd, изменяя их конфигурации по отдельности.
> + можно настроить work time-ы через cron.

Спасибо за быстрый ответ. Тоже думал об этом, но как о последнем решении. Сервер стоит во внутренней сети, все пакеты пока приходят через один интерфейс, но не суть - можно добавить алиас или VLAN ,относящийся к DMZ.

Work time не подходит в моем случае - как правило ssh используется при авариях, чтобы помощник тот же апач перезапустил.


"ssh: Установить PasswordAuthentication в зависимости от сети"
Отправлено Cristian , 30-Сен-11 18:05 
Если у вас интерфейс один, тогда можно завесить демоны на разные порты (например 22/23) а на NAT-сервере/устройстве сделать правило переброса (Internet IP, port 22) -> (Server sshd port 23).

"ssh: Установить PasswordAuthentication в зависимости от сети"
Отправлено ilway , 30-Сен-11 18:14 
> Если у вас интерфейс один, тогда можно завесить демоны на разные порты
> (например 22/23) а на NAT-сервере/устройстве сделать правило переброса (Internet IP, port
> 22) -> (Server sshd port 23).

Как таковой, проблемы в доведении до ssh того факта, что к нему стучатся из внешней сети нет (алиасы ethX:Y, vlan, port-map), теоретически было интересно управиться одним демоном, который бы определял разные границы аутентификации, о чем и вопрос был. Может, надо покопаться в pam (там я не силен) или есть какая-то группа опций для конкретной маски ip - это было бы интересно...
Спасибо за ответ!


"ssh: Установить PasswordAuthentication в зависимости от сети"
Отправлено shadow_alone , 30-Сен-11 19:35 
В sshd_config есть директива Match
Почитайте, например тут - http://www.gossamer-threads.com/lists/openssh/dev/42757

Через эту директиву Вы можете разрешать/запрещать определенным юзерам варианты авторизации и не только.

А ограничение по IP сделайте общей директивой AllowUsers или AllowGrous с указанием IP - user@192.168.0.*

Используя в совокупности эти 2-е директивы, вы как раз, решите Вашу задачу.


Match group internalusers
PasswordAuthentication yes

а глобально


AllowUsers admin technik@192.168.0.*
PasswordAuthentication no

ну и technik должен быть в группе internalusers

почитайте еще вот это - http://serverfault.com/questions/286159/how-to-disabled-pass...

Или еще проще, просто


Match user technik@192.168.0.*
PasswordAuthentication yes


"ssh: Установить PasswordAuthentication в зависимости от сети"
Отправлено ilway , 03-Окт-11 14:26 
[skipped]

> почитайте еще вот это - http://serverfault.com/questions/286159/how-to-disabled-pass...
> Или еще проще, просто
>

 
> Match user technik@192.168.0.*
>  PasswordAuthentication yes
>

ОГРОМНЕЙШЕЕ ВАМ СПАСИБО! Это то, что надо!