Cara Install FTP Server dengan vsftpd di Debian 9 Server

File Transfer Protocol (FTP) adalah protokol jaringan standar yang digunakan untuk mentransfer file antara client dan server melalui jaringan komputer. Ada beberapa aplikasi FTP server yang tersedia untuk Linux, yaitu PureFTPdProFTPd, dan vsftpd.

Artikel ini membahas tentang cara install FTP server dengan vsftpd (very secure FTP daemon) di Debian 9. vsftpd dirancang untuk sistem operasi Unix-like, termasuk Linux. Beberapa website besar yang menggunakan vsftpd sebagai FTP server:

    • ftp.redhat.com
    • ftp.suse.com
    • ftp.debian.org
    • ftp.freebsd.org
    • ftp.gnu.org
    • ftp.gnome.org
    • ftp.kernel.org

0. Install vsftpd di Debian 9

Install paket vsftpd.

apt install vsftpd -y

1. Setting vsftpd

Backup terlebih dahulu file setting vsftpd.conf, sebagai cadangan jika terjadi kesalahan. Lalu buka file settingnya.

cp /etc/vsftpd.conf /etc/vsftpd.conf.default
nano /etc/vsftpd.conf

Cara setting write_enable, aktifkan dengan menghapus karakter # dan ubah nilainya menjadi YES. Opsi ini agar dapat melakukan penulisan file (upload/create/delete) di server.

write_enable=YES

Restart service dan cek statusnya.

systemctl restart vsftpd
systemctl status vsftpd

Uji konfigurasi dengan menggunakan aplikasi FTP client seperti FileZilla di PC client. Login menggunakan username dan password yang terdapat di sistem server dan upload file.


FileZilla, uji upload file

Chroot Jail

Membatasi user agar tidak bisa mengakses direktori lain kecuali direktori home milik sendiri. Jika opsi belum ada, tambahkan di baris paling bawah.

chroot_local_user=YES
allow_writeable_chroot=YES

Restart service dan cek statusnya.

systemctl restart vsftpd
systemctl status vsftpd

Login kembali ke FTP server, jika chroot jail berhasil, user hanya bisa mengakses direktori home sendiri atau alamat remote site dari /home/user berubah menjadi /.


FileZilla, chroot jail

Local Root

Default direktori saat login FTP adalah direktori home (/home/user). Direktori root si user bisa diarahkan ke direktori lain, misalnya untuk kebutuhan document root website /var/www/user. Lakukan setting local root.

user_sub_token=$USER
local_root=/var/www/$USER

Buat direktori sesuai nama user di /var/www dan buat file di dalamnya untuk menguji bahwa file tersebut berada di direktori /var/www/user.

mkdir -p /var/www/user
cd /var/www/user
touch dir_var_www_user.txt
chown -R user:user /var/www/user
chmod -R 755 /var/www/user

Restart service dan cek statusnya.

systemctl restart vsftpd
systemctl status vsftpd

Login ke FTP server dan lihat file yang ada di direktori.


FileZilla, local root

Passive Mode

vsftpd dapat menggunakan port mana saja untuk koneksi passive FTP. Tentukan minimum dan maximum dari port yang akan digunakan.

pasv_enable=YES
pasv_min_port=10090
pasv_max_port=10100

FTP over TLS

Pada log FileZilla terdapat pesan Status: Insecure server, it does not support FTP over TLS, yang artinya data belum dienkripsi.

Membuat SSL key untuk mendukung enkripsi data.

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Tampil pertanyaan untuk identitas pemilik sertifikat SSL.

Country Name (2 letter code) [AU]:ID
State or Province Name (full name) [Some-State]:Sulawesi Selatan
Locality Name (eg, city) []:Makassar
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MusaAmin.Web.ID
Organizational Unit Name (eg, section) []:Labs MusaAmin.Web.ID
Common Name (e.g. server FQDN or YOUR name) []:www.musaamin.web.id
Email Address []:hai@musaamin.web.id

Tambah atau ubah setting SSL/TLS.

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
ssl_ciphers=HIGH
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
require_ssl_reuse=NO

Restart service vsftpd dan uji apakah SSL/TLS sudah aktif.

systemctl restart vsftpd
systemctl status vsftpd

FileZilla, TLS connection status

 

sumber : https://musaamin.web.id/cara-install-ftp-server-dengan-vsftpd-di-debian-9-server/