Настройка FTP Centos 7
Обновлено: 21.11.2024
Как настроить SFTP для безопасной передачи файлов в CentOS 7
512 МБ, centos7 centos 7, sftp, ssh 28 апреля 2019 г., 6:11, Райан Флауэрс
Добро пожаловать в очередной учебник по LowEndBox. Мы собираемся исследовать мир SFTP: что это такое, а что нет, как его использовать и почему. Давайте приступим!
Что такое SFTP?
Мы рады, что вы спросили! SFTP — это безопасный протокол передачи файлов. Все это означает, что это безопасный (зашифрованный) протокол передачи файлов. Что интересно в SFTP, так это то, что его можно использовать поверх множества различных типов потоков данных, но в этом контексте поток данных, с которым мы будем его использовать, — это SSH в CentOS 7. Есть еще один SFTP, называемый Simple File Transfer Protocol — это это не то, что мы здесь обсуждаем.
Зачем использовать SFTP вместо FTP?
Есть две основные причины использовать SFTP вместо FTP. Первый уже упоминался: Безопасность. SFTP зашифрован, но традиционный FTP вообще не зашифрован. Вторая причина использования SFTP немного сложнее: эффективность.
Мы в LowEndBox специализируемся на том, чтобы помочь вам найти недорогие VPS, которые вы можете использовать для своих проектов. Наш собственный сервер имеет всего 512 МБ памяти — это не так много места для работы! Чтобы максимизировать использование таких небольших серверов, ключевым моментом является мантра «Меньше значит больше». Меньше используемых ресурсов означает большую производительность, большую надежность и больше ресурсов для других приложений. Запуск отдельного демона FTP (например, ProFTP) может оказаться излишним. Помимо того, что это еще одна вещь, которую нужно настроить, она также будет постоянно потреблять ресурсы, пусть и небольшие.
И здесь на помощь приходит SFTP. SFTP в CentOS7 встроен в SSH. Верно, он встроен в SSH и по умолчанию уже включен . Если вы можете подключиться к своему серверу по SSH, вы можете безопасно подключиться к нему по SFTP!
Почему не все используют SFTP?
Или, точнее, почему вы не хотите использовать SFTP? Виртуальные пользователи. Виртуальный пользователь — это пользователь приложения, который не является пользователем системы. С ним не связан ни один пользователь Linux. Для него нет записи в /etc/passwd. Учетная запись виртуального пользователя находится где-то в базе данных, а не аутентифицируется обычным способом Linux. Виртуальные пользователи с SSH (и, следовательно, SFTP) возможны, но требуют более сложной настройки и не входят в рамки этого руководства.
Другие демоны FTP, такие как ProFTPD, упрощают работу с виртуальными пользователями, но для многих приложений сама идея виртуальных пользователей является излишней. Для базового управления файлами на вашем сервере LowEndBox отлично подходит SFTP. Начнем!
Готов ли ваш LowEndBox SFTP?
Скорее всего, ваш LowEndBox готов к работе. Стандартная минимальная сборка CentOS 7 по умолчанию включает SFTP. Тем не менее, давайте проверим, что он включен на вашем сервере. Сначала вам нужно будет войти в свой VPS. Если вы еще этого не сделали, перейдите к нашему руководству «Использование ключей SSH для подключения к вашему VPS». Войдите в систему как пользователь root и выполните следующую команду:
Это должно вернуть следующую строку:
Вот как это выглядело на нашем сервере LowEndBox:
Если на вашем сервере нет этой строки, отредактируйте конфигурацию, чтобы она была, и перезапустите SSH с помощью следующей команды:
Не выходя из сеанса SSH, откройте второй сеанс SSH и войдите в систему. Если вы не можете войти в систему, возможно, в вашем файле sshd_config есть ошибка, которую вы нужно устранить неполадки. После подтверждения работоспособности SSH мы будем готовы к первому подключению к SFTP.
Подготовка к использованию SFTP
Теперь, когда вы уверены, что SSH работает и SFTP включен, мы можем создать пользователя для SFTP. Вы действительно не должны использовать пользователя root ни для чего, кроме доступа по SSH, и некоторые скажут, что никогда не входите в систему напрямую как root, но это обсуждение в другой раз.
Мы собираемся использовать команды «useradd» и «passwd», чтобы создать пользователя с именем «lowendbox» и задать ему пароль. Обязательно используйте безопасный пароль. Мы рекомендуем сгенерировать случайный пароль и скопировать/вставить его в SSH. Это то, что мы сделали, и вот как это выглядело на нашем сервере:
По умолчанию созданный вами пользователь будет иметь оболочку /bin/bash. Но, возможно, ваш сервер настроен по-другому. Давайте продолжим и будем на 100% уверены, что у пользователя правильная оболочка. Если оболочка неправильная, то SFTP работать не будет. Выполните следующую команду смены оболочки (chsh), чтобы убедиться, что для оболочки задано значение /bin/bash:
Вот как это выглядело на нашем сервере:
Вы заметите, что в выводе указано «Оболочка не изменена».Это означает, что оболочка уже была установлена в /bin/bash. Если у вас написано «Оболочка изменена», то, вероятно, хорошо, что вы ее изменили.
Подключение к SFTP
Заполните пустые поля: IP-адрес вашего сервера (или имя хоста, если вы уже настроили DNS), ваше новое имя пользователя и пароль, а также порт. Если вы не меняли SSH-порт, то оставьте 22. Вот как выглядел наш:
Нажмите «Сохранить» и назовите его так, чтобы вы могли его запомнить. После сохранения нажмите «Войти», как показано ниже:
В следующем запросе может появиться предупреждение о неизвестной подписи ключа. Вы можете просто нажать Да:
Если вход прошел успешно, вам будет показан экран с двумя панелями: слева — ваш локальный ПК, а справа — домашний каталог созданного вами пользователя. Переносить файлы так же просто, как перетаскивать их слева направо или использовать различные параметры загрузки/выгрузки на панели инструментов:
Если вы столкнулись с ошибкой, повторите все шаг за шагом еще раз — скорее всего, это всего лишь одна небольшая настройка, которая неверна.
В заключение
SFTP — это простой, безопасный и эффективный способ управления файлами на LowEndBox. Мы надеемся, что этот урок был вам полезен! Обязательно дайте нам знать, что вы думаете, или задайте любые вопросы в комментариях ниже!
SFTP использует SSH для установки безопасного соединения между компьютерами для отправки файлов.
С SFTP-сервером вы можете относительно легко загружать файлы на свой сервер. Это полезно, например, для веб-сервера, чтобы размещать обновления веб-сайта на вашем VPS или для загрузки мультимедиа на сервер Plex.
В этой статье мы покажем вам, как настроить конфигурацию OpenSSH в CentOS 7, чтобы пользователи SFTP не имели дальнейшего доступа SSH к вашему серверу и ограничивали доступ SFTP к определенной папке для каждого пользователя.
Вы предпочитаете использовать FTPS? Тогда ознакомьтесь с нашей статьей о vsftpd.
- Используйте sudo или выполните действия, описанные в этой статье, как привилегированный пользователь.
- В CentOS 7 по умолчанию установлен OpenSSH, и вам не нужно устанавливать его отдельно.
Шаг 1
Подключитесь к VPS через SSH или консоль VPS в панели управления.
Шаг 2
Все учетные записи пользователей в Linux принадлежат к одной (или нескольким) группам. Из соображений безопасности и для упрощения массового управления учетными записями SFTP создайте группу, в которую будут добавляться пользователи SFTP:
Вы можете изменить название группы по своему усмотрению. Убедитесь, что вы также изменили имя группы в следующих шагах.
Шаг 3
Затем создайте пользователя с помощью приведенной ниже команды, заменив свое имя пользователя фактическим именем пользователя sftp и /sftp именем корневой папки, в которую этот пользователь будет загружать свои файлы (например, /sftp/username/files).< /p>
- useradd: добавляет нового пользователя
- -g sftp: добавляет нового пользователя в группу sftp
- -d /sftp: устанавливает /sftp в качестве домашнего каталога этого пользователя
- -s /sbin/nologin: пользователь получает доступ к оболочке /sbin/nologin, другими словами: не имеет права входа через ssh
- имя пользователя: имя нового пользователя
Шаг 4
Далее создайте папку для нового пользователя, в которую он/она сможет загружать файлы.
Шаг 5
Настройте права и владельца папок с помощью приведенных ниже команд.
Это гарантирует, что пользователь sftp в конечном итоге будет иметь права выполнять операции только в папке /sftp/username/files, а не в базовых папках.
- chmod 500 /sftp: Предоставьте только владельцу /sftp права на чтение и выполнение папки /sftp.
- chmod 700 /sftp: предоставить только владельцу /sftp/username/files права на чтение, запись и выполнение в папке /sftp/username/files
- chown root: sftp / sftp / username: делает пользователя root и группу sftp владельцем папки /sftp/username
- chown username:sftp/sftp/username/files: Делает имя пользователя и группу ftpusers (группа, к которой принадлежит имя пользователя) владельцем /sftp/username/files
Шаг 6
Наконец, требуется небольшая корректировка конфигурации вашего SSH-сервера. Сначала откройте конфигурацию, например:
Шаг 7
Прокрутите вниз до конца и добавьте следующие строки.
Пользователи группы sftp автоматически помещаются в папку /sftp/u%, где u% (автоматически) — это имя пользователя, вошедшего в систему.
Сохраните изменения и закройте nano, нажав ctrl + x > y > Enter.
Шаг 8
Затем перезагрузите конфигурацию SSH с помощью:
Теперь вы можете подключиться к своему серверу через SFTP! Убедитесь, что вы выбрали SFTP в качестве протокола в программном обеспечении SFTP вместо FTP/FTPS. Вы также используете свой SSH-порт вместо FTP-порта. Если вы не уверены, какой это порт, вы можете найти его на своем сервере с помощью команды:
Если у вас остались какие-либо вопросы относительно этой статьи, не стесняйтесь обращаться в нашу службу поддержки. Вы можете связаться с ними, нажав кнопку «Связаться с нами» внизу этой страницы.
Если вы хотите обсудить эту статью с другими пользователями, оставьте сообщение в разделе "Комментарии".
У вас есть хорошая идея?
Дайте нам свою идею! Если он будет популярен, мы добавим его в список желаний!
Создайте учетную запись или войдите в систему, чтобы иметь возможность оставлять комментарии.
Вы застряли?
Попросите одного из наших специалистов помочь вам
Веб-хостинг
Нужна помощь?
О TransIP
Файлы cookie
Эти шаги помогут вам настроить SFTP-сервер в Linux для безопасной передачи файлов для специализированных пользователей, предназначенных только для передачи файлов.
Изображение: Джек УолленПримечание редактора. Статья была отредактирована, чтобы исправить соглашения об именах пользователей в командах.
CentOS 7 или любой другой серверный дистрибутив Linux — это очень мощный сервер, производительность которого превосходит все, что может понадобиться вашему бизнесу. Какое бы задание вы не кинули на сервер, оно будет готово. И, если это не готово из коробки, вы можете сделать это так.
Возьмите, к примеру, возможность простой настройки CentOS 7 для работы в качестве SFTP-сервера. Если вы не уверены в SFTP, это служба FTP, встроенная в Secure Shell (SSH), которая позволяет пользователям безопасно передавать и извлекать файлы на сервер и с сервера с помощью SSH. В CentOS 7 нет необходимости устанавливать стороннее программное обеспечение для этой работы — все устанавливается из коробки. Однако необходимо немного поработать, чтобы настроить это.
Я покажу вам процесс настройки SFTP-сервера. Я продемонстрирую, создав одного пользователя, который ограничен только входами в систему SFTP. Как только вы узнаете, как это сделать, вы сможете создать столько пользователей, сколько вам нужно. Я буду использовать CentOS 7 в качестве своей платформы, но этот процесс будет работать на любом дистрибутиве Linux.
Давайте заставим это работать.
Что вам понадобится
Как я уже упоминал, в CentOS 7 уже есть все необходимое из коробки. Однако у вас должен быть доступ к учетной записи с правами администратора. После того, как вы получили этот доступ, пришло время приступить к работе.
Каталог SFTP
Первое, что мы должны сделать, это создать каталог, в котором будут храниться наши данные FTP. Откройте окно терминала, введите su для пользователя root (введите su, а затем при появлении запроса введите пароль пользователя root), а затем введите следующие две команды:
mkdir -p /data
chmod 701 /dataСоздайте группу и пользователя SFTP
Теперь мы собираемся создать специальную группу для пользователей SFTP. Это делается с помощью следующей команды:
Теперь мы собираемся создать специального пользователя, который не имеет обычных прав входа в систему, но принадлежит к нашей только что созданной группе sftp_users. Как вы назовете этого пользователя, зависит от вас. Команда для этого:
useradd -g sftp_users -d /upload -s /sbin/nologinUSERNAME
Где USERNAME — имя пользователя.
Далее дайте новому пользователю пароль. Этот пароль будет использоваться новыми пользователями для входа в систему с помощью команды sftp. Чтобы установить пароль, введите команду:
Где USERNAME – это имя пользователя, созданного выше.
Создайте новый пользовательский каталог SFTP
Теперь мы собираемся создать каталог загрузки для нового пользователя, а затем предоставим каталогу соответствующие разрешения. Это обрабатывается следующими командами:
mkdir -p /data/USERNAME/upload
chown -R root:sftp_users /data/USERNAME
chown -R USERNAME:sftp_users /data/USERNAME/uploadГде USERNAME – это имя нового пользователя, которого вы создали выше.
Настроить sshd
Откройте файл конфигурации демона SSH с помощью команды:
Внизу этого файла добавьте следующее:
Соответствие группе sftp_users
ChrootDirectory /data/%u
ForceCommand internal-sftpСохраните и закройте этот файл. Перезапустите SSH командой:
systemctl перезапустить sshd
Вход
Вы готовы войти в систему.На другом компьютере в вашей сети, на котором установлен SSH, откройте окно терминала и введите команду:
Где USERNAME — это имя нашего нового пользователя, а SERVER_IP — это IP-адрес нашего SFTP-сервера. Вам будет предложено ввести пароль USERNAME. После успешной аутентификации вас встретит приглашение sftp. Введите pwd, чтобы проверить рабочий путь, и вы должны увидеть /upload (рисунок A).
Рисунок А
Простое решение
Это все, что нужно для настройки SFTP-сервера в Linux. Для любой компании, которая хочет предложить своим сотрудникам и клиентам простые и безопасные средства загрузки и скачивания файлов, это не только отличное решение, но и очень экономичное. Настройте и запустите свой SFTP-сервер без каких-либо затрат и головной боли.
Информационный бюллетень TechRepublic Premium Exclusives
Экономьте время с последними загрузками TechRepublic Premium, включая оригинальные исследования, настраиваемые шаблоны ИТ-политики, готовые презентации для обучения, инструменты для найма ИТ-специалистов, калькуляторы рентабельности инвестиций и многое другое. Эксклюзивно для вас!
Доставка по вторникам и четвергам
Опубликовано: 9 сентября 2019 г., 12:35 по тихоокеанскому времени. Изменено: 19 сентября 2019 г., 10:09 по тихоокеанскому времени. Подробнее о безопасности
SFTP (протокол передачи файлов SSH) отличается от типа FTP, хотя и поддерживает все современные FTP-клиенты. Хотя SFTP был реализован для добавления уровня безопасности, он представляет собой уязвимость уровня доступа, поскольку, являясь стандартом, предоставляет пользователям системы полный доступ для передачи файлов и использования командной консоли.
Сегодня я научу, как настроить CentOS 7, чтобы запретить конкретному пользователю доступ по SSH и свободу управлять системой через протокол SFTP.
Шаг 1. Создание пользователя
В первую очередь мы создадим пользователя, доступ к которому будет ограничен по SSH, в данном случае мы назовем его доступом, выполняем следующее:
Далее мы назначаем пароль новому пользователю, выполнив следующее:
Шаг 2. Создайте каталог для передачи файлов
После того, как наш пользователь создан, следующим шагом будет создание каталога, в котором будет действовать SFTP, предотвращая доступ, и это необходимо настроить с помощью определенных параметров.
Мы создадим каталог с именем /var/sftp/uploads, в котором /var/sftp является частью пользователя root, и ни один другой пользователь не будет иметь текущих разрешений, а в подкаталоге /var/sftp/uploads владельцем будет доступ нового пользователя. Мы создаем каталог, используя следующую строку:
Далее мы устанавливаем пользователя root в качестве владельца в указанном каталоге:
Мы предоставляем права на запись пользователю root и чтение другим пользователям в предложенном маршруте:
Теперь измените владельца загрузки, чтобы он был доступом пользователя, мы выполняем следующее:
Шаг 3. Ограничьте доступ к каталогу
На этом шаге мы увидим, как ограничить доступ терминала к доступу пользователя, но будет ли возможна передача файлов. Для этого мы должны отредактировать SSH-сервер с помощью предпочтительного редактора, vim или nano, по следующему пути:
Мы увидим следующее:
Сохраните изменения с помощью комбинации клавиш Ctrl+O и выйдите из редактора с помощью клавиш Ctrl+X.
Выполните следующую команду, чтобы применить изменения в SSH:
Шаг 4. Проверка подключения SSH
При такой настройке настало время проверить доступ через SSH и убедиться, что возможна только передача файлов. Для этого идем на соединение через SSH которое в данном случае будет.
После того, как мы введем учетные данные для доступа, мы увидим следующее сообщение:
При этом мы убедились, что соединение будет закрыто через SSH. Теперь попробуем подключиться по протоколу sftp:
При вводе пароля мы увидим, что подключение прошло успешно и мы сможем передавать файлы:
Там мы можем использовать команду ls, чтобы вывести список доступных каталогов, и мы увидим папку для загрузки, которую мы создали:
Читайте также: