Установка proftpd сервера на Ubuntu 20.04

Установите proftpd

Перед установкой сделайте базовую настройку Ubuntu

apt install proftpd -y

Укажите установить standalone сервер

Выполните команду nano /etc/proftpd/proftpd.conf

Измените строчки в этом файле:

ListOptions                     "-la"
AllowOverwrite                  yes

Добавьте строчки в конце этого файла:

DefaultRoot ~
RequireValidShell off
RootLogin off
UseFtpUsers false
AuthUserFile /etc/proftpd/ftpd.passwd
AuthGroupFile /etc/proftpd/ftpd.group
AllowStoreRestart on
PassivePorts 30000 50000
MasqueradeAddress <Внешний IP Адрес>

Создайте пользователя

ftpasswd --file /etc/proftpd/ftpd.passwd --passwd --name ftp_user --home /var/www --shell /bin/false --uid 1000 --gid 1000
touch /etc/proftpd/ftpd.group

--home - Это ФТП папка 
--uid - ID пользователя, под которым будет работать ФТП
--gid - ID группы пользователя

UID и GID берутся из файла /etc/passwd и /etc/group

Добавьте правила iptables:

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 30000:50000 -j ACCEPT

Перезапустите proftpd:

service proftpd restart

Проверьте что proftpd запущен:

service proftpd status

Эта команда должна вывести следующее содержимое:

● proftpd.service - LSB: Starts ProFTPD daemon
   Loaded: loaded (/etc/init.d/proftpd; bad; vendor preset: enabled)
   Active: active (running) since Fri 2018-06-01 15:46:18 MSK; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 18569 ExecStop=/etc/init.d/proftpd stop (code=exited, status=0/SUCCESS)
  Process: 18531 ExecReload=/etc/init.d/proftpd reload (code=exited, status=0/SUCCESS)
  Process: 18580 ExecStart=/etc/init.d/proftpd start (code=exited, status=0/SUCCESS)
    Tasks: 1
   Memory: 1.7M
      CPU: 22ms
   CGroup: /system.slice/proftpd.service
           └─18592 proftpd: (accepting connections)

Убедитесь, что стоит статус Active: active (running)

Настройка TLS

Раскоментируйте строчку:

#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf

Сгенерируйте сертификат

mkdir -p /etc/proftpd/certs
openssl req -new -x509 -days 3650 -nodes -out /etc/proftpd/certs/proftpd.crt -keyout /etc/proftpd/certs/proftpd.key

В конфиге /etc/proftpd/tls.conf пропишите

<IfModule mod_tls.c>
        TLSEngine on
        TLSRequired on
        TLSVerifyClient off
        TLSProtocol ALL
        #TLSLog /var/log/proftpd/tls.log
        TLSRSACertificateFile /etc/proftpd/certs/proftpd.crt
        TLSRSACertificateKeyFile /etc/proftpd/certs/proftpd.key
        TLSRenegotiate none
        TLSOptions NoSessionReuseRequired
        #TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired
</IfModule>

Перезагрузите proftpd

service proftpd restart
service proftpd status