All Products
Search
Document Center

Elastic Compute Service:Membangun server FTP pada instans Linux

Last Updated:Mar 02, 2026

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

  1. Jalankan perintah berikut untuk memperbarui komponen sistem dan menginstal layanan vsftpd.

    sudo yum update -y 
    sudo yum install vsftpd -y
  2. Jalankan perintah berikut untuk memulai layanan FTP dan mengaktifkannya agar otomatis berjalan saat startup sistem.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd 
  3. Jalankan perintah berikut untuk memeriksa apakah layanan telah dimulai.

    netstat -antup | grep ftp

    Jika output-nya mirip dengan berikut, layanan FTP telah berhasil dimulai.

    image

    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

  1. Jalankan perintah berikut untuk membuat pengguna khusus untuk layanan FTP dan menetapkan password. Topik ini menggunakan ftpuser sebagai contoh.

    sudo useradd -d /data/ftp -s /sbin/nologin ftpuser  # Tentukan direktori home dan nonaktifkan akses shell
    sudo passwd ftpuser 
  2. Jalankan 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 750
  3. Edit file konfigurasi vsftpd.

    Catatan

    Server 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.

    1. Jalankan perintah berikut untuk mencadangkan file konfigurasi vsftpd.

      sudo cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak
    2. Jalankan perintah berikut untuk mengubah file konfigurasi.

      sudo vim /etc/vsftpd/vsftpd.conf
    3. Ubah 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 chroot
    4. Tambahkan 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
  4. 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.

  1. Uji koneksi lokal.

    Jalankan perintah berikut untuk menguji koneksi dari mesin lokal.

    ftp ftpuser@localhost 

    Pesan Login successful di konsol menunjukkan koneksi berhasil.

    image

  2. Uji koneksi klien.

    Pada komputer klien, buka file explorer dan akses alamat berikut, seperti yang ditunjukkan pada gambar.

    image

    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

  1. Jalankan perintah berikut untuk memperbarui komponen sistem dan menginstal layanan vsftpd.

    sudo apt update && sudo apt upgrade -y
    sudo apt install vsftpd -y
  2. Jalankan perintah berikut untuk memulai layanan vsftpd dan mengaktifkannya agar otomatis berjalan saat startup sistem.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd

Langkah 2: Konfigurasi VSFTP

  1. 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)
  2. 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-files
  3. Jalankan perintah berikut untuk mencadangkan file konfigurasi asli.

    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
  4. Jalankan perintah berikut untuk mengedit file konfigurasi.

    sudo nano /etc/vsftpd.conf

    Ubah 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 mereka

    Tambahkan 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=40100
  5. Jalankan perintah berikut untuk restart layanan FTP.

    sudo systemctl restart vsftpd
  6. Setelah FTP diinstal, pengguna bernama ftp dibuat secara default tanpa password. Jalankan perintah berikut untuk mengubah password pengguna ftp.

     sudo passwd ftp

    Tetapkan password kuat dan lewati semua prompt lainnya.

  7. Tambahkan pengguna ke daftar pengguna FTP yang diizinkan.

     echo "ftp" | sudo tee -a /etc/vsftpd.userlist
  8. Buat direktori file FTP dan berikan izin kepada pengguna.

    1. Buat folder FTP.

       sudo mkdir /home/ftp
    2. Tetapkan 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.

  1. Uji koneksi lokal.

    Jalankan perintah berikut untuk menguji koneksi dari mesin lokal.

    ftp ftpuser@localhost 

    Pesan Login successful di konsol menunjukkan koneksi berhasil.

    image

  2. Uji koneksi klien.

    Pada komputer klien, buka file explorer dan akses alamat berikut, seperti yang ditunjukkan pada gambar.

    image

    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 227 Entering Passive Mode

Periksa asosiasi Alamat IP publik dan aturan firewall di sisi klien maupun server.

550 Permission denied

Ubah izin direktori menjadi 755.

Hanya direktori kosong yang ditampilkan

Periksa konfigurasi chroot_local_user.

500 OOPS: vsftpd: refusing to run with writable root

Jalankan chmod a-w /data/ftp.

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.conf adalah file konfigurasi inti vsftpd.

  • /etc/vsftpd/ftpusers adalah file blacklist. Pengguna yang tercantum dalam file ini tidak dapat mengakses server FTP.

  • /etc/vsftpd/user_list adalah 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