Моему клиенту требуется простое хранилище, доступное через SCP и SFTP. Будет две учетные записи пользователей, одна предназначена только для чтения, а другая - для чтения и записи.
По соображениям безопасности я хочу сделать это как можно больше:
До сих пор я реализовал SFTP с использованием SSH + MySecureShell, он работает и кажется довольно надежным. Однако SCP не работает, что было одним из требований моего клиента.
в /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.