Установка 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