Настройка SSH и SFTP с использованием sshd_config

Я знаю, что это безопасность через неясность, однако это сделано для учебных целей и не будет доступно через Интернет. Он будет использоваться просто как внутренний инструмент.

Я просмотрел следующую ссылку: Как отключить sftp для некоторых пользователей, но оставить ssh включенным?

Проблема в том, что он не отвечает на мой вопрос, описанный ниже:

Я пытаюсь настроить виртуальный сервер, который позволяет одному пользователю для входа на сервер с помощью sftp, а другой пользователь для входа на сервер с помощью ssh.

Часть sftp работает и выполняется путем принудительного использования internal-sftp в файле sshd_config, показанном далее в этом вопросе. Эта часть работает, поскольку запрещает пользователю входить на сервер с помощью ssh и разрешает им доступ только к тюрьме sftp, которую я создал.

Что касается другого пользователя, который должен иметь доступ к Chroot jail только через ssh, я не уверен, как запретить доступ через sftp. Проблема в том, что я специально создал chroot-тюрьму для этого пользователя, чтобы предотвратить такие команды, как ls и cat, однако, если пользователь обращается к серверу с помощью sftp, он может использовать эти команды.

Раздел в / etc / ssh / sshd_config выглядит следующим образом:

Match User test1
        ChrootDirectory /home/jail
        X11Forwarding no
        AllowTcpForwarding no

# Match Group sftpusers
Match User test2
        ChrootDirectory /sftp/guestuser
        ForceCommand internal-sftp
        AllowUsers test2

Я попытался добавить:

ForceCommand Subsystem sftp /bin/false or
ForceCommand sftp /bin/false or
Subsystem sftp /bin/false or
to
Match User test1

Однако ни одно из вышеупомянутых дополнений не работает с sshd_config.

Итак, мой вопрос:

Есть ли способ запретить пользователю user1 доступ к серверу через sftp? Если нет, есть ли способ удалить определенные команды из sftp, такие как ls или cat?

Мы будем очень благодарны за любые советы.

0
26.07.2017, 14:53
1 ответ

Самый простой способ — создать скрипт, который позаботится об этом. Добавить

Match User test1
  ForceCommand /path/to/your/script.sh

И ваш скрипт в основном будет запускать все, что захочет пользователь, если только это не запрос на SFTP:

#!/bin/bash
if [[ "$SSH_ORIGINAL_COMMAND" =~.*sftp-server.* ]]; then
   echo "SFTP not allowed"
   exit 255;
else
   exec "$SSH_ORIGINAL_COMMAND"
fi
0
28.01.2020, 04:43

Теги

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