All Products
Search
Document Center

Simple Application Server:Siapkan server FTP (Linux)

Last Updated:Apr 02, 2026

Very Secure FTP Daemon (vsftpd) adalah server FTP ringan untuk Linux. Topik ini memandu Anda melalui proses instalasi dan konfigurasi vsftpd pada Simple Application Server berbasis Linux, lalu memverifikasi koneksi menggunakan FileZilla.

Catatan

FTP mentransmisikan data—termasuk kredensial—dalam bentuk teks biasa. Untuk beban kerja produksi yang memerlukan enkripsi, pertimbangkan SFTP atau FTPS sebagai gantinya. Panduan ini membahas vsftpd untuk kasus penggunaan di mana FTP merupakan kebutuhan spesifik.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Mode koneksi dan otentikasi FTP

FTP beroperasi dalam dua mode koneksi:

  • Active mode: Klien mengirim informasi port-nya ke server, dan server memulai koneksi data.

  • Passive mode: Server membuka sebuah port dan mengirim informasi port tersebut ke klien, yang kemudian memulai koneksi. Panduan ini mengonfigurasi passive mode, yang bekerja lebih baik melalui firewall dan NAT.

FTP mendukung tiga mode otentikasi:

ModeKeamananDeskripsi
Anonymous user modeTerendahTidak memerlukan username atau password. Hanya cocok untuk transfer file publik. Hindari di lingkungan produksi.
Local user modeSedangMelakukan otentikasi terhadap pengguna Linux lokal. Dibahas dalam panduan ini.
Virtual user modeTertinggiMenggunakan pengguna virtual yang terisolasi dari sistem. Memerlukan konfigurasi profesional.

Panduan ini mencakup local user mode (direkomendasikan) dan anonymous user mode.

Langkah 1: Instal vsftpd

  1. Hubungkan ke server Linux Anda.

  2. Periksa apakah vsftpd sudah terinstal. Beberapa server yang dideploy dengan application image menyertakan vsftpd pra-instal—menginstal ulang dapat menyebabkan konflik.

    vsftpd -v

    Jika output menampilkan nomor versi, berarti vsftpd sudah terinstal:

    vsftpd: version 3.0.2

    Jika vsftpd sudah terinstal, dapatkan kredensial FTP dari dokumentasi application image Anda, lalu lewati ke Langkah 3: Buka port firewall.

  3. Instal vsftpd. Contoh ini menggunakan CentOS 7. Untuk distribusi lain, lihat Build an FTP site on an ECS instance.

    sudo yum install -y vsftpd

    Pesan sukses akan mengonfirmasi instalasi.

  4. Aktifkan vsftpd agar otomatis berjalan saat boot:

    sudo systemctl enable vsftpd.service
  5. Jalankan vsftpd:

    sudo systemctl start vsftpd.service
    Catatan

    Jika layanan gagal dijalankan dengan error Job for vsftpd.service failed because the control process exited with error code, port 21 mungkin sedang digunakan. Jalankan lsof -i:21 untuk mengidentifikasi proses tersebut, lalu jalankan kill -9 <PID> untuk menghentikannya sebelum menjalankan ulang vsftpd.

  6. Verifikasi bahwa vsftpd sedang berjalan:

    sudo netstat -antup | grep ftp

    Jika port layanan FTP muncul dalam output, berarti vsftpd sedang berjalan.

Langkah 2: Konfigurasi mode akses

Pilih salah satu mode berikut. Local user mode direkomendasikan untuk keamanan yang lebih baik.

Local user mode (direkomendasikan)

  1. Buat pengguna Linux khusus untuk akses FTP. Contoh ini menggunakan ftptest.

    sudo adduser ftptest
  2. Tetapkan password untuk pengguna tersebut:

    sudo passwd ftptest

    Ikuti prompt untuk memasukkan dan mengonfirmasi password.

  3. Buat direktori FTP:

    sudo mkdir /var/ftp/test
  4. Tetapkan kepemilikan direktori kepada ftptest:

    sudo chown -R ftptest:ftptest /var/ftp/test
  5. Buat cadangan file konfigurasi vsftpd sebelum mengedit:

    sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
  6. Buka file konfigurasi untuk diedit:

    Catatan

    Jika Anda menginstal vsftpd dengan apt install vsftpd, file konfigurasinya berada di /etc/vsftpd.conf sebagai gantinya.

    sudo vim /etc/vsftpd/vsftpd.conf

    Tekan i untuk memasuki mode edit.

  7. Perbarui parameter berikut. Pastikan tidak ada baris ini yang dikomentari dengan #, dan hindari spasi tambahan di akhir baris—spasi berlebih menyebabkan vsftpd gagal saat restart. /etc/vsftpd/vsftpd.conf

    # Nonaktifkan login anonim
    anonymous_enable=NO
    # Izinkan pengguna lokal untuk login
    local_enable=YES
    # Dengarkan pada IPv4
    listen=YES

    Komentari listener IPv6 dengan menambahkan # di awal baris:

    #listen_ipv6=YES
  8. Tambahkan parameter berikut di akhir file. Ganti 39.105.xx.xx dengan Alamat IP publik server Anda. /etc/vsftpd/vsftpd.conf

    # Tetapkan direktori home untuk pengguna lokal setelah login
    local_root=/var/ftp/test
    # Batasi pengguna hanya pada direktori home mereka
    chroot_local_user=YES
    # Aktifkan daftar pengguna yang dikecualikan dari pembatasan chroot
    chroot_list_enable=YES
    # Lokasi file daftar pengecualian
    chroot_list_file=/etc/vsftpd/chroot_list
    # Aktifkan passive mode
    pasv_enable=YES
    allow_writeable_chroot=YES
    # Alamat IP publik server
    pasv_address=39.105.xx.xx
    # Range port passive mode (port bernomor tinggi mengurangi eksposur)
    pasv_min_port=50000
    pasv_max_port=50010

    Tekan Esc, lalu ketik :wq dan tekan Enter untuk menyimpan dan keluar.

  9. Buat file daftar pengecualian chroot. Pengguna yang tercantum di sini tidak dibatasi pada direktori home. File ini wajib ada meskipun kosong.

    sudo vim /etc/vsftpd/chroot_list

    Tekan i untuk memasuki mode edit. Tambahkan username yang dikecualikan, satu per baris (biarkan file kosong jika tidak ada pengecualian). Tekan Esc, lalu ketik :wq dan tekan Enter untuk menyimpan dan keluar.

  10. Hentikan firewall sistem. vsftpd mengelola akses port melalui firewall Simple Application Server yang dikonfigurasi di Langkah 3.

     sudo systemctl stop firewalld
  11. Aktifkan otentikasi password dalam konfigurasi SSH:

     sudo vi /etc/ssh/sshd_config

    Cari PasswordAuthentication di akhir file dan atur nilainya menjadi yes. Tekan Esc, lalu ketik :wq! dan tekan Enter untuk menyimpan dan keluar.

  12. Jalankan ulang vsftpd untuk menerapkan semua perubahan:

     sudo systemctl restart vsftpd.service

Anonymous user mode

Penting

Mode anonim memungkinkan siapa pun terhubung tanpa password. Gunakan ini hanya untuk transfer file publik di lingkungan non-produksi.

  1. Buka file konfigurasi vsftpd:

    Catatan

    Jika Anda menginstal vsftpd dengan apt install vsftpd, file konfigurasinya berada di /etc/vsftpd.conf sebagai gantinya.

    sudo vim /etc/vsftpd/vsftpd.conf

    Tekan i untuk memasuki mode edit.

  2. Tetapkan parameter berikut. Nilai default bervariasi tergantung distribusi Linux—pastikan kedua nilai berikut adalah YES setelah diedit. Pastikan tidak ada baris ini yang dikomentari dengan #, dan hindari spasi tambahan di akhir baris. /etc/vsftpd/vsftpd.conf

    anonymous_enable=YES
    anon_upload_enable=YES
    listen=YES
    listen_ipv6=NO
  3. Tambahkan parameter berikut di akhir file. Ganti 39.105.xx.xx dengan Alamat IP publik server Anda. /etc/vsftpd/vsftpd.conf

    # Aktifkan passive mode
    pasv_enable=YES
    # Range port passive mode
    pasv_min_port=50000
    pasv_max_port=50010
    # Alamat IP publik server
    pasv_address=39.105.xx.xx

    Tekan Esc, lalu ketik :wq dan tekan Enter untuk menyimpan dan keluar.

  4. Berikan izin tulis pada direktori FTP default (/var/ftp/pub):

    sudo chmod o+w /var/ftp/pub/
  5. Jalankan ulang vsftpd:

    sudo systemctl restart vsftpd.service

Langkah 3: Buka port firewall

Tambahkan aturan masuk di firewall Simple Application Server untuk mengizinkan traffic FTP. Passive mode memerlukan port 21 dan range port passive. Lihat Manage a firewall untuk petunjuknya.

Jenis aplikasiProtokolRange port
FTPTCP21
CustomTCPpasv_min_portpasv_max_port (contoh: 50000/50010)

Setelah menambahkan aturan, aturan tersebut akan muncul di halaman Firewall:

image.png

Langkah 4: Verifikasi koneksi FTP

Gunakan FileZilla untuk memastikan server FTP dapat diakses.

Catatan

Contoh ini menggunakan FileZilla 3.64.0. Antarmuka mungkin berbeda pada versi lain.

  1. Buka FileZilla.

  2. Buka File > Site Manager.

  3. Klik New site (N) di pojok kiri bawah dialog Site Manager.

  4. Masukkan nama untuk situs baru dan konfigurasikan koneksi:

    filezilla

    ParameterNilai
    NameNama situs kustom. Contoh: test-01.
    ProtocolFTP
    HostAlamat IP publik server (contoh: 121.43.XX.XX)
    Port21
    Logon typeAnonymous (untuk mode anonim) atau Normal (untuk mode pengguna lokal)

    Untuk mode pengguna lokal, atur Logon type ke Normal dan masukkan username serta password FTP.

  5. Klik Connect.

Setelah terhubung, gunakan FileZilla untuk mengunggah, mengunduh, atau menghapus file. Antarmuka terbagi menjadi empat bagian:

filezilla
BagianDeskripsi
Status koneksi, perintah, dan hasil tugas
Mesin lokal: daftar direktori dan file
Server remote: daftar direktori FTP. Dalam mode anonim, direktori default adalah /pub.
Antrian transfer dan log tugas

Referensi konfigurasi vsftpd

Direktori /etc/vsftpd berisi tiga file utama:

  • /etc/vsftpd/vsftpd.conf: file konfigurasi utama

  • /etc/vsftpd/ftpusers: pengguna dalam file ini ditolak akses FTP-nya (blacklist)

  • /etc/vsftpd/user_list: pengguna dalam file ini diizinkan akses FTP (daftar putih)

Parameter kontrol login

ParameterDeskripsi
anonymous_enable=YESMenerima pengguna anonim
no_anon_password=YESMelewati prompt password untuk pengguna anonim
anon_root=Direktori home untuk pengguna anonim
local_enable=YESMenerima pengguna lokal
local_root=Direktori home untuk pengguna lokal

Parameter izin

ParameterDeskripsi
write_enable=YESMengizinkan semua pengguna mengunggah file
local_umask=022Mask izin file untuk unggahan pengguna lokal
file_open_mode=0666Terapkan umask pada izin file yang diunggah
anon_upload_enable=NOMengizinkan pengguna anonim mengunggah file
anon_mkdir_write_enable=NOMengizinkan pengguna anonim membuat direktori
anon_other_write_enable=NOMengizinkan pengguna anonim memodifikasi atau menghapus file
chown_username=lightwiterPemilik yang ditetapkan untuk file yang diunggah oleh pengguna anonim