@the_bizzon

Как запретить конкретному пользователю доступ по SSH при соединение на конкретном интерфейсе?

Вот такой вопрос. Есть сервер с двумя интерфейсами (Ubuntu 14). Один смотрит в локальную сеть другой в интернет. На сервере есть 2 пользователя admin и user. Стоит SFTP. User должен иметь доступ из интернета к своей папке по SFTP и не иметь доступ к шеллу. Тут все нормально настроено и работает.
Но как побочный эффект открыт из интернета доступ по ssh и sftp и у admin. Хотелось бы закрыть. Если в /etc/ssh/sshd_config добавить строку ListenAddress с указанием адреса локального интерфейса то доступ из вне закрывается в том числе и для SFTP user, что не есть хорошо.
Если сформулировать задачу по короче то: Требуется запретить конкретному пользователю доступ по SSH при соединение на конкретном интерфейсе. Есть идеи?
  • Вопрос задан
  • 3204 просмотра
Решения вопроса 1
@the_bizzon Автор вопроса
Спасибо всем за советы, они подтолкнули меня к правильному решению.
Собственно решение.
Все решается путем редактированием файла /etc/ssh/sshd_config
  1. Разрешим доступ только пользователю user и пусть заходит откуда хочет.
    AllowUsers user
  2. Создадим директиву разрешающую пользователю user только SFTP и определим ему директорию (у меня это уже было)
    Match User user
    ChrootDirectory /ftp/user/
    ForceCommand internal-sftp

  3. Создадим директиву разрешающую доступ по SSH пользователю admin только если ip адрес клиента входит в диапазон локальных адресов
    Match Address 192.168.0.0/24
    AllowUsers admin



Может кому пригодиться.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Lynn
@Lynn
nginx, js, css
man 5 sshd_config
DenyUsers и т.п.
Ответ написан
Комментировать
3vi1_0n3
@3vi1_0n3
Как вам идея запускать два экземпляра sshd с разными конфигами?
sshd -f config_file

И, кстати, AllowUsers пробовали?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы