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

Ограничения файлов SFTP

Можно ли использовать SFTP в Linux и ограничить учетную запись пользователя ОДНИМ каталогом, чтобы нельзя было получить другой список каталогов? Да, я должен использовать SFTP, FTP используется только людьми, которые любят быть взломанными.

Например, я хочу, чтобы кто-то изменил файлы в / var / www / code /, но я не хочу, чтобы они могли изменять что-либо еще. Я даже не хочу, чтобы они видели содержимое / tmp /.

(Я приму «быстрое и грязное» решение, если оно безопасный.)

Из справочной страницы sshd_config:

ChrootDirectory
             Specifies a path to chroot(2) to after authentication.  This
             path, and all its components, must be root-owned directories that
             are not writable by any other user or group.  After the chroot,
             sshd(8) changes the working directory to the user's home directo-
             ry.

             The path may contain the following tokens that are expanded at
             runtime once the connecting user has been authenticated: %% is
             replaced by a literal '%', %h is replaced by the home directory
             of the user being authenticated, and %u is replaced by the user-
             name of that user.

             The ChrootDirectory must contain the necessary files and directo-
             ries to support the user's session.  For an interactive session
             this requires at least a shell, typically sh(1), and basic /dev
             nodes such as null(4), zero(4), stdin(4), stdout(4), stderr(4),
             arandom(4) and tty(4) devices.  For file transfer sessions using
             ``sftp'', no additional configuration of the environment is nec-
             essary if the in-process sftp server is used, though sessions
             which use logging do require /dev/log inside the chroot directory
             (see sftp-server(8) for details).

             The default is not to chroot(2).

Другой альтернативой может быть замена их оболочки на MySecureShell, которая дает вам такие функции, как Chroot, ограничение пропускной способности, ограничение соединения и т. Д. И т. Д.

http://mysecureshell.sourceforge.net/

В настоящее время использую его в среде веб-хостинга, и, надо сказать, он неплохо сработал.

http://pizzashack.org/rssh/ позволяет настроить ограниченный ssh, чтобы запускались только SFTP / SCP; это также помогает настроить chroot.

Как указывает CarpeNoctem, иногда FTPS является лучшим решением. ssh, SFTP, scp - очень "низкоуровневые", FTPS (как и небезопасный FTP) обычно более высокоуровневые (виртуальные каталоги, виртуальные пользователи и т. д.).

Я думаю, что для описанного вами сценария оба подхода будут работать.

SFTP НЕ является многофункциональным решением, сравнимым с FTP-сервером, таким как vsftpd. Он не поддерживает chroot; что вы ищете. FTPS (не SFTP) будет лучшим решением, поскольку он поддерживает шифрование, chroot и т. Д. Vsftpd поддерживает это и его легко настроить.

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

Я бы использовал эту конфигурацию: http://www.debian-administration.org/articles/590

Затем для функции chroot: http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny