ИТ База знаний
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
15 примеров команды PING для диагностики сети
15 примеров CURL в Linux
Руководство по команде grep в Linux
Настройка маршрута по умолчанию в Linux
Загрузка ОС Linux — процесс
37 самых важных команд Linux
Как сбросить пароль в Debian
Yealink SIP-T23P
Еженедельный дайджест
Руководство по установке SFTP сервера на Linux
Привет, друг! Мы подготовили удобную инструкцию по установке и настройке SFTP-сервера Linux.
Что такое SFTP?
SFTP — это безопасный протокол передачи файлов — «Secure SHell» File Transfer Protocol. То есть это версия FTP, которая для безопасности поверх использует SSH. FTP делает то же самое, но без шифрования, поэтому использовать SFTP предпочтительнее.
Установка SFTP-сервера на Linux
Чтобы выполнить эти шаги, вам нужно иметь права sudo. SFTP прост в установке, но сначала необходимо установить OpenSSH со стороны сервера и SSH-пакет со стороны клиента.
Чтобы установить OpenSSH на сервер, используйте следующую команду:
Вам также понадобится SSH на компьютере, с которого вы хотите получать доступ к серверу SFTP.
Теперь все готово для настройки SFTP.
Этап 1: Создание групп, пользователей, каталогов
Для безопасного использования SFTP, лучше всего создать группы и пользователей, которые будут использовать только эту службу.
Создадим группу с названием sftpg, при помощи комыды groupadd :
Далее создадим пользователя seenisftp, и добавим его в группу.
В команде useradd параметр -g указывает группе, какого пользователя нужно добавить.
Предположим, что вы хотите использовать каталог /data/ в качестве корневого для sftp, а /data/USERNAME — для каждого пользователя. Поэтому, когда пользователи входят через sftp, они должны будут оказаться в каталоге /data/USERNAME . Также создадим ограничение при котором пользователи смогут читать файлы из этого каталога, но загружать их смогут только в каталог uploads .
Cоздадим каталоги и изменим их доступ:
Важно: убедитесь, что владелец /data/USERNAME и есть root, это обязательно для изменения корневого каталога в SFTP
Этап 2: Настройка sshd_config
Далее нужно настроить сервер так, чтобы когда пользователь, из группы sftpg, входил в систему, он попадал в sftp вместо обычной оболочки, в которую попадает через ssh. Добавьте следующий фрагмент кода в файл /etc/ssh/sshd_config :
ChrootDirectory позволяет создать необходимый каталог в качестве корневого узла ( / каталог) в дереве каталогов. Вошедший в систему пользователь не сможет увидеть ничего выше этого каталога и это не даст ему получить доступ к файлам других пользователей. %u — это escape код для заполнения его текущим именем пользователяm, во время входа в систему.
Этап 3: Перезагрузите службу
Чтобы выполнить внесенные в sshd_config изменения, перезапустите службу:
Доступ к SFTP через командную строку Linux
Заходите в SFTP также как в SSH:
Примеры команд SFTP
Синтаксис команд SFTP:
Параметрами могут быть либо локальные, либо удаленные системные пути.
- GET — загрузка содержимого с удаленного сервера в локальную систему.
- PUT — загрузка содержимого из локальной системы в удалённую.
- RM – предназначен для удаления файлов в удалённой системе.
- Linux
- sftp
- ssh
- 890
- 0
- 0
- Поделиться
Было полезно?
Почему?
😪 Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.
😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.
Как установить безопасный SFTP сервер в Linux
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.
В других дистрибутивах мы добавляем новый источник приложений.
Настройка SFTP-сервера в Ubuntu 18.04 LTS
SFTP доступен по умолчанию без дополнительной настройки на всех серверах, имеющих доступ по SSH. Как следует из названия протокола, это безопасный способ передачи файлов на сервер с использованием зашифрованного SSH-соединения. В стандартной конфигурации сервер SSH предоставляет доступ к передаче файлов и к оболочке терминала всем системным пользователям с учетной записью.
Это не очень удобно, иногда нужно предоставить пользователю доступ по SFTP для передачи файлов, но запретить доступ к терминалу. Для начала добавим такого пользователя, потом ограничим его права и создадим каталог, куда это пользователь сможет загружать файлы.
Создание пользователя
Итак, создаем нового пользователя, основную группу и задаем пароль:
Создание каталога
Чтобы ограничить доступ пользователя к SFTP одним каталогом, сначала нужно убедиться, что каталог соответствует требованиям. Сам каталог и все каталоги над ним в дереве файловой системы должны принадлежать root , а другие пользователи не должны иметь права на запись в них. Следовательно, невозможно просто предоставить ограниченный доступ к домашнему каталогу пользователя, поскольку домашние каталоги принадлежат пользователям, а не root .
В качестве целевого каталога загрузки будем использовать /srv/sftp/sftp-user . Каталог /srv/sftp будет принадлежать пользователю root и заблокирован для других пользователей. Подкаталог /srv/sftp/sftp-user будет принадлежать пользователю sftp-user , так что он сможет загружать в него файлы.
Конфигурация ssh-сервера
На этом этапе нужно изменить конфигурацию ssh-сервера и заблокировать пользователю sftp-user доступ к терминалу, но разрешить доступ к передаче файлов. Открываем на редактирование файл конфигурации ssh-сервера и дописываем в конец
С функциональной точки зрения sftp-server и internal-sftp практически идентичны. Они построены из одного и того же исходного кода и реализуют SFTP-сервер. Sftp-server это отдельный бинарный файл, а internal-sftp это просто ключевое слово конфигурации. При указании internal-sftp будет использован встроенный SFTP-сервер, вместо запуска внешнего SFTP-сервера. В настоящее время sftp-server является избыточным и сохраняется для обратной совместимости.
Тестирование конфигурации
Пользователь sftp-user не может подключиться по ssh и получить доступ к терминалу:
Но пользователь sftp-user может использовать SFTP для передачи файлов:
Основные команды SFTP
Оказавшись в командной строке sftp можно получить список доступных команд с помощью команды help
Текущий рабочий каталог:
Изменить рабочую директорию:
Список файлов и директорий:
Загрузить на удаленную систему файл или директорию:
Скачать с удаленной системы файл или директорию:
Выполнить произвольную команду на локальной системе:
Выполнить несколько команд на локальной системе:
Руководство по установке SFTP сервера на Linux
Привет, друг! Мы подготовили удобную инструкцию по установке и настройке SFTP-сервера Linux.
Что такое SFTP?
SFTP — это безопасный протокол передачи файлов — «Secure SHell» File Transfer Protocol . То есть это версия FTP , которая для безопасности поверх использует SSH . FTP делает то же самое, но без шифрования, поэтому использовать SFTP предпочтительнее.
Установка SFTP-сервера на Linux
Чтобы выполнить эти шаги, вам нужно иметь права sudo. SFTP прост в установке, но сначала необходимо установить OpenSSH со стороны сервера и SSH-пакет со стороны клиента.
Чтобы установить OpenSSH на сервер, используйте следующую команду:
sudo apt install openssh-server [Ubuntu/Debian]sudo yum –y install openssh-server openssh-clients [CentOS/RHEL]
Вам также понадобится SSH на компьютере, с которого вы хотите получать доступ к серверу SFTP.
sudo apt install ssh [Ubuntu/Debian]
Теперь все готово для настройки SFTP.
Этап 1: Создание групп, пользователей, каталогов
Для безопасного использования SFTP, лучше всего создать группы и пользователей, которые будут использовать только эту службу.
Создадим группу с названием sftpg , при помощи комыды groupadd:
sudo groupadd sftpg
Далее создадим пользователя seenisftp , и добавим его в группу.
sudo useradd -g sftpg seenisftp
sudo passwd seenisftpВ команде useradd параметр -g указывает группе, какого пользователя нужно добавить.
Предположим, что вы хотите использовать каталог /data/ в качестве корневого для sftp, а /data/USERNAME — для каждого пользователя. Поэтому, когда пользователи входят через sftp, они должны будут оказаться в каталоге /data/USERNAME. Также создадим ограничение при котором пользователи смогут читать файлы из этого каталога, но загружать их смогут только в каталог uploads.
Cоздадим каталоги и изменим их доступ :
sudo mkdir -p /data/seenisftp/upload
sudo chown -R root.sftpg /data/seenisftp
sudo chown -R seenisftp.sftpg /data/seenisftp/uploadВажно: убедитесь, что владелец /data/USERNAME и есть root , это обязательно для изменения корневого каталога в SFTP
Этап 2: Настройка sshd_config
Далее нужно настроить сервер так, чтобы когда пользователь, из группы sftpg , входил в систему, он попадал в sftp вместо обычной оболочки, в которую попадает через ssh . Добавьте следующий фрагмент кода в файл /etc/ssh/sshd_config:
Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftpChrootDirectory позволяет создать необходимый каталог в качестве корневого узла (/ каталог) в дереве каталогов. Вошедший в систему пользователь не сможет увидеть ничего выше этого каталога и это не даст ему получить доступ к файлам других пользователей. %u — это escape код для заполнения его текущим именем пользователяm, во время входа в систему.
Этап 3: Перезагрузите службу
Чтобы выполнить внесенные в sshd_config изменения, перезапустите службу:
sudo systemctl restart sshd
Доступ к SFTP через командную строку Linux
Заходите в SFTP также как в SSH :
Примеры команд SFTP
Синтаксис команд SFTP:
COMMAND [SOURCE] [DESTINATION]
Параметрами могут быть либо локальные, либо удаленные системные пути.
- GET — загрузка содержимого с удаленного сервера в локальную систему. GET poster.img
/Pictures
PUT — загрузка содержимого из локальной системы в удалённую. PUT/Pictures/picture2.jpg uploads/
- RM – предназначен для удаления файлов в удалённой системе. RM uploads/picture3.jpg