SFTP (SSH File Transfer Protocol) – это безопасный файловый протокол, используемый для доступа, управления и передачи файлов через зашифрованный транспортный сеанс SSH.
Здесь SFTP пользователь означает создание учетной записи для доступа к серверу только через SFTP.
У этого пользователя нет доступа к оболочке SSH.
Это позволяет использовать безопасный канал для предоставления ограниченного доступа к определенным файлам и каталогам.
В этом руководстве описано, как создать пользователя, работающего только по SFTP, без доступа к оболочке в системах Ubuntu и Debian.
Шаг 1 – Создание новой учетной записи
Прежде всего, создайте учетную запись пользователя в своей системе, чтобы использовать ее в качестве пользователя sftp.
Следующая команда создаст новую учетную запись с именем sftpuser без доступа к оболочке.
Вы можете изменить имя пользователя по своему выбору
sudo adduser --shell /bin/false sftpuser
Шаг 2 – Создайте каталог для SFTP
Теперь создайте структуру каталогов, которая будет доступна пользователю sftp.
sudo mkdir -p /var/sftp/files
Здесь мы разрешим пользователю доступ только к каталогу «files».
Теперь измените владельца каталога файлов на sftpuser.
Так что sftpuser может читать и писать только в этом каталоге.
sudo chown sftpuser:sftpuser /var/sftp/files
И установите владельца и группу /var/sftp root.
Пользователь root имеет доступ для чтения/записи при этом доступе.
Член группы и другая учетная запись имеют разрешения только на чтение и выполнение.
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
Шаг 3 – Настройка sshd только для SFTP
/etc/ssh/sshd_config – это основной файл конфигурации сервера OpenSSH.
Будьте осторожны при изменении этого файла конфигурации, потому что любая ошибка может привести к потере соединения.
Откройте файл конфигурации SSH в текстовом редакторе:
sudo vim /etc/ssh/sshd_config
и добавьте следующие настройки в конец файла.
Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /var/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Сохраните файл и закройте его. Вот директивы:
- Match User Определяет имя пользователя, к которому применяются конфигурации только SFTP. В нашем случае это: sftpuser
- ForceCommand internal-sftp применяет только SFTP-доступ к пользователю и ограничивает доступ к оболочке.
- PasswordAuthentication yes разрешает аутентификацию пользователя по паролю.
- ChrootDirectory /var/sftp Разрешить пользователю доступ к каталогам только в этом каталоге. Здесь / var / sftp действует как корневой каталог пользователя.
- AllowAgentForwarding no Указывает, разрешен ли проброс ssh-агента. По умолчанию – да.
- AllowTcpForwarding no Указывает, разрешен ли проброс TCP. По умолчанию – да.
- X11Forwarding no Указывается, где графическое приложение не разрешено
Перезапустите службу SSH, чтобы применить новые настройки:
sudo systemctl restart ssh
Это все.
Вы успешно выполнили инструкции по созданию пользователя только с SFTP доступом в системах на основе Debian.
Шаг 4 – Советы по безопасности (параметры)
Вот несколько основных, но важных советов по безопасности для учетных записей SFTP в производственной среде.
- Запускаем SSH-сервер на нестандартном порту
- Запретить аутентификацию по паролю и настроить аутентификацию на основе ключа
- Убедитесь, что брандмауэр ограничивает доступ только для определенных IP-адресов.
- И держите пакет openssh в актуальном состоянии
Заключение
В этом руководстве описывается, как создать учетную запись пользователя только для sftp в системе Ubuntu.