Страница 1 из 1

Поднятие FTP сервера на proftpd

Добавлено: 16 июл 2018, 19:42
xor
Источники:
https://andreyex.ru/centos-7/nastrojka- ... s-ssl-tls/

ProFTPD. Докачка. Закачать большой файл на FTP при обрывах связи
При попытке закачать большой файл на FTP возникла проблема — обрывы связи у провайдера, после каждого такого обрыва файл начинал закачиваться на FTP-сервер заново. Было найдено следующее решение:

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

Нам необходимо указать нашему FTP-серверу чтобы он давал возможность клиентам докачки файлов, с помощью директивы AllowStoreRestart.

Способ подходит только для FTP сервера ProFTPD

Открываем конфигурационный файл proftpd.conf, и добавляем следующую строчку

AllowStoreRestart on

Место добавления большой роли не играет, я вставил ее после директивы DefaultRoot.

Сохраняем proftpd.conf, перезапускаем ftp-сервер, и проверяем:

Запукаем аплоад файла на ftp-сервер, затем отменяем или создаем искусственно обрыв связи, после чего запускаем закачку файла снова. У меня в WinSCP (ftp-клиент) было предложена много вариантов замены файла среди которого был пункт «Resume», выбрав который файл начал благополучно докачиваться с места обрыва.


Настройка ProFTP с SSL/TLS
Настройка ProFTP с SSL/TLSProFTP широко используется в качестве FTP-сервера среди серверов Linux. ProFTP используется несколькими панелями управления, таких как Cpanel, Plesk. На этом уроке мы покажем вам, как настроить ProFTP с SSL/TLS и другие аспекты безопасности.

Мой тестовый сервер
Server: CentOS 7
ProFTP: 1.3.5

Шаг 1: Установка дополнительного хранилища
Базовое хранилище CentOS не содержит ProFTP. Включить хранилище Epel для загрузки и установки ProFTP.
# yum install epel-release
# yum install proftpd

Шаг 2: Подготовка сертификата
Пакет ProFTPD не создает дополнительного каталога конфигурации ProFTPD
# mkdir /etc/proftpd.d/

Генерация ключей и сертификата, который будет использоваться для SFTP или FTP через SSL/TLS соединение
# openssl req -new -x509 -days 3650 -nodes -out /etc/proftpd.d/proftpd.cert.pem -keyout /etc/proftpd.d/proftpd.key.pem

Код: Выделить всё

 Generating a 2048 bit RSA private key
 ......+++
 .........................+++
 writing new private key to '/etc/proftpd.d/proftpd.key.pem'
 -----
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [XX]:IN
 State or Province Name (full name) []:WB
 Locality Name (eg, city) [Default City]:Kolkata
 Organization Name (eg, company) [Default Company Ltd]:Omegalab
 Organizational Unit Name (eg, section) []:IT
 Common Name (eg, your name or your server's hostname) []:pydl.andreyex.com
 Email Address []:xyz@andreyex.com
 
Шаг 3: Подготовка конфигурации
Добавьте следующую конфигурацию в файл /etc/proftpd.conf

Код: Выделить всё

 ServerName "ProFTP"
 ServerType standalone
 DefaultServer on
 <Global>
 DefaultRoot ~
 AllowOverwrite on
  <IfModule mod_tls.c>
    TLSEngine on
    TLSRequired off
    TLSLog /var/log/plesk/ftp_tls.log
    TLSRSACertificateFile /etc/proftpd.d/proftpd.cert.pem
    TLSRSACertificateKeyFile /etc/proftpd.d/proftpd.key.pem
    TLSVerifyClient off
    TLSRenegotiate none
    TLSOptions NoSessionReuseRequired
  </IfModule>
 </Global>
 DefaultTransferMode binary
 UseFtpUsers on
 TimesGMT off
 SetEnv TZ :/etc/localtime
 Port 21
 Umask 022
 MaxInstances 30
 ScoreboardFile /var/run/proftpd.scoreboard
 TransferLog /var/log/proftpd/xferlog
 AuthPAM on
 AuthPAMConfig proftpd
 IdentLookups off
 UseReverseDNS off
 AuthGroupFile /etc/group
 RequireValidShell off
 Include /etc/proftpd.d/*.conf
Шаг 4: Создание пользователя, без оболочки
Всегда рекомендуется использовать пользователя не оболочки для аунтификации FTP
# useradd --shell /bin/false testnoshell
# passwd testnoshell

Шаг 5: Доступ к FTP
Теперь попытайтесь получить доступ к FTP с созданным пользователем

Примечание: Если ваш сервер находится под NAT, добавьте следующие строки в файл /etc/proftpd.conf

Код: Выделить всё

PassivePorts 49152 65534
И откройте диапазон портов 49152-65534 для брандмауэра/маршрутизатора.
Ну, вот и все.