Install vsftpd
Environment
- Debian 9.7 x64
- GCC 6.3.0 20170516
vsftpd
3.0.3
Excerpt
Log 2019 / 05
1. Pre
root@athos:~# apt-get update && apt-get -y upgrade && apt-get -y dist-upgrade
root@athos:~# apt-get -y --no-install-recommends install build-essential dirmngr
root@athos:~# wget -q https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz
root@athos:~# wget -q https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz.asc
2. Verify Signature
root@athos:~# gpg --recv-keys 3C0E751C
gpg: directory '/root/.gnupg' created
gpg: keybox '/root/.gnupg/pubring.kbx' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key AA62EC463C0E751C: public key "Chris Evans <chris@scary.beasts.org>" imported
gpg: Total number processed: 1
gpg: imported: 1
root@athos:~# gpg --list-keys 3C0E751C
pub dsa1024 2004-06-29 [SC]
8660FD3291B184CDBC2F6418AA62EC463C0E751C
uid [ unknown] Chris Evans <chris@scary.beasts.org>
sub elg1024 2004-06-29 [E]
root@athos:~# gpg --verify vsftpd-3.0.3.tar.gz.asc
gpg: assuming signed data in 'vsftpd-3.0.3.tar.gz'
gpg: Signature made Sat 25 Jul 2015 02:06:55 AM UTC
gpg: using DSA key AA62EC463C0E751C
gpg: Good signature from "Chris Evans <chris@scary.beasts.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 8660 FD32 91B1 84CD BC2F 6418 AA62 EC46 3C0E 751C
3. Compile vsftpd
root@athos:~# tar -xf vsftpd-3.0.3.tar.gz
root@athos:~# cd vsftpd-3.0.3/
root@athos:~/vsftpd-3.0.3# make
root@athos:~/vsftpd-3.0.3# ls -lF vsftpd
-rwxr-xr-x 1 root root 143544 May 25 09:07 vsftpd*
root@athos:~/vsftpd-3.0.3# cp vsftpd /usr/local/bin/
root@athos:~/vsftpd-3.0.3# cp vsftpd.8 /usr/share/man/man8/
root@athos:~/vsftpd-3.0.3# cp vsftpd.conf.5 /usr/share/man/man5/
root@athos:~/vsftpd-3.0.3# mkdir /etc/vsftpd/
root@athos:~/vsftpd-3.0.3# cp vsftpd.conf /etc/vsftpd/vsftpd.conf.sample
root@athos:~/vsftpd-3.0.3# cd
root@athos:~# vsftpd -version
vsftpd: version 3.0.3
4. Configure vsftpd.conf
cat <<EOF > /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
ftpd_banner=FTP service!
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
allow_writeable_chroot=YES
listen=YES
EOF
root@athos:~# cat <<EOF > /etc/vsftpd/vsftpd.conf
> anonymous_enable=NO
> local_enable=YES
> write_enable=YES
> local_umask=022
> anon_upload_enable=NO
> anon_mkdir_write_enable=NO
> dirmessage_enable=YES
> xferlog_enable=YES
> connect_from_port_20=YES
> xferlog_file=/var/log/vsftpd.log
> xferlog_std_format=YES
> idle_session_timeout=600
> data_connection_timeout=120
> ftpd_banner=FTP service!
> chroot_local_user=YES
> chroot_list_enable=YES
> chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
> allow_writeable_chroot=YES
> listen=YES
> EOF
5. systemd
cat <<EOF > /etc/systemd/system/vsftpd.service
[Unit]
Description=vsftpd FTP server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/vsftpd /etc/vsftpd/vsftpd.conf
ExecReload=/bin/kill -HUP $MAINPID
ExecStartPre=-/bin/mkdir -p /var/run/vsftpd/empty
[Install]
WantedBy=multi-user.target
EOF
root@athos:~# cat <<EOF > /etc/systemd/system/vsftpd.service
> [Unit]
> Description=vsftpd FTP server
> After=network.target
>
> [Service]
> Type=simple
> ExecStart=/usr/local/bin/vsftpd /etc/vsftpd/vsftpd.conf
> ExecReload=/bin/kill -HUP $MAINPID
> ExecStartPre=-/bin/mkdir -p /var/run/vsftpd/empty
>
> [Install]
> WantedBy=multi-user.target
> EOF
root@athos:~# systemctl enable --now vsftpd
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service
→ /etc/systemd/system/vsftpd.service.
root@athos:~# systemctl status vsftpd
● vsftpd.service - vsftpd FTP server
Loaded: loaded (/etc/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-05-25 10:23:42 UTC; 30s ago
Process: 2662 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited,
status=0/SUCCESS)
Main PID: 2665 (vsftpd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/vsftpd.service
└─2665 /usr/local/bin/vsftpd /etc/vsftpd/vsftpd.conf