Как создать пользователя только SFTP в Debian 11
SFTP (SSH File Transfer Protocol) — это безопасный файловый протокол, используемый для доступа, управления и передачи файлов через зашифрованный транспортный сеанс SSH. Безопасность прежде всего — это эмпирическое правило для системных администраторов. В некоторых случаях нам нужно разрешить удаленным пользователям доступ к файловой системе в нашей системе, но вы не хотите позволять им получать оболочку. Это позволит вам использовать безопасный канал для предоставления ограниченного доступа к определенным файлам и каталогам.
Это руководство поможет вам настроить доступ только по SFTP (без доступа к оболочке) в системе Debian 11. Он создаст среду chroot в вашей системе, чтобы ограничить пользователя SFTP только определенным каталогом. Кроме того, он разрешит доступ только по SFTP без доступа SSH для пользователя.
Предпосылки
- Работающая система Debian 11 Bullseye Linux
- У вас должна быть привилегированная учетная запись sudo с доступом к оболочке
Шаг 1 — Создайте нового пользователя
Прежде всего, создайте нового пользователя для подключения к sftp-серверу. Следующая команда создаст новую учетную запись с именем sftpuser без доступа к оболочке. Вы можете использовать любое имя по вашему выбору или требованию.
sudo adduser --shell /bin/false sftpuser
Шаг 2 — Создайте каталог для доступа по SFTP
Вы создали пользователя для sftp. Теперь создайте каталог, который будет настроен как chroot для sftp. В этом примере я создам каталог / var / sftp. Каталог должен иметь корневого владельца, чтобы его можно было настроить как корневой каталог. Итак, мы создадим подкаталог в / var / sftp с правом записи в учетную запись sftp.
Создайте структуру каталогов с помощью следующей команды:
sudo mkdir -p /var/sftp/files
Затем мы должны установить соответствующие разрешения для каталогов для настройки доступа chroot с правами записи для пользователя. Здесь / var / sftp должен иметь корневого владельца и группу с соответствующими разрешениями. Чтобы установить это разрешение, введите:
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
Теперь измените разрешение для "files"
каталога, чтобы разрешить запись для sftpuser. Чтобы установить эти разрешения, введите:
sudo chown sftpuser:sftpuser /var/sftp/files
Как только sftpuser подключится к серверу, он получит / var / sftp в качестве корневого каталога. Он не может получить доступ к файловой системе за ее пределами. Кроме того, пользователь может читать / записывать файлы только в каталоге «files».
Шаг 3 — Настройте sshd только для SFTP
Затем вам необходимо настроить SSH-сервер, чтобы разрешить sftpuser подключаться к серверу только через sFTP без доступа к оболочке. Чтобы внести необходимые изменения, отредактируйте файл конфигурации SSH.
sudo nano /etc/ssh/sshd_config
и добавьте следующие настройки в конец файла.
Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /var/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Еще раз проверьте правильность всех настроек.Затем сохраните изменения и перезапустите службу SSH, чтобы изменения вступили в силу.
sudo systemctl restart ssh
Все готово, использование только SFTP успешно создано в вашей системе Debian. Теперь попробуйте войти в удаленную систему с учетными данными нового пользователя и проверьте, все ли работает правильно.
Шаг 4 — Подключитесь к SFTP
Можно подключиться к удаленному серверу SFTP с помощью командной строки или графических приложений, таких как Filezilla или WinSCP. В этом руководстве я покажу вам оба способа подключения к SFTP-серверу.
Пользователи Linux могут использовать утилиту командной строки sftp для подключения к удаленным экземплярам sftp.
sftp sftpuser@sftp.infoit.com.ua
sftpuser@sftp.infoit.com.ua's password: sftp>
Пользователи с графическим интерфейсом пользователя или Windows могут использовать графические клиенты sftp. Например, используйте клиент Filezilla для подключения удаленной учетной записи только sftp в удаленной системе.
Убедитесь, что нет доступа к оболочке:
Поскольку эта учетная запись настроена для подключения только по SFTP. Таким образом, если какой-либо пользователь попытался подключиться через SSH, он будет отключен сразу после успешной аутентификации. Пользователь получит сообщение ниже:
ssh sftpuser@sftp.infoit.com.ua
sftpuser@sftp.infoit.com.ua's password: This service allows sftp connections only. Connection to sftp.infoit.com.ua closed.
Заключение
В этом практическом руководстве вы научились создавать среду chroot jail для пользователей SFTP без доступа оболочки к серверу. Среда Chroot защищает файловую систему, предотвращая доступ пользователей к файлам за пределами определенного каталога. Это руководство создано и протестировано с системой Debian 11 Bullseye, но оно будет работать и в других версиях Debian.