Введение
SFTP (протокол передачи файлов SSH) — это безопасный файловый протокол, используемый для доступа, управления и передачи файлов по зашифрованному транспортному сеансу SSH. Безопасность в первую очередь является эмпирическим правилом для системных администраторов. В некоторых случаях нам нужно разрешить удаленным пользователям доступ к файловой системе в нашей системе, но вы не хотите позволять им получать оболочку. Это позволит вам безопасный канал для предоставления ограниченного доступа к определенным файлам и каталогам.
Это руководство поможет вам настроить доступ только к SFTP (без доступа к оболочке) в системе Debian 11. Он создаст среду chroot в вашей системе, чтобы ограничить пользователя SFTP только определенным каталогом. Кроме того, он разрешит доступ только по SFTP без доступа к SSH для пользователя.
Предпосылки
- Работающая система Debian 11 Bullseye Linux
- У вас должна быть привилегированная учетная запись sudo с доступом к оболочке
Если вы хотите установить и создать пользователя только для SFTP на удаленном сервере, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и прочитайте следующий.
Подключение к серверу
Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:
ssh root@IP_DEL_SERVER
Далее вам нужно будет ввести пароль пользователя root.
Если вы не используете пользователя root, вы можете войти в систему с другим именем пользователя, используя ту же команду, а затем изменить root на свое имя пользователя:
ssh nome_utente@IP_DEL_SERVER
Затем вам будет предложено ввести пароль пользователя.
Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Создать нового пользователя
Прежде всего, создайте нового пользователя для подключения к sftp-серверу. Следующая команда создаст новую учетную запись с именем sftpuser без доступа к оболочке. Вы можете использовать любое имя по вашему выбору или требованию.
sudo adduser --shell /bin/false sftpuser
Создайте каталог для доступа по SFTP
Вы создали пользователя для sftp. Теперь создайте каталог для настройки в качестве chroot для sftp. Для этого примера я создам каталог /var/sftp. Каталог должен быть владельцем root, чтобы его можно было настроить как каталог chroot. Затем мы создадим подкаталог в /var/sftp с доступом на запись к учетной записи sftp.
Создайте структуру каталогов с помощью следующей команды:
sudo mkdir -p /var/sftp/files
Затем нам нужно установить соответствующие разрешения для каталогов, которые будут настроены как доступ chroot с правом записи для пользователя. Здесь /var/sftp
должны быть права root и группа с соответствующими правами. Чтобы установить это разрешение, введите:
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
Теперь измените разрешение для каталога "files"
, чтобы разрешить доступ на запись к sftpuser. Чтобы установить эти разрешения, введите:
sudo chown sftpuser:sftpuser /var/sftp/files
Как только sftpuser подключится к серверу, он получит /var/sftp
в качестве корневого каталога. Он не может получить доступ к файловой системе вне его. Кроме того, пользователь может читать/записывать файлы только в каталоге « files ».
Настройте 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. Теперь попробуйте войти в удаленную систему с учетными данными нового пользователя и проверьте, все ли работает нормально.
Подключиться к SFTP
Вы можете подключиться к удаленному SFTP-серверу с помощью командной строки или графических приложений, таких как Filezilla или WinSCP. В этом уроке я покажу вам оба способа подключения к SFTP-серверу.
Пользователи Linux могут использовать утилиту командной строки sftp для подключения к удаленным экземплярам sftp:
sftp [email protected]
[email protected]'s password:
sftp>
Графический интерфейс или пользователи Windows могут использовать графические клиенты sftp. Например, используйте клиент Filezilla для подключения только удаленной учетной записи sftp в удаленной системе.
Поскольку эта учетная запись настроена только для подключения по SFTP. Таким образом, если пользователь попытался подключиться через SSH, он выйдет из системы сразу после успешной аутентификации. Пользователь получит сообщение ниже:
ssh [email protected]
[email protected]'s password:
This service allows sftp connections only.
Connection to sftp.noviello.it closed.
Вывод
В этом руководстве вы узнали, как создать среду chroot для пользователей SFTP без доступа к серверу через оболочку. Среда Chroot защищает файловую систему, предотвращая доступ пользователей к файлам за пределами определенного каталога. Это руководство было создано и протестировано с системой Debian 11 Bullseye, но будет работать и с другими версиями Debian.