×
HeadHunter and Superjob rezume updater on Ruby on Rails (21 авг 2017)

Практикуемся в написании кода под rails.

Вопрос Openssh. SFTP: Chroot в home directory

Больше
6 года 11 мес. назад - 6 года 11 мес. назад #1 от Aleksej
Aleksej создал эту тему: Openssh. SFTP: Chroot в home directory
Давайте попытаемся ограничить действия пользователя, работающего посредством openssh, домашней директорией только (в подсистеме sftp). Иными словами - зададим ему ChrootDirectory.

SFTP (англ. SSH File Transfer Protocol) — протокол прикладного уровня, предназначенный для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Протокол разработан группой IETF как расширение к SSH-2, однако SFTP допускает реализацию и с использованием иных протоколов сеансового уровня.

Существует заблуждение, что SFTP это просто обычный FTP, работающий поверх SSH. В действительности SFTP — это новый протокол, разработанный с нуля. Иногда его путают с Simple File Transfer Protocol.


1. Создаем группу sftpusers (результаты наших усилий будут применены к участникам данной группы, only):
addgroup --system sftpusers

2. Заменяем подсистему sftp в /etc/ssh/sshd_config:
-Subsystem sftp /usr/lib/openssh/sftp-server
+Subsystem sftp internal-sftp

3. В этот же файл запишем ряд ограничений:
Match Group sftpusers
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no

4. Перечитываем конфиг:
invoke-rc.d ssh reload

5. Берем на заметку, что при создании нового юзера совершенно не обязательно указываеть его шелл; т.к. воспользоваться таковым теперь невозможно.

В качестве шелла указываем /bin/false; а каталог, указанный в качестве ChrootDirectory, обязательно должен принадлежать root, иначе получим следующую ошибку:
fatal: bad ownership or modes for chroot directory "/home/%username%"

Группу-владельца chroot-директории возможно задавать любую. Но доступна на запись она должна быть только root.

6. И - создаем юзера:
useradd -G sftpusers -s /bin/false -d /home/user1 user1
mkdir /home/user1
chown root:user1 /home/user1
chmod 750 /home/user1
Последнее редактирование: 6 года 11 мес. назад от Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.