Назад | Перейти на главную страницу

Linux: как отключить любые виды удаленного управления для определенного пользователя?

Как отключить любые виды удаленного управления (SSH, X, NFS, SMB, ... что еще?)
для определенного пользователя?

Или наоборот: как отключить удаленное управление?
для всех пользователей, кроме одного?

Есть ли способ сделать это в одном месте?
(Поместив пользователя в определенную группу или около того)

  • SSH использует имена пользователей и пароли для аутентификации / авторизации.
  • В NFS сервер использует IP-адреса для монтирования аутентификации / авторизации и идентификатор пользователя при использовании отдельных файлов (используются обычные разрешения Unix). Также он может использовать другие методы, например Kerberos. В любом случае идея заключается в том, что авторизация на установку выполняется для каждой машины, а не для каждого пользователя.
  • Самба большую часть времени использует имена пользователей и пароли для монтирования (security = user), и я думаю, что CIFS также поддерживает использование UID при доступе к отдельным файлам, как и NFS. Имена пользователей и пароли обычно хранятся в файле с названием passdb.tdb, не в /etc/shadow, так passwd не меняет пароль пользователя Samba.
  • Икс использует IP-адреса для аутентификации / авторизации или файлы cookie.

Как видите, нет простого способа включить / отключить доступ к этим службам для конкретного пользователя.

LE: пара сетевых сервисов, включая RPC (используется NFS) и SSH, используют hosts_access механизм (man hosts_access) для аутентификации / авторизации на основе хоста. Вам нужно будет отредактировать /etc/hosts.allow и /etc/hosts.deny для этого. По сравнению с iptables, преимущество состоит в том, что вам не нужно знать порты служб, но не все службы поддерживают этот механизм. Параноики будут использовать и то, и другое :-)

LE2: hosts_access также поддерживает имена пользователей, но, как ни странно, это небезопасно.

Я не уверен насчет SMB и NFS, так как никогда ими не пользуюсь. На моих серверах SSH - единственная служба, доступная для удаленного доступа, и я могу ограничить их доступ с помощью директивы AllowUser в sshd_config. В последних версиях OpenSSH есть внутренний клиент sftp (без внешних зависимостей), который можно настроить. Это позволяет относительно легко настроить пользователя с доступом sftp только к каталогу с chroot'ом - например, когда им нужно обновить веб-контент и т. Д.

Subsystem sftp internal-sftp

MatchUser Joe
  ForceCommand internal-sftp
  ChrootDirectory /var/www

the chroot dir and all above it must be:
* owned by root
* not group or other writable 

Ограничительный брандмауэр IPTABLES с DROP по умолчанию будет работать достаточно эффективно (не забудьте оставить дыру для себя и локального хоста). ;-) Вручную добавьте статический IP-адрес "допустимого" хоста (ов) для каждого порта в отдельности. Нет IP-адреса, не обслуживается. Примечание. Это не предотвратит создание туннелей к разрешенным портам для разрешенного хоста. Кроме того, как упомянул Кристиан Чиупуту (голосование «за» ... ;-), в samba есть раздел «разрешенные хосты», в NFS есть диапазон, в который вы экспортируете, перенаправление X можно отключить, а ssh можно заблокировать или запретить.

Вы можете легко отключить учетную запись пользователя с помощью этой команды:

passwod <username> -l

И снова включите его:

passwod <username> -u

Будет ли это полностью эффективным для блокировки доступа пользователя, зависит от того, какие службы вы используете. Но они точно не смогут войти в систему.

Вы хотите изучить PAM: http://www.kernel.org/pub/linux/libs/pam/

Ура

Я не могу добавить комментарий, поэтому ... что на самом деле пытается сделать OP, остановить пользователя от доступа к клиентам с удаленными возможностями? Отключить весь доступ в Интернет? Вы действительно хотите предотвратить входящий доступ к портам, используемым для удаленного доступа [sudo ufw enable делает это, поскольку по умолчанию все входящие запросы отбрасываются] ??

Удаление битов выполнения и / или чтения в клиентских двоичных файлах, например, ssh запретит пользователю доступ к нему [sudo chmod o-rwx /usr/bin/ssh остановит его использование кем угодно, кроме владельца (root) и группы (root), при условии, что у них нет разрешения на его использование через sudo] - однако они могут просто установить новый клиент, если вы оставите им права на установку.

Это многопользовательская машина. Если это последовательные несколько пользователей (а не параллельные), тогда вы можете запустить скрипт брандмауэра при входе в систему для непривилегированных пользователей и отключить различный трафик. Но тогда ваш пользователь может туннелировать трафик через нетрадиционные порты.

Вы можете обойти любой из них, загрузив отдельную ОС с флешки или DVD и затем разрешив доступ к компьютеру. Это возвращает нас к главному вопросу: «Чего вы на самом деле пытаетесь достичь?».