vsftpd (Very Secure FTP Daemon) adalah perangkat lunak server FTP open source yang banyak digunakan, dikenal karena kinerja tinggi, keamanan, dan stabilitasnya. vsftpd mendukung berbagai protokol terkait FTP, seperti FTP, SFTP melalui SSH, serta FTP dengan enkripsi Secure Sockets Layer (SSL)/Transport Layer Security (TLS). Topik ini menjelaskan cara menginstal dan mengonfigurasi vsftpd pada instans Elastic Compute Service (ECS) yang menjalankan Linux.
Penerapan cepat
Klik Run now untuk membuka Terraform Explorer. Di Terraform Explorer, Anda dapat melihat dan menjalankan kode Terraform guna membangun situs FTP secara otomatis pada instans ECS.
Prasyarat
Buat instans ECS dasar yang memenuhi persyaratan berikut. Jika belum membuat instans, lihat Create an instance using the wizard.
Sistem operasi: Alibaba Cloud Linux 3 atau 2, CentOS 7.x 64-bit, Ubuntu, atau Debian.
Alamat IP: Instans memiliki Alamat IP publik statis atau dikaitkan dengan Elastic IP Address (EIP). Untuk informasi selengkapnya, lihat Elastic IP Address.
Pengenalan VSFTP
vsftpd (Very Secure FTP Daemon) adalah perangkat lunak server FTP open source yang dirancang untuk sistem UNIX dan Linux. Fitur utamanya meliputi hal-hal berikut:
Keamanan tinggi: vsftpd telah menjalani audit keamanan ketat dan menggunakan berbagai mekanisme keamanan untuk mencegah serangan dan kerentanan umum secara efektif.
Kinerja unggul: Menyediakan transfer file berkinerja tinggi dan mendukung banyak koneksi pengguna bersamaan.
Konfigurasi sederhana: Menawarkan opsi konfigurasi yang fleksibel dan mudah dipahami untuk memenuhi berbagai kebutuhan pengguna.
Dukungan IPv6: Memberikan dukungan kuat untuk protokol jaringan generasi berikutnya.
Membangun layanan VSFTP
Alibaba Cloud Linux 3 dan 2/CentOS 7.x
Langkah 1: Instal vsftpd
Jalankan perintah berikut untuk memperbarui komponen sistem dan menginstal layanan
vsftpd.sudo yum update -y sudo yum install vsftpd -yJalankan perintah berikut untuk memulai layanan FTP dan mengaktifkannya agar otomatis berjalan saat startup sistem.
sudo systemctl start vsftpd sudo systemctl enable vsftpdJalankan perintah berikut untuk memeriksa apakah layanan telah dimulai.
netstat -antup | grep ftpJika output-nya mirip dengan berikut, layanan FTP telah berhasil dimulai.

Pada tahap ini, vsftpd secara default telah mengaktifkan mode pengguna anonim. Anda dapat login ke server FTP tanpa username dan password. Pengguna yang login dengan cara ini tidak memiliki izin untuk memodifikasi atau mengunggah file.
Langkah 2: Konfigurasi vsftpd
Jalankan perintah berikut untuk membuat pengguna khusus untuk layanan FTP dan menetapkan password. Topik ini menggunakan
ftpusersebagai contoh.sudo useradd -d /data/ftp -s /sbin/nologin ftpuser # Tentukan direktori home dan nonaktifkan akses shell sudo passwd ftpuserJalankan perintah berikut untuk membuat folder untuk layanan FTP dan mengonfigurasi izin direktori.
sudo mkdir -p /data/ftp # Buat direktori penyimpanan kustom sudo chown ftpuser:ftpuser /data/ftp sudo chmod 750 /data/ftp # Izin harus 755 atau 750Edit file konfigurasi
vsftpd.CatatanServer FTP dapat terhubung ke klien dan mentransfer data dalam mode aktif atau pasif. Karena pengaturan firewall pada sebagian besar mesin klien dan ketidakmampuan untuk mendapatkan alamat IP asli, kami menyarankan Anda menggunakan mode pasif untuk membangun layanan FTP. Modifikasi berikut ditujukan untuk menyiapkan mode pasif.
Jalankan perintah berikut untuk mencadangkan file konfigurasi
vsftpd.sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bakJalankan perintah berikut untuk mengubah file konfigurasi.
sudo vim /etc/vsftpd/vsftpd.confUbah konfigurasi keamanan dasar untuk layanan FTP.
listen=YES # Aktifkan listener IPv4 anonymous_enable=NO # Nonaktifkan akses anonim local_enable=YES # Aktifkan login pengguna lokal write_enable=YES # Izinkan unggah file chroot_local_user=YES # Kunci pengguna ke direktori home mereka allow_writeable_chroot=YES # Atasi error penulisan chrootTambahkan konfigurasi mode pasif di akhir file konfigurasi.
pasv_enable=YES # Aktifkan mode pasif pasv_min_port=40000 # Batas bawah rentang port pasif pasv_max_port=40100 # Batas atas rentang port pasif pasv_address=public_ip_address # Harus diatur ke Alamat IP publik server
Jalankan perintah berikut untuk restart layanan
vsftpd.sudo systemctl restart vsftpd
Langkah 3: Atur aturan grup keamanan
Setelah Anda membangun layanan FTP, tambahkan aturan inbound ke grup keamanan instans Linux sesuai dengan mode FTP yang digunakan. Untuk informasi selengkapnya, lihat Add a security group rule.
Sebagian besar mesin klien berada dalam jaringan area lokal (LAN), dan alamat IP-nya diterjemahkan. Jika Anda menggunakan mode aktif FTP, pastikan mesin klien mendapatkan alamat IP aslinya. Jika tidak, klien mungkin gagal login ke server FTP. Konfigurasi yang tepat membantu mencegah masalah koneksi dan meningkatkan stabilitas serta ketersediaan layanan FTP.
Mode aktif: Izinkan traffic pada Port 21.
Mode pasif: Izinkan traffic pada Port 21 dan semua port antara pasv_min_port dan pasv_max_port yang ditentukan dalam file /etc/vsftpd/vsftpd.conf. Dalam topik ini, port 40000 hingga 40100 diizinkan. Untuk informasi mengapa rentang port diperlukan dalam mode pasif FTP dan rekomendasi konfigurasinya, lihat Recommendations for FTP passive mode port configuration.
Langkah 4: Verifikasi layanan FTP
Anda dapat menggunakan klien FTP, browser, atau file explorer untuk memverifikasi layanan FTP. Topik ini menggunakan file explorer klien sebagai contoh.
Uji koneksi lokal.
Jalankan perintah berikut untuk menguji koneksi dari mesin lokal.
ftp ftpuser@localhostPesan
Login successfuldi konsol menunjukkan koneksi berhasil.
Uji koneksi klien.
Pada komputer klien, buka file explorer dan akses alamat berikut, seperti yang ditunjukkan pada gambar.

Pada kotak dialog login yang muncul, masukkan username dan password FTP. Setelah login, Anda dapat mengunggah dan mengunduh file.
Ubuntu dan Debian
Langkah 1: Instal VSFTP
Jalankan perintah berikut untuk memperbarui komponen sistem dan menginstal layanan
vsftpd.sudo apt update && sudo apt upgrade -y sudo apt install vsftpd -yJalankan perintah berikut untuk memulai layanan
vsftpddan mengaktifkannya agar otomatis berjalan saat startup sistem.sudo systemctl start vsftpd sudo systemctl enable vsftpd
Langkah 2: Konfigurasi VSFTP
Jalankan perintah berikut untuk membuat pengguna FTP khusus.
sudo useradd -m -s /bin/bash ftpuser # Buat pengguna dan otomatis hasilkan direktori home sudo passwd ftpuser # Tetapkan password pengguna (disarankan password kuat)Jalankan perintah berikut untuk membuat direktori penyimpanan file dan mengonfigurasi izin.
sudo mkdir /home/ftpuser/ftp-files sudo chown ftpuser:ftpuser /home/ftpuser/ftp-files sudo chmod 755 /home/ftpuser/ftp-filesJalankan perintah berikut untuk mencadangkan file konfigurasi asli.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bakJalankan perintah berikut untuk mengedit file konfigurasi.
sudo nano /etc/vsftpd.confUbah pengaturan konfigurasi berikut:
# Konfigurasi dasar listen=YES anonymous_enable=NO # Nonaktifkan akses anonim local_enable=YES # Izinkan login pengguna lokal write_enable=YES # Aktifkan izin menulis chroot_local_user=YES # Kunci pengguna di direktori home merekaTambahkan konfigurasi berikut di akhir file:
allow_writeable_chroot=YES # Izinkan penulisan ke direktori chroot local_root=/home/ftpuser/ftp-files # Tentukan direktori root untuk pengguna FTP # Konfigurasi mode pasif (untuk mengatasi masalah koneksi jaringan eksternal) pasv_enable=YES pasv_address=xx.xx.xx.xx # Ganti dengan Alamat IP publik Anda pasv_min_port=40000 pasv_max_port=40100Jalankan perintah berikut untuk restart layanan FTP.
sudo systemctl restart vsftpdSetelah FTP diinstal, pengguna bernama ftp dibuat secara default tanpa password. Jalankan perintah berikut untuk mengubah password pengguna ftp.
sudo passwd ftpTetapkan password kuat dan lewati semua prompt lainnya.
Tambahkan pengguna ke daftar pengguna FTP yang diizinkan.
echo "ftp" | sudo tee -a /etc/vsftpd.userlistBuat direktori file FTP dan berikan izin kepada pengguna.
Buat folder FTP.
sudo mkdir /home/ftpTetapkan kepemilikan folder.
Dalam contoh ini, izin baca, tulis, dan full kontrol diberikan ke folder. Anda dapat mengubah izin sesuai kebutuhan.
sudo chmod 777 /home/ftp
Langkah 3: Atur aturan grup keamanan
Setelah Anda membangun layanan FTP, tambahkan aturan inbound ke grup keamanan instans Linux sesuai dengan mode FTP yang digunakan. Untuk informasi selengkapnya, lihat Add a security group rule.
Sebagian besar mesin klien berada dalam jaringan area lokal (LAN), dan alamat IP-nya diterjemahkan. Jika Anda menggunakan mode aktif FTP, pastikan mesin klien mendapatkan alamat IP aslinya. Jika tidak, klien mungkin gagal login ke server FTP. Konfigurasi yang tepat membantu mencegah masalah koneksi dan meningkatkan stabilitas serta ketersediaan layanan FTP.
Mode aktif: Izinkan traffic pada Port 21.
Mode pasif: Izinkan traffic pada Port 21 dan semua port antara pasv_min_port dan pasv_max_port yang ditentukan dalam file /etc/vsftpd/vsftpd.conf. Untuk informasi mengapa rentang port diperlukan dalam mode pasif FTP dan rekomendasi konfigurasinya, lihat Build an FTP site on a Windows instance.
Langkah 4: Verifikasi layanan FTP
Anda dapat menggunakan klien FTP, browser, atau file explorer untuk memverifikasi layanan FTP. Topik ini menggunakan file explorer klien sebagai contoh.
Uji koneksi lokal.
Jalankan perintah berikut untuk menguji koneksi dari mesin lokal.
ftp ftpuser@localhostPesan
Login successfuldi konsol menunjukkan koneksi berhasil.
Uji koneksi klien.
Pada komputer klien, buka file explorer dan akses alamat berikut, seperti yang ditunjukkan pada gambar.

Pada kotak dialog login yang muncul, masukkan username dan password FTP. Setelah login, Anda dapat mengunggah dan mengunduh file.
Error umum
Fenomena | Solusi |
Timeout setelah | Periksa asosiasi Alamat IP publik dan aturan firewall di sisi klien maupun server. |
| Ubah izin direktori menjadi 755. |
Hanya direktori kosong yang ditampilkan | Periksa konfigurasi |
| Jalankan |
Timeout koneksi mode pasif | Periksa aturan firewall dan pengaturan pasv_address. |
Tidak dapat mengunggah file | Verifikasi bahwa izin direktori adalah 755 atau 750. |
Lampiran
File konfigurasi vsftpd dan parameter-parameter
Bagian berikut menjelaskan file-file dalam direktori /etc/vsftpd:
/etc/vsftpd/vsftpd.confadalah file konfigurasi inti vsftpd./etc/vsftpd/ftpusersadalah file blacklist. Pengguna yang tercantum dalam file ini tidak dapat mengakses server FTP./etc/vsftpd/user_listadalah file daftar putih. Pengguna yang tercantum dalam file ini dapat mengakses server FTP.
Tabel berikut menjelaskan parameter dalam file konfigurasi vsftpd.conf:
Tabel berikut menjelaskan parameter untuk kontrol login.
Parameter
Deskripsi
anonymous_enable=YES
Menerima pengguna anonim.
no_anon_password=YES
Pengguna anonim dapat login tanpa password.
anon_root=(none)
Direktori home untuk pengguna anonim.
local_enable=YES
Menerima pengguna lokal.
local_root=(none)
Direktori home untuk pengguna lokal.
Tabel berikut menjelaskan parameter untuk kontrol izin pengguna.
Parameter
Deskripsi
write_enable=YES
Mengizinkan unggah file (pengaturan global).
local_umask=022
Izin untuk file yang diunggah oleh pengguna lokal.
file_open_mode=0666
Izin untuk file yang diunggah. Pengaturan ini bekerja bersama local_umask.
anon_upload_enable=NO
Pengguna anonim dapat mengunggah file.
anon_mkdir_write_enable=NO
Pengguna anonim dapat membuat direktori.
anon_other_write_enable=NO
pengguna anonim: Edit, Hapus
chown_username=lightwiter
Username untuk unggahan file anonim