Давайте попытаемся ограничить действия пользователя, работающего посредством openssh, домашней директорией только (в подсистеме sftp). Иными словами - зададим ему ChrootDirectory.
1. Создаем группу sftpusers (результаты наших усилий будут применены к участникам данной группы, only):
2. Заменяем подсистему sftp в /etc/ssh/sshd_config:
3. В этот же файл запишем ряд ограничений:
4. Перечитываем конфиг:
5. Берем на заметку, что при создании нового юзера совершенно не обязательно указываеть его шелл; т.к. воспользоваться таковым теперь невозможно.
В качестве шелла указываем /bin/false; а каталог, указанный в качестве ChrootDirectory, обязательно должен принадлежать root, иначе получим следующую ошибку:
Группу-владельца chroot-директории возможно задавать любую. Но доступна на запись она должна быть только root.
6. И - создаем юзера:
SFTP (англ. SSH File Transfer Protocol) — протокол прикладного уровня, предназначенный для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Протокол разработан группой IETF как расширение к SSH-2, однако SFTP допускает реализацию и с использованием иных протоколов сеансового уровня.
Существует заблуждение, что SFTP это просто обычный FTP, работающий поверх SSH. В действительности SFTP — это новый протокол, разработанный с нуля. Иногда его путают с Simple File Transfer Protocol.
Существует заблуждение, что SFTP это просто обычный FTP, работающий поверх SSH. В действительности SFTP — это новый протокол, разработанный с нуля. Иногда его путают с Simple File Transfer Protocol.
1. Создаем группу sftpusers (результаты наших усилий будут применены к участникам данной группы, only):
addgroup --system sftpusers2. Заменяем подсистему sftp в /etc/ssh/sshd_config:
-Subsystem sftp /usr/lib/openssh/sftp-server
+Subsystem sftp internal-sftp3. В этот же файл запишем ряд ограничений:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no4. Перечитываем конфиг:
service ssh reload5. Берем на заметку, что при создании нового юзера совершенно не обязательно указываеть его шелл; т.к. воспользоваться таковым теперь невозможно.
В качестве шелла указываем /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 Нашел здесь
Комментариев нет:
Отправить комментарий