Proftpd настройка centos 7

Обновлено: 30.06.2024

Используя ProFTPd настроим доступ по FTP к сайтам на сервере VDS под управлением CentOS 7. Создадим файловую базу пользователей для авторизации с правами от Nginx. Применим подключение с использованием сертификата для TLS.

Введение

Периодически возникает необходимость давать доступ к файлам сайта для веб разработчиков или других пользователей. Так как используется VDS сервер с настроенным функционалом на базе Nginx, то все права на файлы при добавлении и изменении должны быть как у указанного сервиса. Вначале пытался настроить vsftpd но функционал позволяет настроить только права на редактируемые файлы чтобы они оставались такие как были но вот все новые были с правами пользователя. Поэтапно опишу все действия которые привели меня к желаемому результату.

Более подробно вы можете ознакомиться с документацией по настройке сервера FTP на сайте разработчика ProFTPd.

Подготовка CentOS 7

Подключим репозиторий Еpel:

Установим необходимые пакеты для работы:

Чтобы изменения вступили в силу, необходимо перезагрузить сервер или указать команду, чтобы параметры применялись без перезагрузки:

Настройка FirewallD

Установка и настройка

Проверим наличие firewalld:

В минимальной версии CentOS Firewalld не установлен.

Установим FirewallD вез вопросов командой:

Добавим в автозагрузку и запустим:

Проверим статус короткой командой:

Всё хорошо. Можно приступать к настройке доступа к серверу FTP.

Открытие портов для работы по ftp

Добавим порты в FirewallD:

Перезагрузим правила FirewallD:

Установка и настройка ProFTPd

Установим сервер ftp:

Создание файловой базы пользователей ProFTPd

Узнаем ID пользователя и группы Nginx, так как именно под этими данными и должны работать наши пользователи:

Откроем и посмотрим файл базы пользователей:

Видим нашего добавленного пользователя. Для удаления пользователя достаточно закоментировать или удалить строку.

Сменить пароль можно выполнив команду:

Включение Ban листа и возможность подключения по TLS

Включим необходимые значения указные в главном файле конфигурации сервиса:

Если параметр -DTLS включен то без наличия правильно созданного сертификата сервис не стартует. В случае работы без TLS просто не указывайте параметр.

Получение сертификата для TLS подключения

Для работы по TLS необходимо создать сертификат. Создадим сертификат на 365 дней:

После получения перейдите в папку указанную в пути и убедитесь что сертификаты созданы и имеют не нулевой размер! При настройке я неправильно указывал команду создания сертификата и они создавались с нулевым размером.

Редактирование proftpd.conf

Файл хорошо задокументирован и имеет большое количество настроек. В файле будут указанны параметры которые необходимы для наших требований.

Сделаем оригинал копии и откроем главный файл настройки сервиса:

Управление сервером ProFTPd

Добавим в автозагрузку и запустим:

Сервис в автозагрузке и никаких ошибок нет.

Проверим порт на котором работает сервис:

Консольные утилиты статуса ProFTPd

В консоли можно вывести просмотр онлайн статистики выполнив команду:

Просмотр количества подключений выполняется командой:

Логи сервиса

Подключение по FTP c использованием TLS

Для подключения я использую программу FileZilla и приведу скриншоты настройки моего подключения.

Настройка FileZilla для TLS ProFTPd

Информация о сертификате для TLS

Вывод

Произведя данную настройку мы полностью сделали разграничение доступа к разным сайтам на сервере. Обеспечили надежное подключение используя сертификат и ведение всей статистики работы с файлами.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Понравилась статья? Поделитесь ей с друзьями! Пожалуйста, оставляйте свои комментарии

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

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

Метки

Реклама

Советую

Реклама

Комментарии

Вместо CentOS (для меня теперь это Fedora2) будет Rocky Linux :)

Теперь все статьи с Rocky будут?

Деже не надеюсь. Знаю что так и будет!

Хорошее руководство получилось. Надеюсь, Rocky Linux получит такое же распространение, как и Centos.

Ставил. Для моей версии там только контроль параметров и максимум можно запустить тест.

В настройках программы есть возможность серверам по ssh отправлять любые команды.


Мануал

Мы объясним вам все шаги по порядку, чтобы вы узнали, как установить, создать пользователей и группы и включить TLS ProFTPD в CentOS 7

Это одна из утилит, которые у нас есть в наличии для еще большей безопасности FTP-соединения, является ProFTPD, которую мы проанализируем сегодня в CentOS 7.

Что такое ProFTPD?

ProFTPD разработан с нуля, поэтому он не использует копию чего-либо, и это дает нам возможность настроить многие параметры при его использовании.

Шаг 1: Установите EPEL на CentOS 7

Первым шагом будет установка репозитория EPEL для последующего получения ProFTPD, для этого мы выполняем следующее:

Теперь давайте импортируем GPG-ключ EPEL, используя следующую команду:

Далее мы переходим к обновлению системных пакетов:

Шаг 2. Установка ProFTPD

Следующим шагом будет установка утилиты ProFTPD и OpenSSL путем выполнения следующих действий:

Как только этот процесс будет завершен, мы выполним следующие команды:

