Установите proftpd

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

_x000D_apt install proftpd -y

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

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

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

_x000D_ListOptions "-la"_x000D_AllowOverwrite yes_x000D_

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

_x000D_DefaultRoot ~_x000D_RequireValidShell off_x000D_RootLogin off_x000D_UseFtpUsers false_x000D_AuthUserFile /etc/proftpd/ftpd.passwd_x000D_AuthGroupFile /etc/proftpd/ftpd.group_x000D_AllowStoreRestart on_x000D_PassivePorts 30000 50000_x000D_MasqueradeAddress <Внешний IP Адрес>

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

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

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

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

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

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

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

_x000D_service proftpd restart

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

_x000D_service proftpd status

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

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

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

Настройка TLS

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

_x000D_#_x000D_# This is used for FTPS connections_x000D_#_x000D_Include /etc/proftpd/tls.conf

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

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

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

_x000D_<IfModule mod_tls.c>_x000D_ TLSEngine on_x000D_ TLSRequired on_x000D_ TLSVerifyClient off_x000D_ TLSProtocol ALL_x000D_ #TLSLog /var/log/proftpd/tls.log_x000D_ TLSRSACertificateFile /etc/proftpd/certs/proftpd.crt_x000D_ TLSRSACertificateKeyFile /etc/proftpd/certs/proftpd.key_x000D_ TLSRenegotiate none_x000D_ TLSOptions NoSessionReuseRequired_x000D_ #TLSOptions NoCertRequest EnableDiags NoSessionReuseRequired_x000D_</IfModule>

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

_x000D_service proftpd restart_x000D_service proftpd status