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

В этой инструкции я покажу, как настроить безопасный SFTP сервер на Linux. Это будет достигнуто защитой SFTP сервера от SFTP пользователей и изолированием индивидуальных SFTP пользователей друг от друга. Эту цель можно достичь множеством способов, но я опишу как это сделать способом, основанном на применении MySecureShell.

MySecureShell — это SFTP сервер, основанный на OpenSSH, особенностью его является ряд функций безопасности:

  • Ограничение на ширину канала загрузки/выгрузки для каждого соединения
  • Ограничение на количество одновременных соединений на один аккаунт
  • Сокрытие владельца/группы/прав файла и каталога
  • Сокрытие файлов и каталогов, к которым пользователь не имеет доступа
  • Ограничение на время жизни соединения
  • Chroot для SFTP пользователей в его/её каталоге
  • Отклоняются выгрузки файлов или каталогов, которые соответствуют заданным регулярным выражениям

Установка MySecureShell на Linux

Для большинства популярных дистрибутивов MySecureShell распространяется в виде скомпилированных бинарных файлов. Но не для всех они включены в официальные репозитории.

Для пользователей свежей версии Debian всё просто — ставим из официального репозитория.

Debian 8 (Jessie)

Чтобы включить все функции, нужно установить уидный бит (setuid) для бинарного файла mysecureshell.

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

Debian 7 (Wheezy)

Импортируем ключи репозитория GPG:

Ну и устанавливаем

CentOS/RedHat

CentOS 6

CentOS 5

Fedora

Ubuntu

Начать нужно с импорта ключей репозитория GPG:

Затем добавляем строки репозитория MySecureShell:

Всё готово для установки MySecureShell:

Установка MySecureShell из бинарных файлов

Установка необходимых зависимостей

Установка зависимостей на Ubuntu или Debian:

Установка зависимостей на CentOS, RHEL или Fedora:

Если всё прошло хорошо, то должно быть что-то вроде этого:

Можно запускать компиляцию:

И, наконец, устанавливаем (с правами root):

Настройка MySecureShell

После установки, проверяем, где наш MySecureShell установлен.

Чтобы управлять пользователями SFTP с MySecureShell, сначала создайте группу Linux, к которой будут принадлежать все пользователи SFTP. Давайте назовём эту группу «sftp».

Следующие команды нужно выполнять от суперпользователя. В зависимости от вашей системы, вы можете делать это через sudo или su —

Затем сконфигурируйте существующих пользователей SFTP (например mial) так, чтобы они принадлежали группе «sftp» и использовали MySecureShell шелл во время входа.

Если вы создаёте нового SFTP «с нуля», то тогда команда должна выглядеть так.

Для изменения дефолтных настроек MySecureShell, отредактируйте его конфигурационный файл, размещённый в /etc/ssh/sftp_config. В конфигурационном файле вы можете определить различные групповые настройки безопасности. Например, для группы Linux «sftp»:

Когда конфигурация завершена, убедитесь, что перезапустили sshd следующим образом.

Для перезапуска sshd на Ubuntu или Debian:

Для перезапуска на CentOS, RHEL или Fedora:

Доступ и управление SFTP сервером

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

На серверной стороне SFTP вы можете управлять SFTP сервером и его пользователями следующим образом.

Для мониторинга пользователей SFTP, которые в данный момент подключены:

02

Чтобы принудительно отключить определённого пользователя SFTP:

Похожие темы

Установка Microsoft Office 2010 на Linux... Ещё одна статья по теме: "Родной Microsoft Office на Linux". Очень многих удерживает от перехода на Linux невозможность работать в профессиональных...
Как добавить/удалить обычного (не рута) пользовате... Стандартные пользователи и суперпользователи в Linux Обычной практикой в большинстве дистрибутивах Linux является работа из-под обычного пользователя,...
Как настроить fail2ban для защиты сервера Apache H... Сервер Apache HTTP в производственной среде может оказаться под различного рода атаками. Атакующие могут пытаться получить несанкционированный доступ ...
Как узнать внешний IP адрес из командной строки... Предполагаю, что ваша Linux машина находится за NAT роутером. Тогда то, что вы можете посмотреть для вашей машины (например в свойствах сетевого под...
Передача файлов напрямую между серверами с FTP Rus... Если вы хотите скопировать файлы между двумя серверами, то у вас есть парочка вариантов, как это сделать. Многие пользователи могут загружать файлы ...