Мы объясним вам все шаги по порядку, чтобы вы узнали, как установить, создать пользователей и группы и включить TLS ProFTPD в CentOS 7
Это одна из утилит, которые у нас есть в наличии для еще большей безопасности FTP-соединения, является ProFTPD, которую мы проанализируем сегодня в CentOS 7.
Что такое ProFTPD?
ProFTPD – это программное обеспечение FTP-сервера под лицензией GPL для подключения из любого места.
ProFTPD разработан с нуля, поэтому он не использует копию чего-либо, и это дает нам возможность настроить многие параметры при его использовании.
Шаг 1: Установите EPEL на CentOS 7
Первым шагом будет установка репозитория EPEL для последующего получения ProFTPD, для этого мы выполняем следующее:
yum -y install epel-release
Теперь давайте импортируем GPG-ключ EPEL, используя следующую команду:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Далее мы переходим к обновлению системных пакетов:
yum -y update
Шаг 2. Установка ProFTPD
Следующим шагом будет установка утилиты ProFTPD и OpenSSL путем выполнения следующих действий:
yum install -y proftpd openssl proftpd-utils
Как только этот процесс будет завершен, мы выполним следующие команды:
systemctl start proftpd.service systemctl enable proftpd.service
Шаг 3. Настройка брандмауэра
Если Firewalld установлен в CentOS 7, мы должны настроить его с помощью firewall-cmd, чтобы открыть FTP-порт следующим образом:
firewall-cmd --add-service=ftp --permanent firewall-cmd –reload
Мы продолжаем проверять установленную версию ProFTPD:
proftpd -v
Шаг 4. Создание пользователей и групп для ProFTPD
После установки ProFTPD в CentOS 7 необходимо создать группу и пользователя для доступа, в этом случае мы создадим группу ftpgroup и пользака user1 для ProFTPD, и мы определим / ftpshare как домашнюю директорию для созданного пользователя:
groupadd ftpgroup useradd -G ftpgroup user1 -s /sbin/nologin -d /ftpshare passwd user1
Далее мы должны ввести и подтвердить пароль для нового пользователя.
Как только это будет сделано, мы предоставим разрешения на ftpshare, выполнив:
chmod -R 1750 /ftpshare/
Шаг 5: Включите TLS в ProFTPD
Теперь нам нужно защитить FTP-соединения с помощью TLS.
Мы должны открыть файл /etc/proftpd/proftpd.conf для редактирования, но перед этим сделать его резервную копию.
Чтобы создать копию, мы выполняем:
cp -pf /etc/proftpd.conf /etc/proftpd.conf.bak
Для доступа к редактированию файла мы будем использовать nano и выполним:
nano /etc/proftpd.conf
В отображаемом файле мы будем вводить следующее в DefaultRoot ~! Adm:
PassivePorts 6000 6100
В дополнение к этому, мы закомментируем следующие строки:
#<IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine>
Cохраняем изменения с помощью клавиш Ctrl + O и выходим из редактора с помощью клавиш Ctrl + X.
Как мы видим, порты 6000 и 6100 были добавлены для обеспечения пассивного режима ftp, чтобы разрешить этот доступ, мы выполним следующее:
firewall-cmd --add-port=6000-6100/tcp --permanent firewall-cmd --reload
Если мы захотим увидеть состояние портов, мы можем запустить следующее:
firewall-cmd --list-ports
Теперь необходимо настроить SELINUX, чтобы разрешить чтение и запись файлов, мы выполним следующее:
setsebool -P allow_ftpd_full_access=1
Чтобы использовать TLS, необходимо создать сертификат SSL, который будет построен по пути /etc/pki/tls/certs, как показано ниже:
openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem
Следующие вопросы будут отображаться, на которые нам надо ввести ответы:
- Город
- Страна
- Организация
- Почта
Теперь, по соображениям безопасности, мы настроим сертификаты, чтобы они были легитивны:
chmod 0440 /etc/pki/tls/certs/proftpd.pem
Наконец, мы перезапустим сервис ProFTPD, выполнив следующее:
systemctl restart proftpd.service