Установка tftp сервера на CentOS 8 или RedHat 8
Сегодня статья будет маленькая. Вообще, на мой взгляд всё довольно просто, но поскольку CentOS8 вышел недавно, гайдов на него мало, а конкретно про tftp под CentOS я видел в Интернете много откровенно вредных советов, поэтому постараюсь задать трэнд на исправление ситуации прямо с момента выхода новой версии. Итак, приступим (к набору тёх жалких пяти команд, которые нам нужны). Для начала установим все требующиеся пакеты:
Теперь создадим (или исправим) файл конфигурации xinetd так, чтобы он запускал сервер tftp при обращении к соответствующему порту, это можно делать через стандартный редактор vi, через nano, который большинству людей привычнее или через vim, отличающийся от входящего в состав системы по умолчанию vi тем, что имеет более широкий функционал, включая подсветку синтаксиса. Я предпочитаю последний пункт, поэтому последним словом в приведенной выше команде был именно этот редактор. Если кого-то устраивают имеющиеся в системе редакторы, vim можно не ставить (хотя помимо использования дополнительных 60 МБ дискового пространства, хуже он тоже не сделает).
Тут надо перейти в режим вставки текста (набрать :set paste и ввод), потом редактирования (клавиша Insert на клавиатуре), потом выделить приведенный ниже конфигурационный файл, скопировать и вставить в окно терминала.
Когда будете редактировать текст конфига, обратите пожалуйста внимание на аргумент server_args. В конце строки задан путь к каталогу, где будут лежать файлы, отдаваемые по tftp. Поменяйте этот каталог на тот, который должен использоваться у вас. Также сразу хочу сказать, что на работу с этим каталогом надо будет настроить tftp сервер в SeLinux, конфигурации «по умолчанию» для tftp сервера в CentOS’е нет. Сейчас я про настройку SeLinux писать не буду, потому что потом как-нибудь подготовлю отдельную статью на эту тему.
Далее, нажать Esc, а потом «:wq» и ввод.
Теперь включаем сервер:
Да, вешать в автозагрузку tftpd не требуется, хоть это и не совсем очевидно.
Далее, надо проверить, что всё работает. Создаём какой-нибудь файл и пытаемся его скачать (я делал для популярного пути хранения файлов, если он у вас другой — измените его тут):
Если в консоли появилось слово «passed», значит сервер работает. Если из локальной сети он при этом будет не доступен — разбирайтесь с зонами в firewalld, мы сделали доступ для зоны public, не всем доступ к tftp нужен именно из неё.
Источник
Как установить и настроить FTP-сервер в RHEL 8
FTP (File Transfer Protocol — протокол передачи файлов) — это стандартный и проверенный временем сетевой протокол, используемый для передачи файлов между клиентом и сервером в компьютерной сети. Основан на технологии “клиент-сервер”, что позволяет получать доступ к файлам и каталогам при помощи FTP-клиента, загружать файлы на сервер, а также скачивать их оттуда.
В данной статье будут описаны процессы установки и настройки FTP-сервера в RHEL 8 для базового обмена файлами между компьютерами.
Установка FTP-сервера в RHEL 8
1. Чтобы установить защищённый пакет FTP, используйте следующую команду dnf:
Установка VsFTP в RHEL 8
2. После завершения установки, необходимо запустить службу vsftpd, а также разрешить автоматический запуск службы во время загрузки системы и проверить состояние с помощью следующих команд systemctl:
Запуск и проверка службы FTP
3. Следующим шагом следует открыть порт 21 в фаерволе, чтобы открыть доступ службам FTP для систем извне.
Настройка FTP-сервер в RHEL 8
4. Чтобы настроить FTP-сервер, необходимо сделать бэкап основного файла конфигурации FTP /etc/vsftpd/vsftpd.conf, используя следующую команду копирования:
5. Затем откройте файл конфигурации:
Установите следующие параметры с соответствующими значениями (см. man vsftpd.conf для значений параметров конфигурации):
6. Теперь необходимо настроить FTP для того, чтобы разрешать/запрещать пользователям доступ к службам FTP на основе файла списка пользователей /etc/vsftpd.userlist.
Изначально, пользователям, описанным в файле /etc/vsftpd.userlist, запрещён доступ параметром userlist_deny равным YES, если userlist_enable = YES, то он разрешает доступ.
Однако, изменение параметра userlist_deny=NO изменяет настройку, а это означает, что доступ будет предоставлен только пользователям, указанным в userlist_file=/etc/vsftpd.userlist.
Поэтому добавьте следующие строки в файл конфигурации vsftpd.conf (если же строки уже написаны, то раскомментируйте их и установите их значения, как показано далее):
Сохраните внесённые изменения и закройте файл.
7. Теперь допишите следующие строки в файл конфигурации vsftpd.conf, чтобы ограничить пользователей FTP их домашним каталогом.
Сохраните внесённые изменения и закройте файл.
8. Чтобы разрешить FTP чтение файлов и запись в файлы домашнего каталога пользователя, необходимо установить следующее логическое правило SELinux:
9. Наконец, чтобы все вышеописанные изменения вступили в силу, перезапустите службу vsftpd следующим образом:
Тестирование FTP-сервера в RHEL 8
10. Проверим корректно ли работают настройки FTP. Первым делом, создайте FTP-пользователя при помощи команды useradd, а также создайте пароль для этого пользователя:
11. Затем, занесите пользователя tecmint в /etc/vsftpd.userlist, используя следующую ECHO команду:
12. После чего создайте альтернативный локальный корневой каталог для пользователя и установите соответствующие разрешения для этого каталога:
13. Создайте каталог внутри локального корневого каталога, в котором пользователь будет хранить свои файлы:
14. И, наконец, присоединитесь к FTP-серверу при помощи одного из FTP-пользователей:
Пример вывода:
Спасибо за внимание! Надеемся, что данная статья помогла вам.
Источник
Установка, настройка и защита сервера FTP vsftpd в Linux
FTP или протокол передачи файлов — протокол который обычно используется для передачи файлов между компьютерами, один из который выступает как клиент, а другой как сервер. В этой статье мы поговорим о FTP-сервере в системах Linux, а именно о Very Secure FTP Daemon (vsftpd).
Программа vsftpd — очень популярный FTP-сервер, который сегодня используется многими предприятиями.
Содержание
Как работает FTP-сервер?
FTP работает по клиент-серверной архитектуре для обмена и передачи файлов.
FTP — это протокол с состоянием, что означает, что соединения между клиентами и серверами остаются открытыми во время сеанса FTP.
Чтобы отправлять или получать файлы с FTP-сервера, вы можете использовать команды FTP, эти команды выполняются последовательно. Они выполняются поочередно, одна за другой.
Существует два типа подключений FTP:
Когда вы устанавливаете соединение FTP, открывается порт TCP 21 для отправки ваших учетных данных, это соединение называется соединением управления.
Когда вы передаёте файл, запускается соединение для передачи данных.
Существует два типа подключения к данным:
Активные соединения инициируются удаленным сервером, и клиент ждёт запросов сервера.
Когда клиент FTP запускает передачу, то на нём можно указать опцию, которая указывает, хотите ли вы использовать активное или пассивное FTP-соединение.
Активный режим FTP
Клиент подключается из случайного порта источника к порту управления FTP 21.
Вы можете проверить свой диапазон портов, используя следующую команду:
Когда вам нужно передать файл, удаленный FTP-сервер откроет порт 20 для подключения к FTP-клиенту.
В соединениях с активным режимом обычно возникают проблемы с брандмауэрами, порты TCP 20 и 21 должны быть открыты и на вашем брандмауэре.
Из-за этих проблем активного режима с брандмауэрами был введен пассивный режим.
Пассивный режим FTP
В пассивном режиме клиент запускает соединение управления из произвольного порта в порт назначения 21 на удаленном сервере.
Если клиент FTP запрашивает файл, он выдаст команду PASV FTP. Сервер откроет случайный порт и предоставит этот номер порта клиенту.
Вот почему FTP — это протокол, зависящий от подключения, потому что каждый раз, когда вы выполняете соединение для передачи данных, сервер будет выполнять вышеуказанный процесс, и это выполняется для всех клиентов, подключенных к серверу.
В пассивном режиме соединения управления и данных запускаются FTP-клиентом.
Возможности FTP-сервера Vsftpd
Существует несколько FTP-серверов, доступных для использования, как коммерческих так и с открытым исходным кодом.
У Vsftpd есть множество функций безопасности, которые явно отличают его перед конкурентами:
Настройка FTP-сервера
Некоторые дистрибутивы Linux, поставляются с предустановленным vsftpd, в любом случае, если вы хотите установить vsftpd в системах на базе Red Hat, вы можете использовать следующую команду:
После установки пакета вы можете запустить службу и включить её во время загрузки:
Конфигурационным файлом для FTP-сервера vsftpd является файл /etc/vsftpd/vsftpd.conf или в дистрибутивах на основе Debian, вы можете найти его в /etc/vsftpd.conf.
Фактически, FTP-сервер в Linux — один из самых простых серверов, с которыми вы можете работать.
Существует два типа доступа к FTP-серверу:
Вы можете разрешить анонимный доступ к FTP-серверу в конфигурации, в /etc/vsftpd/vsftpd.conf, включив anonymous_enable=YES, если он не включен и перезапустите службу.
Теперь вам нужно перезапустить ftp сервер и вы сможете попытаться подключиться к FTP-серверу с помощью любого FTP-клиента.
Вы можете установить его, если он отсутствует в вашей системе:
В дистрибутивах на базе Debian следующим образом:
Теперь вы можете получить доступ к своему FTP-серверу следующим образом:
Затем введите имя пользователя anonymous и войдите без пароля, просто нажмите enter:
Вы увидите подсказку о FTP.
Теперь вы можете ввести любую команду FTP для взаимодействия с FTP-сервером.
Подключимся как локальный пользователь
Поскольку в настройках есть опция, позволяющая локальным пользователям получать доступ к FTP-серверу (local_enable=YES). Попробуем зайти на FTP-серверу с помощью локального пользователя:
Затем введите свое имя пользователя и пароль для этого пользователя, и вы увидите сообщение «Вход в систему выполнен».
Настройка FTP-сервера для анонимного доступа
Этот вид доступа к FTP-сервера полезен, если ваши файлы должны быть доступны для пользователей без каких-либо паролей или логинов.
Вам нужно настроить vsftpd, чтобы разрешить доступ только анонимным пользователям.
Откройте файл /etc/vsftpd/vsftpd.conf и измените следующие параметры:
Затем нам нужно создать непривилегированную системную учетную запись, которая будет использоваться для доступа к анонимному FTP-серверу:
Этот пользователь не имеет никаких прав в системе, именно поэтому безопаснее использовать его при доступе к FTP-серверу.
Не забудьте перезапустить свой FTP-сервер после изменения файла конфигурации.
Вы можете получить доступ к FTP-серверу из браузера, просто введите ftp://youdomain/
Безопасность сервера FTP
Мы можем настроить vsftpd на использование TLS, для того, чтобы передаваемые по сети файлы были более безопасны.
Во-первых, мы сгенерируем запрос сертификата с помощью команды openssl:
Затем мы создадим запрос сертификата:
Теперь мы удаляем пароль из ключевого файла:
Наконец, мы создаем наш сертификат:
Теперь мы копируем файл сертификата и ключ в директорию /etc/pki/tls/certs:
Последнее, что нам нужно настроить vsftpd для поддержки безопасных подключений.
Откройте файл /etc/vsftpd/vsftpd.conf и добавьте следующие строки:
Перезапустите службу, чтобы применить эти изменения. Вот и все.
Попробуйте подключиться к вашему FTP-серверу с любого клиента в любой системе, например Windows. Выбирете защищенное соединение или FTPS, и вы увидите свои папки.
SFTP vs FTPS
В последнем примере мы видели FTP на SSL уровене(FTPS), и мы успешно подключились к FTP-серверу, однако на брандмауэре с большим количеством подключений таким подключением достаточно трудно управлять, поскольку FTPS использует несколько номеров портов.
Лучшим решением в этом случае является использование SFTP (FTP через SSH). SFTP использует только порт 22.
Этот порт используется для всех подключений во время сеансов FTP.
Если вы используете брандмауэр, то рекомендуем выбрать именно SFTP, так как ему нужен только один порт при подключении.
Ограничение круга пользователей FTP
Вы можете защитить свой FTP-сервер, ограничив доступ пользователей FTP к своим домашним каталогам и разрешая доступ к службе только определенным пользователям.
Откройте /etc/vsftpd/vsftpd.conf и раскомментируйте следующие параметры:
Файл /etc/vsftpd.chroot_list содержит список круга ограниченных пользователей, по одному в строке.
Сохраните файлы и перезапустите службу.
Команды FTP-сервера Linux
Вы можете использовать любой GUI-клиент для работы с вашими файлами, но вам также полезно будет узнать и некоторые команды для работы с FTP сервером.
Вы можете просмотреть текущий рабочий каталог с помощью команды pwd:
Вы можете просмотреть файлы список файлов и каталогов с помощью команды ls:
Кроме того, вы можете использовать команду cd для изменения рабочего каталога:
Если вы хотите выйти из сеанса FTP, используйте команду bye:
Команда lcd используется для отображения локальной папки, а не папки FTP:
Вы можете изменить локальный каталог, используя команду lcd:
Вы можете загрузить (скачать) файл, используя команду get:
Кроме того, вы можете загрузить несколько файлов с помощью команды mget:
Используйте команду delete для удаления файла на сервере:
Используйте команду put для загрузки файла на сервер:
Чтобы загрузить несколько файлов, используйте команду mput:
Вы можете создать каталог, используя команду mkdir:
Вы можете удалить каталог с сервера с помощью команды rmdir:
Существует два режима передачи файлов при использовании FTP-сервера:
Вы можете изменить этот режим следующим образом:
FTP-сервер — один из самых простых серверов в Linux для настройки и работы.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Источник