sftp-сервер и внутренний sftp

Вопрос или проблема

Я использую sftp-server для доступа к своему серверу как root. Теперь я пытаюсь настроить ограниченный доступ для внешних пользователей только для загрузки файлов с помощью SFTP. Существует множество руководств о том, как это настроить с внутренним sftp. Моя проблема в том, что когда я изменяю подсистему на internal-sftp, я теряю свой существующий SFTP-доступ. Есть ли способ изменить мою текущую настройку на internal-sftp или как-то использовать оба варианта?

Ответ или решение

Введение в использование sftp-server и internal-sftp

При конфигурации доступа к вашему серверу через SFTP, вы можете столкнуться с необходимостью разделения прав доступа для различных пользователей. Ваша текущая настройка использует sftp-server, что позволяет вам получать доступ к серверу в качестве корневого пользователя. Однако возникла необходимость ограничить доступ к серверу для внешних пользователей, предоставив им возможность только загружать файлы с использованием SFTP. Это можно сделать с помощью internal-sftp.

Основные отличия между sftp-server и internal-sftp

  • sftp-server: Это стандартная реализация SFTP, которая позволяет пользователям выполнять полные операции просмотра и управления файлами. При использовании этой подсистемы вы получаете доступ к полному набору возможностей SSH.

  • internal-sftp: Это альтернатива, предназначенная для более ограниченного доступа, в частности, для целей, связанных с безопасностью. Эта реализация SFTP запускается в контексте SSH-сессии и ограничивает действия пользователей, что делает ее идеальной для вашей задачи.

Проблемы c использованием internal-sftp

Как вы правильно отметили, при изменении подконтроля (subsystem) на internal-sftp вы теряете доступ как корневой пользователь через SFTP. Это происходит потому, что internal-sftp работает в режиме, который не поддерживает все функции стандартного sftp-server.

Возможные пути решения проблемы

  1. Дублирование конфигурации:

    • Вы можете настроить internal-sftp для нескольких пользователей, создав отдельные группы (например, sftpusers), которые будут иметь ограниченный доступ. Параметры конфигурации могут выглядеть следующим образом:
      Match User sftpuser
      ChrootDirectory /home/sftpuser
      ForceCommand internal-sftp
      AllowTcpForwarding no
      X11Forwarding no
  2. Использование разных конфигурационных файлов:

    • Если ваша цель состоит в том, чтобы использовать обе подсистемы одновременно, можно сделать это с помощью двух различных конфигурационных файлов. Вы можете использовать sftp-server для корневого пользователя, а internal-sftp для ограниченных пользователей. Нужно настроить SSH-сервер таким образом, чтобы он проверял тип пользователя:
      Subsystem sftp /usr/lib/openssh/sftp-server
      Match User restricteduser
      ChrootDirectory /home/restricteduser
      ForceCommand internal-sftp
      AllowTcpForwarding no
      X11Forwarding no
  3. Настройка нескольких установок:

    • В некоторых системах вы можете установить несколько экземпляров OpenSSH с уникальными конфигурациями. Однако это может создать дополнительные сложности в управлении и обновлении.

Заключение

Выбор между sftp-server и internal-sftp зависит от ваших потребностей в безопасности и управлении доступом. Путём правильной настройки SSH-сервера можно достичь желаемого уровня безопасности, сохраняя при этом полноценный доступ для администраторов. Убедитесь, что вы тщательно протестировали ваши настройки, чтобы избежать уязвимостей, и соблюдайте лучшие практики безопасности при работе с SFTP.

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

Капча загружается...