Very Secure FTP Daemon (vsftpd) adalah perangkat lunak server FTP yang ringan, aman, dan mudah digunakan untuk Linux. Dokumen ini menjelaskan cara menginstal dan mengonfigurasi vsftpd pada server aplikasi sederhana berbasis Linux serta cara menguji konektivitas ke server FTP.
Prasyarat
Sebuah server aplikasi sederhana berbasis Linux telah dibuat. Untuk informasi lebih lanjut, lihat Membuat server aplikasi sederhana.
Informasi latar belakang
FTP adalah protokol yang digunakan untuk mentransfer file. FTP didasarkan pada arsitektur model klien-server dan mendukung mode kerja berikut:
Mode aktif: Klien mengirimkan informasi port ke server FTP, dan server membuat koneksi ke port tersebut.
Mode pasif: Server FTP mengaktifkan port dan mengirimkan informasi port ke klien. Klien memulai koneksi ke port tersebut, dan server menerima koneksi.
FTP mendukung mode autentikasi berikut:
Mode pengguna anonim: Pengguna dapat masuk ke server FTP tanpa nama pengguna atau kata sandi. Ini merupakan mode autentikasi paling tidak aman. Dalam banyak kasus, mode ini digunakan untuk mentransfer file publik yang tidak penting. Kami menyarankan Anda untuk tidak menggunakan mode ini dalam lingkungan produksi.
Mode pengguna lokal: Sistem mengotentikasi pengguna dengan memeriksa apakah mereka adalah pengguna lokal Linux. Mode ini lebih aman daripada mode pengguna anonim.
Mode pengguna virtual: Sistem Linux mengotentikasi pengguna dengan memeriksa apakah mereka adalah pengguna virtual. Pengguna virtual hanya memiliki akses ke layanan FTP yang disediakan oleh sistem Linux kepada mereka, dan tidak memiliki akses ke sumber daya lain dari sistem. Mode pengguna virtual lebih aman daripada mode pengguna anonim dan lokal. Jika Anda memiliki persyaratan keamanan tinggi pada data server, kami sarankan Anda mengonfigurasi mode pengguna virtual di bawah bimbingan profesional.
Dokumen ini menjelaskan mode pengguna anonim yang mudah dikonfigurasi dan mode pengguna lokal yang lebih aman.
Langkah 1: Persiapan awal
FileZilla adalah alat klien FTP. Dalam contoh ini, FileZilla digunakan untuk menguji konektivitas ke server FTP. Anda harus melakukan persiapan berikut:
Unduh dan instal FileZilla di komputer Anda.
Untuk mengunduh FileZilla, kunjungi atau FileZilla.
Tetapkan kata sandi untuk Server Linux.
Untuk informasi lebih lanjut, lihat Atur atau reset kata sandi server.
Langkah 2: Instal dan konfigurasikan vsftpd
Dokumen ini menggunakan CentOS 7 sebagai contoh. Prosedurnya bervariasi berdasarkan sistem operasi. Untuk informasi lebih lanjut, lihat Membangun situs FTP pada instance ECS.
Hubungkan ke Server Linux.
Untuk informasi lebih lanjut, lihat Hubungkan ke Server Linux.
Jalankan perintah berikut untuk memeriksa apakah vsftpd sudah terinstal di server:
Beberapa server aplikasi sederhana yang diterapkan menggunakan gambar aplikasi memiliki vsftpd yang sudah terinstal sebelumnya. Jika Anda menginstal vsftpd lagi, konflik mungkin terjadi.
vsftpd -vJika informasi berikut dikembalikan, vsftpd sudah terinstal di server aplikasi sederhana. Anda tidak perlu menginstal vsftpd lagi. Anda bisa mendapatkan nama pengguna dan kata sandi server FTP dengan merujuk pada dokumentasi gambar aplikasi terkait. Kemudian, Anda dapat mengonfigurasi firewall dan menggunakan klien FTP untuk menguji konektivitas ke server FTP. Untuk informasi lebih lanjut, lihat bagian Langkah 4: Konfigurasikan firewall server Linux dan Langkah 5: Periksa apakah Anda dapat mengakses server FTP dari klien FTP dari dokumen ini.
[admin@iZ2579sxicu**** ~]$ vsftpd -v vsftpd: version 3.0.2Jalankan perintah berikut untuk menginstal vsftpd:
sudo yum install -y vsftpdJika pesan berikut muncul, vsftpd berhasil diinstal.

Jalankan perintah berikut untuk mengaktifkan layanan FTP agar otomatis mulai saat startup sistem:
sudo systemctl enable vsftpd.serviceJalankan perintah berikut untuk memulai layanan FTP:
sudo systemctl start vsftpd.serviceCatatanJika layanan FTP tidak dapat dimulai dan sistem mengembalikan pesan kesalahan
Job for vsftpd.service failed because the control process exited with error code, periksa apakah port 21 digunakan oleh layanan lain dan atasi masalah tersebut.Jalankan perintah
lsof -i:21untuk memeriksa apakah proses ada.Jika proses ada, jalankan perintah
kill -9 <Nomor proses>untuk menghentikan proses.
Jalankan perintah berikut untuk menanyakan nomor port layanan FTP:
sudo netstat -antup | grep ftpJika Anda dapat melihat nomor port layanan FTP, seperti yang ditunjukkan pada gambar berikut, layanan FTP telah dimulai.

Langkah 3: Konfigurasikan mode akses server FTP
Anda dapat mengonfigurasi mode pengguna anonim atau lokal untuk server FTP. Kami menyarankan Anda menggunakan mode pengguna lokal yang lebih aman.
(Direkomendasikan) Mode pengguna lokal
Jalankan perintah berikut untuk membuat pengguna Linux untuk layanan FTP.
Dalam contoh ini, nama pengguna
ftptestdigunakan.sudo adduser ftptestJalankan perintah berikut untuk mengubah kata sandi pengguna
ftptest:sudo passwd ftptestIkuti petunjuk baris perintah untuk mengubah kata sandi pengguna.
Jalankan perintah berikut untuk membuat direktori file untuk layanan FTP:
sudo mkdir /var/ftp/testJalankan perintah berikut untuk mengubah pemilik direktori /var/ftp/test menjadi
ftptest:sudo chown -R ftptest:ftptest /var/ftp/testUbah file konfigurasi vsftpd.conf.
Jalankan perintah berikut untuk mengubah file konfigurasi /etc/vsftpd/vsftpd.conf.
Jika Anda menjalankan perintah apt install vsftpd saat menginstal vsftpd, jalur ke file konfigurasi adalah /etc/vsftpd.conf.
sudo vim /etc/vsftpd/vsftpd.confTekan tombol I untuk masuk ke mode edit.
Aktifkan mode pasif untuk server FTP.
Konfigurasikan parameter berikut dan pertahankan nilai default parameter lainnya.
PentingSebelum Anda menyalin parameter berikut dan menempelkannya ke file konfigurasi server Linux, pastikan bahwa parameter tersebut tidak dikomentari dengan tanda pagar (
#). Pastikan bahwa parameter tersebut ditentukan dalam format yang valid. Sebagai contoh, spasi tambahan dapat menyebabkan layanan gagal memulai ulang.Ubah nilai parameter berikut:
#Nonaktifkan pengguna anonim untuk masuk ke server FTP. anonymous_enable=NO #Izinkan pengguna lokal untuk masuk ke server FTP. local_enable=YES #Dengarkan pada soket IPv4. listen=YESTambahkan tanda pagar (#) di awal baris untuk mengomentari parameter berikut dan menonaktifkan pendengaran pada soket IPv6:
#listen_ipv6=YESTambahkan parameter berikut ke akhir file konfigurasi. Ganti nilai parameter
pasv_addressdengan alamat IP publik server aplikasi sederhana.#Tentukan direktori pengguna lokal setelah pengguna lokal masuk. local_root=/var/ftp/test #Batasi semua pengguna ke direktori home setelah mereka masuk. chroot_local_user=YES #Gunakan daftar untuk menentukan pengguna pengecualian. Pengguna pengecualian adalah pengguna yang tidak dibatasi ke direktori home setelah mereka masuk. chroot_list_enable=YES #Tentukan file yang berisi daftar pengguna pengecualian. chroot_list_file=/etc/vsftpd/chroot_list #Aktifkan mode pasif. pasv_enable=YES allow_writeable_chroot=YES #Masukkan alamat IP publik server aplikasi sederhana. pasv_address=39.105.xx.xx #Tentukan nomor port minimum dari rentang port yang dapat digunakan untuk mentransfer data dalam mode pasif. #Kami menyarankan Anda menggunakan port dari rentang angka tinggi, seperti 50000 hingga 50010. Port ini memberikan akses yang lebih aman ke server FTP. pasv_min_port=50000 #Tentukan nomor port maksimum dari rentang port yang dikirim ke klien FTP untuk koneksi mode pasif. pasv_max_port=50010Untuk informasi tentang parameter lainnya, lihat Lampiran.
Tekan tombol Esc untuk keluar dari mode edit. Masukkan
:wqdan tekan tombol Enter untuk menyimpan dan menutup file.
Buat file chroot_list, dan tulis daftar pengguna pengecualian ke file tersebut.
Jalankan perintah berikut untuk membuat file chroot_list:
sudo vim /etc/vsftpd/chroot_listTekan tombol I untuk masuk ke mode edit.
Tentukan pengguna pengecualian. Pengguna pengecualian tidak dibatasi ke direktori home dan memiliki akses ke direktori lain.
PentingAnda harus membuat file chroot_list meskipun tidak ada pengguna pengecualian. File tersebut dapat kosong.
Tekan tombol Esc untuk keluar dari mode edit. Masukkan
:wqdan tekan tombol Enter untuk menyimpan dan menutup file.
Jalankan perintah berikut untuk menonaktifkan firewall:
sudo systemctl stop firewalldUbah file konfigurasi.
Jalankan perintah berikut untuk membuka file /etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_configUbah nilai
PasswordAuthenticationmenjadiyesdi akhir file.
Tekan tombol
Escuntuk keluar dari mode edit. Masukkan:wq!dan tekan tombolEnteruntuk menyimpan dan menutup file konfigurasi.
Jalankan perintah berikut untuk memulai ulang layanan FTP:
sudo systemctl restart vsftpd.service
Mode pengguna anonim
Jalankan perintah berikut untuk mengubah file konfigurasi /etc/vsftpd/vsftpd.conf.
Jika Anda menjalankan perintah apt install vsftpd saat menginstal vsftpd, jalur ke file konfigurasi adalah /etc/vsftpd.conf.
sudo vim /etc/vsftpd/vsftpd.confTekan tombol I untuk masuk ke mode edit.
Temukan parameter
anonymous_enableyang menentukan mode anonim, dan parameteranon_upload_enableyang menentukan izin unggah anonim.Pengaturan default dalam file konfigurasi mungkin bervariasi berdasarkan distribusi Linux dari server aplikasi sederhana. Pastikan bahwa nilai kedua parameter adalah YES setelah Anda mengubah parameter.
anonymous_enable=YES anon_upload_enable=YES listen=YES listen_ipv6=NOTambahkan parameter berikut ke akhir file:
PentingSebelum Anda menyalin parameter berikut dan menempelkannya ke file konfigurasi server Linux, pastikan bahwa parameter tersebut tidak dikomentari dengan tanda pagar (
#). Pastikan bahwa parameter tersebut ditentukan dalam format yang valid. Sebagai contoh, spasi tambahan dapat menyebabkan layanan gagal memulai ulang.#Aktifkan mode pasif. pasv_enable=YES #Tentukan nomor port minimum dari rentang port yang dapat digunakan untuk mentransfer data dalam mode pasif. #Kami menyarankan Anda menggunakan port dari rentang angka tinggi, seperti 50000 hingga 50010. Port ini memberikan akses yang lebih aman ke server FTP. pasv_min_port=50000 #Tentukan nomor port maksimum dari rentang port yang dikirim ke klien FTP untuk koneksi mode pasif. pasv_max_port=50010 #Masukkan alamat IP publik server aplikasi sederhana. pasv_address=39.105.xx.xxTekan tombol Esc untuk keluar dari mode edit. Masukkan
:wqdan tekan tombol Enter untuk menyimpan dan menutup file.Jalankan perintah berikut untuk mengubah izin pada direktori /var/ftp/pub dan memberikan izin tulis pada direktori tersebut kepada pengguna FTP:
/var/ftp/pub adalah direktori file default layanan FTP.
sudo chmod o+w /var/ftp/pub/Jalankan perintah berikut untuk memulai ulang layanan FTP:
sudo systemctl restart vsftpd.service
Langkah 4: Konfigurasikan firewall server Linux
Setelah server FTP dibangun, Anda harus menambahkan aturan di firewall server Linux untuk mengaktifkan port yang tercantum dalam tabel berikut. Untuk informasi lebih lanjut, lihat Kelola firewall.
Dalam mode pasif, Anda harus mengaktifkan port 21 dan semua port yang termasuk dalam rentang port yang ditentukan oleh pasv_min_port dan pasv_max_port dalam file konfigurasi /etc/vsftpd/vsftpd.conf. Tabel berikut menjelaskan detail konfigurasi.
Jenis aplikasi | Protokol | Rentang port |
FTP | TCP | 21 |
Kustom | TCP |
|
Setelah aturan firewall ditambahkan, aturan tersebut akan muncul di halaman Firewall, seperti yang ditunjukkan pada gambar berikut:

Langkah 5: Periksa apakah Anda dapat mengakses server FTP dari klien FTP
Lampiran
File konfigurasi vsftpd dan parameter
Berikut ini menjelaskan file dalam direktori /etc/vsftpd:
/etc/vsftpd/vsftpd.confadalah file konfigurasi inti vsftpd./etc/vsftpd/ftpusersadalah file daftar hitam. Pengguna yang ditentukan dalam file ini tidak diizinkan mengakses server FTP./etc/vsftpd/user_listadalah file daftar putih. Pengguna yang ditentukan dalam file ini diizinkan mengakses server FTP.
Tabel berikut menjelaskan parameter yang digunakan dalam file konfigurasi vsftpd.conf.
Tabel berikut menjelaskan parameter untuk kontrol login.
Parameter
Deskripsi
anonymous_enable=YES
Menerima pengguna anonim.
no_anon_password=YES
Mengizinkan pengguna anonim masuk ke server FTP tanpa perlu memasukkan kata sandi.
anon_root=(none)
Menentukan direktori home pengguna anonim.
local_enable=YES
Menerima pengguna lokal.
local_root=(none)
Menentukan direktori home pengguna lokal.
Tabel berikut menjelaskan parameter yang digunakan untuk mengelola izin pengguna.
Parameter
Deskripsi
write_enable=YES
Mengizinkan semua pengguna mengunggah file.
local_umask=022
Memberikan izin kepada pengguna lokal untuk mengunggah file.
file_open_mode=0666
Menggunakan umask untuk memberikan izin mengunggah file.
anon_upload_enable=NO
Mengizinkan pengguna anonim mengunggah file.
anon_mkdir_write_enable=NO
Mengizinkan pengguna anonim membuat direktori.
anon_other_write_enable=NO
Mengizinkan pengguna anonim memodifikasi dan menghapus file.
chown_username=lightwiter
Menentukan kepemilikan file yang diunggah oleh pengguna anonim.