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

Ограничение доступа пользователей в Debian Squeeze

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

Я использую SFTP и не хочу устанавливать обычный FTP из-за всех возникающих дополнительных проблем с безопасностью.

rbash звучит как хорошая идея, за исключением того факта, что он отключает cd. Я хочу, чтобы пользователи могли создавать каталоги в своем домашнем каталоге и перемещаться по своим собственным папкам.

А chroot jail звучит так, как будто у него есть собственный набор проблем, и это больше похоже на головную боль, чем она того стоит.

Итак, мой вопрос: есть ли более простой способ ограничить пользователя только возможностью перемещаться по его пользовательскому каталогу, а не чем-либо выше его пользовательского каталога?

Если вы можете ограничить их только SFTP и не позволять им входить в систему через ssh, вы можете использовать средства chroot, встроенные в openssh. вот хорошая статья, объясняющая, как

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

Чтобы chroot Пользователь, использующий SSH для доступа только по SFTP:

Начиная с Debian Squeeze 6.0.5 и OpenSSH 5.5p1

  1. Добавить пользователя: adduser username

  2. Добавьте группу для назначения пользователей, для пользователей, которых вы хотите исключить:

    addgroup sftponly <- название группы не имеет значения, если вы измените его во всех местах ниже

  3. Добавить пользователя в группу: usermod -G groupname username

  4. Установите libpam-chroot: apt-get install libpam-chroot

  5. Добавьте следующую строку в /etc/pam.d/login

    session required pam_chroot.so debug

  6. Перейти к: /usr/share/doc/libpam-chroot/examples

  7. Затем: chmod 744 setup-chrootdir-shell.sh так что вы можете запустить скрипт

  8. Запустите скрипт, указав каталог после скрипта:

    ./setup-chrootdir-shell.sh /path/to/userdir

  9. Убедитесь, что каталог, который только что создан скриптом, существует, принадлежит пользователю и корню группы и для него установлено 755 разрешений.

  10. Измените домашний каталог для пользователя: usermod -m -d /home/chrootdir/home username

  11. Отключить оболочку пользователя: chsh -s /bin/false username

  12. Скопируйте файлы пользователя в новый каталог (папку .ssh, .profile и т. Д.)

  13. Отредактируйте файл конфигурации sshd: vi /etc/ssh/sshd_config

    # %h/.ssh/authorized_keys is the default

    AuthorizedKeysFile /home/%u/.ssh/authorized_keys

    # Subsystem for chroot jail

    # Default is Subsystem sftp /usr/lib/openssh/sftp-server

    Subsystem sftp internal-sftp

    # Chroot jail config

    Match group sftponly

    ChrootDirectory /home/chrootdir/home/%u

    X11Forwarding no

    AllowTcpForwarding no

    ForceCommand internal-sftp

    Match

  14. Если вы используете AllowUsers, добавьте к нему этого пользователя.

    AllowUsers username

  15. редактировать /etc/passwd и измените расположение каталога пользователя для пользователя

    vi /etc/passwd

    например: username:x:1001:1002:/home/chrootdir/home:/bin/false

  16. перезапустить ssh: /etc/init.d/ssh restart