Шаг 3. Настройка брандмауэра

Если Firewalld установлен в CentOS 7, мы должны настроить его с помощью firewall-cmd, чтобы открыть FTP-порт следующим образом:

Мы продолжаем проверять установленную версию ProFTPD:

Шаг 4. Создание пользователей и групп для ProFTPD

После установки ProFTPD в CentOS 7 необходимо создать группу и пользователя для доступа, в этом случае мы создадим группу ftpgroup и пользака user1 для ProFTPD, и мы определим / ftpshare как домашнюю директорию для созданного пользователя:

Далее мы должны ввести и подтвердить пароль для нового пользователя.

Как только это будет сделано, мы предоставим разрешения на ftpshare, выполнив:

Шаг 5: Включите TLS в ProFTPD

Теперь нам нужно защитить FTP-соединения с помощью TLS.

Мы должны открыть файл /etc/proftpd/proftpd.conf для редактирования, но перед этим сделать его резервную копию.

Чтобы создать копию, мы выполняем:

Для доступа к редактированию файла мы будем использовать nano и выполним:

В отображаемом файле мы будем вводить следующее в DefaultRoot

В дополнение к этому, мы закомментируем следующие строки:

Cохраняем изменения с помощью клавиш Ctrl + O и выходим из редактора с помощью клавиш Ctrl + X.

Как мы видим, порты 6000 и 6100 были добавлены для обеспечения пассивного режима ftp, чтобы разрешить этот доступ, мы выполним следующее:

Если мы захотим увидеть состояние портов, мы можем запустить следующее:

Теперь необходимо настроить SELINUX, чтобы разрешить чтение и запись файлов, мы выполним следующее:

Чтобы использовать TLS, необходимо создать сертификат SSL, который будет построен по пути /etc/pki/tls/certs, как показано ниже:

Следующие вопросы будут отображаться, на которые нам надо ввести ответы:

Теперь, по соображениям безопасности, мы настроим сертификаты, чтобы они были легитивны:

Ситуация: Имеется у меня большая коллекция разных интересных программ для компьютера. Коллекция большая! Скидывать друзьям то одно, то другое мне надоело и решил я сделать единый репозиторий для всех друзей, но с личной парольной аутентификацией и контролем доступа каждого лично. Мало ли кто из них свой логин и пароль разбазарит по всему городу. Еще требуется, чтобы кто-нибудь кривыми лапками не вырезал безвозвратно файлы на свой компьютер или подкинуть на сервер чего лишнего.

Задача: Организовать FTP хранилище с виртуальными пользователями и парольной аутентификацией. Запретить изменение файлов в каталогах и запись новых, а скачивание не ограничивать ничем.


2. Описание программы

ProFTPD (Professional FTP Daemon) — FTP-сервер для Linux и UNIX-подобных операционных систем.

ProFTPD использует лишь один конфигурационный файл proftpd.conf , который располагается по умолчанию в CentOS 7 тут /etc/proftpd.conf . Сервер может быть настроен для работы нескольких виртуальных хостов, также поддерживает chroot.

3. Установка программы

Первым делом проверим имеется ли она уже на сервере?

Для установки данной программы нам потребуется подключить репозиторий EPEL, файловый менеджер Midnight Commander, утилиты Net Tools:

Ставим сам пакет proftpd из репозитория:

Проверим старт сервиса:


Снова проверим очевидный факт наличия программы:


Проверить на каком порту повисла ProFTPd можно командой:


Создадим резервную копию файла конфигурации программы:

Открываем файл конфигурации /etc/proftpd.conf :

Добавляем туда строки:

Проверяем или есть настройка закрыть пользователя в его домашней директории чтобы не мог видеть другие каталоги в системе:

Найти и закомментировать настройку AuthOrder в файле конфигурации /etc/proftpd.conf .

Добавить в таком виде:

Таким образом мы отключили другие способы авторизации, оставили только через наш файл виртуальных пользователей.

На этом редактирование конфига и закончили, нужно создать файл /etc/ftpd.passwd :

Нужно будет два раза ввести пароль пользователя, после чего все данные запишутся в файл /etc/ftpd.passwd .

Синтаксис:

  • --name ftpuser имя виртуального пользователя.
  • --uid 1001 указывается ID пользователя в системе под которым будет логиниться виртуальный созданный пользователь.
  • --home /home/user/project/somefolder/ указали папку, в которую пользователь будет иметь доступ и не сможет выйти выше благодаря настройке « DefaultRoot

Чтобы пользователь исправно попадал туда куда мы запланировали и не мог там ничего стереть или записать, нужно прописать права использования на каталоге.

Ограничим права доступа на файл с паролями пользователей:

Если используется firewalld в системе, открываем нужные порты:

Если используется iptables в системе, открываем нужные порты:

Перезапустим службу iptables:

Перезапустим службу proftpd:

Минимальная настройка FTP-сервера proftpd готова c авторизацией через файл proftpd.conf и виртуальными пользователями.

4. Logging — включаем ведение логов FTP-сервера.

