Cara Install FTP Server dengan VsFTPd di Ubuntu

File Transfer Protocol (FTP) adalah standar protokol jaringan pada layer application yang digunakan untuk melakukan transfer file antara client dan server, dengan nomor port 21. Ada 3 aplikasi FTP server yang umum digunakan di Unix-like yaitu Pure-FTPd, VsFTPd, dan ProFTPd. Pada tutorial ini saya menggunakan VsFTPd (Very secure FTP daemon) di Ubuntu 16.04.

-Install vsftpd-

[INPUT]

1 sudo apt-get install vsftpd

-Konfigurasi-

Konfigurasi dasar

Buka file konfigurasi *vsftpd.conf*

[INPUT]

1 sudo nano /etc/vsftpd.conf

Aktifkan opsi *write_enable* dengan menghapus karakter # dan ubah nilainya menjadi YES. Opsi ini agar dapat melakukan penulisan file (upload/create/delete) pada server.

[INPUT]

1 write_enable=YES

Restart service dan cek statusnya

[INPUT]

1 2 sudo systemctl restart vsftpd sudo systemctl status vsftpd

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

Konfigurasi chroot_local

Konfigurasi sebelumnya sudah bisa berjalan dengan baik, tapi user yang login bisa mengakses folder yang lain. Untuk itu perlu dikonfigurasi agar user yang login hanya berada pada folder home-nya saja */home/user*, tidak bisa lagi mengakses folder lain atau disebut juga *chroot jail*.

Buka kembali file vsftpd.conf, lalu aktifkan *chroot_local_user* dan tambahkan opsi *allow_writeable_chroot*. Setelah konfigurasi, restart service.

[INPUT]

1 2 chroot_local_user=YES allow_writeable_chroot=YES

Uji kembali konfigurasi. Jika berhasil yang tampil hanya folder / (root), tapi sebenarnya itu adalah folder /home/user.

Konfigurasi local_root

Pada saat berhasil login secara default folder yang dituju adalah folder */home/user*. Nah, sekarang bagaimana caranya jika mau diarahkan ke folder lain, misalnya */var/www/user*. Hal ini dapat dilakukan dengan melakukan konfigurasi *local_root*.

Buka file konfigurasi dan tambahkan pada baris paling bawah opsi berikut ini. Jangan lupa restart service setelah konfigurasi.

[INPUT]

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

Buat direktori sesuai nama user pada */var/www* dan buat file di dalamnya sebagai penanda bahwa itu folder */var/www/user*.

[INPUT]

1 2 3 4 5 sudo mkdir /var/www/namauser cd /var/www/namauser touch folder_var_www_namauser.txt sudo chown -R namauser:namauser /var/www/namauser sudo chmod -R 775 /var/www/namauser

Uji kembali konfigurasi

Konfigurasi Passive Mode

Tambahkan konfigurasi di bawah ini

[INPUT]

1 2 3 pasv_enable=Yes pasv_min_port=10090 pasv_max_port=10100

Konfigurasi dot file (hidden file)

Pada sistem operasi Unix-like, file/folder yang diawali dengan karakter titik (.) menjadi tersembunyi (hidden). Contoh filenya adalah .htaccess. Jika ingin VsFTPd langsung menampilkan dot file tambahkan opsi di bawah ini.

[INPUT]

1 force_dot_files=YES

Konfigurasi FTP over TLS

Pada log terdapat pesan *Status: Insecure server, it does not support FTP over TLS*, yang artinya belum ada enkripsi.

Langkah pertama adalah dengan melakukan generate key

[INPUT]

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

Lalu isi identitas sertifikat

[INPUT]

1 2 3 4 5 6 7 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) []:Lab MusaAmin.Web.ID Common Name (e.g. server FQDN or YOUR name) []:musaamin.web.id Email Address []:mail@musaamin.web.id

Ubah nilai opsi konfigurasi di bawah ini

[INPUT]

1 2 3 rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES

Dan tambahkan opsi

[INPUT]

1 2 3 4 5 6 7 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 dan uji kembali konfigurasinya. Jika berhasil ditampilkan informasi sertifikat dan *Status: TLS connection established*.

Sekian dulu tutorial kali, semoga bisa membantu teman-teman sekalian.

selamat mencoba 🙂

Leave a Reply

Your email address will not be published.