Могу ли я использовать SFTP в качестве SCP?

Мой клиент хочет простое хранилище, доступное через SCP и SFTP. Будет две учетные записи пользователей, одна только для чтения, а другая для чтения и записи.

Из соображений безопасности я хочу как можно больше заглушить это:

  1. Я хочу, чтобы пользователь был ограничен своим домашним каталогом без возможности выйти
  2. Корневой каталог пользователя должен оставаться доступным для записи. Внутренний sftp SSH с chroot, к сожалению, не в этом
  3. Я не хочу разрешать доступ к нормальной оболочке
  4. Я не хочу, чтобы пользователи могли связываться с разрешениями / владельцами файлов

До сих пор я реализовал SFTP с использованием SSH + MySecureShell, он работает и кажется довольно пуленепробиваемым. Однако SCP не работает, что было одним из требований моего клиента.

  1. Есть ли способ заставить SCP работать с MySecureShell? Или какая-то другая оболочка?
  2. Если нет, есть ли способ использовать sftp из командной строки, как вы бы scp? Я имею в виду, не в интерактивном режиме, а с использованием синтаксиса, максимально приближенного к SCP.

1 ответ

В /etc/ssh/sshd_config изменить тип подсистемы SFTP:

Subsystem       sftp    internal-sftp

Это позволяет выполнять все операции с файловой системой без какой-либо оболочки. Затем измените оболочку пользователя в passwd подать в /bin/true или что-то еще безвредное. Убедитесь, что добавленная "оболочка" упоминается в /etc/shells в качестве допустимого двоичного кода разрешено использовать в качестве оболочки.

Также вы можете ограничить пользователей chroot особенность internal-sftp,

Match                   User alice 
  X11Forwarding         no
  AllowTcpForwarding    no
  ChrootDirectory       /some/place/alicedir

Справочники some, place а также alicedir должен принадлежать root и не должен быть доступен для записи никем, кроме root, каталог alicedir должен содержать каталоги, такие как upload, htdocs или что должно принадлежать alice с разрешениями rwx------/700.

Другие вопросы по тегам