1. install
$ sudo apt-get install vsftpd
2. configuration
Backup and create a new configuration file.
$ sudo mv /etc/vsftpd.conf /etc/vsftpd.conf_orig
$ sudo vim /etc/vsftpd.conf
Make a basic configuration, paste following into newly created vsftpd.conf file.
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=10100
allow_writeable_chroot=YES
Restart service
$ sudo service vsftpd restart
Done! Using Linux account to login.
Ref: https://linuxconfig.org/how-to-setup-ftp-server-on-ubuntu-18-04-bionic-beaver-with-vsftpd