Очень полезно вести логирование захода пользователей на сервер. Если кто-то из них теряет свой пароль и пароль уходит в массы, но потом масса посторонних людей начинает ошиваться в файлохранилище. Таким образом можно отследить кто виновник такой ситуации.

Создаём сами файлы логов:

Редактируем файл конфигурации /etc/proftpd.conf .

В него добавляем строки:

Уровень логгирования устанавливается опцией DebugLevel , уровни от 0 до 9 , где 9 — наиболее подробное логирование:

Перезапустим службу proftpd:

Через некоторое время можно смотреть кто, где и когда был в гостях на сервере:



5. Настройка ротации логов.

Последний штрих в настройке ftp-сервера — ротация логов!

Если этого не сделать, то через какое-то, обычно продолжительное, время возникает проблема в связи с огромным размером log-файла.

У нас уже будет файл конфигурации logrotate для proFTPd, который был создан во время установки — /etc/logrotate.d/proftpd .

Приведем его к следующему виду:

Предлагается ротировать файлы логов по достижению ими размера в 10 Мб, сжимать после ротации и хранить 10 архивов с логом.

ProFTPD это FTP-сервер с открытым исходным кодом и один из наиболее часто используемых, безопасных и надежных демонов передачи файлов в средах Unix, благодаря простоте конфигурации файлов, скорости и легкой настройке.

Установите Proftpd в CentOS 7

Установите Proftpd в RHEL / CentOS 7

Требования

  • Установка «CentOS 8.0» со скриншотами
  • Установка RHEL 8 со скриншотами
  • Как включить подписку RHEL в RHEL 8
  • Минимальная установка системы CentOS 7.0
  • Минимальная установка системы RHEL 7.0
  • Активные подписки и функциональные репозитории RHEL 7.0

В этом руководстве вы узнаете, как установить и использовать ProFTPD Сервер включен CentOS/RHEL 8/7 Дистрибутивы Linux для простой передачи файлов из учетных записей локальной системы в удаленные системы.

Шаг 1: Установите Proftpd Server

1. Официальный RHEL / CentOS 8/7 репозиториев не предоставляет бинарных пакетов для ProFTPD Server, поэтому вам нужно добавить дополнительные репозитории пакетов в вашу систему, предоставленные EPEL Repo , используя следующую команду.

Установите EPEL в CentOS 7

Установите EPEL в RHEL / CentOS 7

2. Перед тем, как начать установку ProFTPD Сервер, отредактируйте файл хостов вашего компьютера, измените его в соответствии с вашей системой FQDN и протестируйте конфигурации, чтобы они соответствовали именованию вашего системного домена.

Здесь добавьте полное доменное имя вашей системы в строку 127.0.0.1 localhost, как в следующем примере.

Затем отредактируйте /etc/hostname файл, чтобы он соответствовал той же записи FQDN системы, как на скриншотах ниже.

Открыть файл имени хоста Добавить имя хоста в Hosts

3. После редактирования файлов хоста проверьте локальное разрешение DNS, используя следующие команды.

Как проверить имя хоста в CentOS

Проверить имя хоста системы

4. Пришло время установить ProFTPD Server в вашу систему и некоторые необходимые утилиты ftp, которые мы будем использовать позже, введя следующую команду.

Установить FTP в CentOS

Установить Proftpd Server

5. После установки сервера запустите демон Proftpd и управляйте им, введя следующие команды.

Запустить сервер Proftpd

Запустить сервер Proftpd

Шаг 2. Добавьте правила брандмауэра и файлы доступа

6. Теперь ваш сервер ProDTPD работает и прослушивает подключения, но он недоступен для внешних подключений из-за политики брандмауэра. Чтобы включить внешние подключения, убедитесь, что вы добавили правило, открывающее порт. 21, с использованием firewall-cmd системная утилита.

Откройте порт FTP в CentOS

Откройте порт Proftp в брандмауэре

7. Самый простой способ получить доступ к FTP-серверу с удаленных машин - это использовать браузер, перенаправив его на IP-адрес или доменное имя вашего сервера с использованием протокола ftp для URL-адреса.

8. Конфигурация по умолчанию на сервере Proftpd использует действительные учетные данные локальных учетных записей системы для входа в систему и доступа к файлам вашей учетной записи, которая является вашей $ HOME системный путь учетной записи, определенный в /etc/passwd файл.

Доступ к Proftpd из браузера Индекс файлов Proftpd

9. Чтобы заставить ProFTPD Server автоматически запускаться после перезагрузки системы, то есть включить его в масштабе всей системы, введите следующую команду.

Вот и все! Теперь вы можете получать доступ к файлам и папкам своей учетной записи и управлять ими с помощью протокола FTP, используя браузер или другие более продвинутые программы, такие как FileZilla , который доступен практически на любых платформах, или WinSCP , отличная программа для передачи файлов, работающая в системах на базе Windows.

Предлагаемое чтение: Как установить, настроить и защитить FTP-сервер в CentOS 7

О следующей серии руководств по ProFTPD Server на RHEL / CentOS 8/7, Я расскажу о более продвинутых функциях, таких как включение анонимной учетной записи , использовать для передачи файлов с шифрованием TLS и добавление виртуальных пользователей.

Читайте также: