Как создать пользователя только для SFTP в Ubuntu и Debian

SFTP (SSH File Transfer Protocol) — это защищенный протокол передачи файлов, который позволяет осуществлять доступ, управление и обмен файлами через зашифрованную сессию SSH. Понятие «пользователь только для SFTP» подразумевает создание учетной записи, предназначенной исключительно для доступа к серверу через SFTP, без возможности использовать SSH-оболочку. Это гарантирует безопасный канал, позволяющий предоставлять ограниченный доступ к конкретным файлам и папкам.

В данном посте блога рассматривается процесс создания пользователей только для SFTP без доступа к оболочке в системах Ubuntu и Debian.

Для начала вам необходимо установить SSH-сервер, если он еще не установлен. Это можно сделать с помощью команды:

sudo apt update
sudo apt install openssh-server

После установки SSH-сервера, выполните следующие шаги для создания пользователя только для SFTP:

  1. Создайте новую учетную запись пользователя: Используйте команду:
  2. sudo adduser имя_пользователя

  3. Создайте директорию для загрузки файлов: Определите, куда будет загружать файлы ваш пользователь, и создайте нужную директорию:
  4. sudo mkdir -p /home/имя_пользователя/uploads

  5. Измените владельца и права доступа: Установите владельцем директории вашего нового пользователя:
  6. sudo chown имя_пользователя:имя_пользователя /home/имя_пользователя/uploads

  7. Настройте SSH для ограничения доступа: Откройте файл конфигурации SSH:
  8. sudo nano /etc/ssh/sshd_config

    Добавьте следующие строки в конец файла:

    Match User имя_пользователя
    ForceCommand internal-sftp
    ChrootDirectory /home/имя_пользователя
    AllowTcpForwarding no
    X11Forwarding no

  9. Перезапустите SSH-сервер: После внесения изменений в конфигурацию перезапустите SSH-сервер:
  10. sudo systemctl restart ssh

Теперь ваш пользователь сможет подключаться только через SFTP и будет ограничен доступом к своей директории. Это позволяет обеспечить безопасность и контроль над файлами на вашем сервере.

Для проверки соединения вы можете использовать любой SFTP-клиент, например, FileZilla или встроенные средства командной строки, такие как:

sftp имя_пользователя@ваш_сервер

Эти шаги помогут вам создать безопасного пользователя только для SFTP в Ubuntu и Debian, обеспечивая при этом необходимые меры безопасности.

Шаг 1 — Создание нового пользователя

В первую очередь создайте учетную запись пользователя, которую вы будете использовать в качестве SFTP-пользователя. Воспользуйтесь следующей командой для создания новой учетной записи с именем sftpuser без доступа к оболочке. Вы можете выбрать любое имя для пользователя по своему усмотрению.

При выполнении команды вам будет предложено ввести пароль для новой учетной записи. Убедитесь, что пароль надежный, содержащий как минимум 8 символов, включая заглавные и строчные буквы, цифры и специальные символы. Это повысит безопасность вашей учетной записи.

Если вы хотите создать пользователя с ограниченными правами, добавьте опцию -s /sbin/nologin к команде создания пользователя, чтобы запретить доступ к оболочке. Например, команда может выглядеть так:

sudo useradd -s /sbin/nologin sftpuser

После создания пользователя рекомендуется сразу установить права доступа к директории, чтобы обеспечить безопасность данных. Для этого создайте для пользователя домашнюю директорию и измените права доступа с помощью команды:

sudo mkdir /home/sftpuser
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser

После этого создайте подкаталог, в который пользователь сможет загружать файлы:

sudo mkdir /home/sftpuser/uploads
sudo chown sftpuser:sftpuser /home/sftpuser/uploads

Теперь вы можете перейти к следующему шагу настройки SFTP-сервера.

Создание каталога для SFTP

Теперь создайте структуру каталогов, которая будет доступна пользователю SFTP.

В данном случае мы предоставим доступ только к каталогу «files». Для этого выполните команду:

mkdir -p /var/sftp/files

Затем измените владельца каталога на sftpuser, чтобы SFTP-пользователь имел возможность читать и записывать только в этой директории. Файлы за пределами этой директории будут недоступны. Для изменения владельца используйте:

chown root:sftpuser /var/sftp

Установите владельцем и группой владельца для /var/sftp пользователя root. Это обеспечит root-учетной записи права на чтение и запись. Члены группы и другие учетные записи будут иметь только права на чтение и выполнение. Чтобы установить нужные права, выполните:

chmod 755 /var/sftp

Такой подход ограничит пользователей SFTP от записи файлов в каталоге /var/sftp. Также рекомендуется настроить параметры конфигурации сервера SFTP в файле sshd_config для дальнейшего ограничения прав доступа, добавив следующие строки:

Match User sftpuser
ChrootDirectory /var/sftp
ForceCommand internal-sftp
AllowTcpForwarding no

После внесения изменений не забудьте перезапустить службу SSH для применения новых настроек:

systemctl restart sshd

Эти шаги помогут вам создать безопасное окружение для пользователей SFTP, ограничивая их доступ к файловой системе.

Настройка sshd для работы только с SFTP

Файл /etc/ssh/sshd_config — это основной конфигурационный файл сервера OpenSSH. Будьте внимательны при его редактировании, так как ошибка может привести к потере подключения.

Отредактируйте файл конфигурации SSH в любом текстовом редакторе:

Затем добавьте следующие строки в конец файла.

Match User sftpuser ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /var/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no

Сохраните изменения и закройте файл.

Вот пояснение к директивам:

  • Пользователь Match определяет имя пользователя, для которого будут применяться только настройки SFTP. В нашем случае это: sftpuser.
  • ForceCommand internal-sftp заставляет пользователей использовать только SFTP-доступ и исключает возможность доступа к оболочке.
  • Парольная аутентификация разрешена для данного пользователя.
  • ChrootDirectory /var/sftp ограничивает пользователя доступом только к каталогам в этом пути. Здесь /var/sftp служит корневым каталогом для пользователя.
  • Запретить пересылку агента нет. Это указывает, разрешена ли пересылка ssh-агента. По умолчанию — да.
  • Запретить TCP-перенаправление. Это определяет, разрешено ли TCP-перенаправление. По умолчанию — да.
  • X11Forwarding отключен. Указывает, разрешено ли графическому приложению работать.

Для повышения безопасности рекомендуется создать пользователя и директорию SFTP следующим образом:

sudo useradd -m sftpuser
sudo passwd sftpuser
sudo mkdir /var/sftp
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
sudo mkdir /var/sftp/sftpuser
sudo chown sftpuser:sftpuser /var/sftp/sftpuser

Эти команды создадут пользователя sftpuser и настроят для него корневую директорию SFTP.

Перезапустите службу SSH для применения новых настроек:

sudo systemctl restart sshd

Важно отметить, что при использовании SFTP в режиме Chroot необходимо следить за правами доступа к директориям. Корневая директория Chroot должна принадлежать пользователю root, а все вложенные директории должны иметь права доступа 755 или 750.

Также рекомендуется регулярно обновлять сервер, чтобы защитить его от известных уязвимостей. Используйте команды:

sudo apt update
sudo apt upgrade

Всё готово. Вы успешно прошли инструкцию по созданию пользователя только для SFTP на системах Debian. Обязательно тестируйте подключение к SFTP после внесения изменений, чтобы убедиться, что всё работает корректно.

Советы по безопасности (Опции)

Вот несколько важных рекомендаций по безопасности для учетных записей SFTP в рабочей среде.

  1. Запускайте SSH-сервер на нестандартном порту.
  2. Запретите аутентификацию по паролю и настройте аутентификацию на основе ключей.
  3. Убедитесь, что брандмауэр ограничивает доступ только определенными IP-адресами.
  4. Держите пакет OpenSSH в актуальном состоянии.
  5. Регулярно проверяйте журналы доступа для выявления подозрительной активности.
  6. Используйте инструменты мониторинга для отслеживания состояния сервера и его безопасности.
  7. Ограничьте права пользователей, предоставляя им доступ только к необходимым ресурсам.
  8. Настройте автоматическое завершение сеансов после определенного времени бездействия.
  9. Используйте двухфакторную аутентификацию (2FA) для дополнительного уровня защиты.
  10. Регулярно создавайте резервные копии важных данных и конфигураций.
  11. Используйте шифрование для передаваемых данных для защиты информации в пути.
  12. Создавайте учетные записи с ограниченным доступом и минимальными правами.
  13. Периодически проводите аудит безопасности для выявления уязвимостей.
  14. Обучайте пользователей основам безопасности и правильному обращению с учетными записями.

Этот учебник описывает процесс создания пользователей только для SFTP в системе Ubuntu, отключая доступ к оболочке и ограничивая пользователей определенной директорией.

Добавлены пункты, касающиеся двухфакторной аутентификации, резервного копирования и шифрования данных.

Читайте также:  Локальная аутентификация с использованием Рутокен MFA

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *