Отключите прямой вход в систему для обычных пользователей (как оракул) в Linux, но позвольте scp и sftp?

Эта функциональность является средой рабочего стола и конкретным менеджером окон.

В особенности в Gnome, рабочий стол реализован независимо от Вашего менеджера окон. Теми событиями, которые инициированы Gnome, управляет программа регулятора громкости гнома:

alt text
(источник: tirania.org)

При изменении конфигурации менеджера окон по умолчанию она будет зависеть от менеджера окон, который Вы выбрали.

4
05.05.2012, 17:56
3 ответа

Методы, такие как создание файла /etc/nologin, установка учетной записи входит в оболочки к /bin/false или /sbin/nologin эффективно отключите учетные записи пользователей от вхождения в интерактивную оболочку, но не защищайте систему.

Если Вы хотите конкретно ограничить пользователя использованием scp или sftp только, установите ограниченную оболочку, которая разработана, чтобы сделать точно это. rssh пакет является ограниченной оболочкой, разработанной для работы с OpenSSH.

: rssh is a restricted shell for use with OpenSSH, allowing only scp
: and/or sftp. For example, if you have a server which you only want
: to allow users to copy files off of via scp, without providing shell
: access, you can use rssh to do that. It is a alternative to scponly.

Необходимо серьезно рассмотреть установку a chroot для пользователей, входящих в систему с ограниченным rssh оболочка.

Считайте и поймите последствия безопасности ограничения пользователей таким способом. Запустите с man страницы для rssh и rssh.conf. Необходимо также понять что a chroot и как это работает.

4
27.01.2020, 20:56

Оболочка входа в систему может быть изменена от bash кому: /usr/sbin/nologin или /bin/false действительно предотвратите нормальный вход в систему. Оболочка входа в систему может быть изменена с usermod:

usermod user_name -s /usr/sbin/nologin
0
27.01.2020, 20:56
  • 1
    Некоторые sftp клиенты не используют надлежащий sftp, а скорее пытаются войти в систему и выполнить основные команды как CD, ls.... В этом случае используйте scp или другую sftp клиентскую программу. –  jippie 05.05.2012, 09:35

Вы можете добавить это в конфигурацию sshd _:

Match User oracle
        ForceCommand set - ""$SSH_ORIGINAL_COMMAND; [ "$1" = "scp" ] || exit 1; CMD=`IFS='\`&;<>'; set - ""$SSH_ORIGINAL_COMMAND; echo $1`; [ "$CMD" ] || exit 1; exec $CMD

Здесь я сопоставляю пользователя 'oracle'. Вместо этого вы можете использовать Match group scponlyдля сопоставления пользователей в группе 'scponly'. Если кто-то попытается подключиться способом, не запускающим scp, он автоматически завершит работу с кодом возврата 1.

Если учетная запись использует аутентификацию на основе ключа -, вы можете добавить ключ в файл ключей.ssh/authorized _пользователя с помощью command="<above commands>".

Хотя я добавил некоторую защиту от манипулирования файлом, чтобы вызвать выполнение мошеннической команды (путем усечения любых &``;<>символов ), я не могу быть уверен, что это невозможно сработать вокруг каким-то образом я не думал.

Все это слишком длинно и запутанно для вставки в конфигурационный файл sshd _, а опечатка может испортить работу другим пользователям. Возможно, было бы лучше создать скрипт, который выполняет проверку на "scp", а затем просто вызвать этот скрипт из ForceCommand, что сделает модификации в sshd_configнамного проще. Посмотритеhttps://serverfault.com/questions/749474/ssh-authorized-keys-command-option-multiple-commandsдля некоторых примеров этого.

1
04.03.2021, 03:58

Теги

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