All Products
Search
Document Center

Elastic Compute Service:Bangun server FTP pada instans Linux

Last Updated:May 16, 2026

Instal dan konfigurasikan vsftpd pada instans ECS Linux untuk mengaktifkan transfer file FTP yang aman.

Penerapan cepat

Klik Run now untuk membuka Terraform Explorer dan secara otomatis membangun situs FTP pada instans ECS.

Prasyarat

Instans ECS yang memenuhi persyaratan berikut telah dibuat. Untuk membuatnya, lihat Create an instance using the wizard.

  • Sistem operasi: Alibaba Cloud Linux 3/2, CentOS 7.x 64-bit, Ubuntu, atau Debian.

  • Alamat IP: Instans memiliki Alamat IP publik statis atau EIP yang terkait. Lihat Elastic IP Address.

Ikhtisar

vsftpd (Very Secure FTP Daemon) adalah server FTP open-source untuk sistem UNIX dan Linux. Fitur utama:

  • Keamanan tinggi: audit keamanan ketat dan berbagai mekanisme untuk mencegah serangan umum.

  • Kinerja tinggi: menangani banyak koneksi bersamaan dengan transfer file yang efisien.

  • Konfigurasi sederhana: opsi fleksibel dan mudah dipahami untuk berbagai kebutuhan.

  • Dukungan IPv6: dukungan native untuk jaringan IPv6.

Bangun layanan VSFTP

Alibaba Cloud Linux 3 dan 2/CentOS 7.x

Langkah 1: Instal vsftpd

  1. Perbarui sistem dan instal vsftpd.

    sudo yum update -y 
    sudo yum install vsftpd -y
  2. Jalankan layanan FTP dan aktifkan auto-start saat boot.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd 
  3. Periksa apakah layanan telah dijalankan.

    netstat -antup | grep ftp

    Output yang mirip dengan berikut menunjukkan layanan FTP berhasil dijalankan.

    image

    Secara default, vsftpd mengaktifkan akses anonim. Pengguna anonim dapat login tanpa kredensial tetapi tidak dapat memodifikasi atau mengunggah file.

Langkah 2: Konfigurasi vsftpd

  1. Buat pengguna FTP khusus dan atur kata sandinya. Contoh ini menggunakan ftpuser.

    sudo useradd -d /data/ftp -s /sbin/nologin ftpuser  # Tentukan direktori home dan nonaktifkan akses shell
    sudo passwd ftpuser 
  2. Buat direktori FTP dan atur izinnya.

    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

    FTP mendukung mode aktif dan pasif. Mode pasif direkomendasikan karena sebagian besar klien berada di belakang firewall atau NAT dan tidak dapat mengekspos alamat IP aslinya.

    1. Buat cadangan file konfigurasi vsftpd.

      sudo cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak
    2. Edit file konfigurasi.

      sudo vim /etc/vsftpd/vsftpd.conf
    3. Atur konfigurasi keamanan dasar.

      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-nya
      allow_writeable_chroot=YES   # Atasi error penulisan chroot
    4. Tambahkan konfigurasi mode pasif.

      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. Restart vsftpd.

    sudo systemctl restart vsftpd

Langkah 3: Atur aturan security group

Setelah membangun layanan FTP, tambahkan aturan grup keamanan masuk berdasarkan mode FTP. Lihat Add a security group rule.

Sebagian besar klien berada di belakang LAN dengan alamat IP yang diterjemahkan. Dalam mode aktif, klien harus mengekspos alamat IP aslinya, atau koneksi FTP dapat gagal.

  • Mode aktif: Izinkan lalu lintas pada Port 21.

  • Mode pasif: Izinkan lalu lintas pada Port 21 dan port 40000–40100 (rentang pasv_min_port hingga pasv_max_port dalam /etc/vsftpd/vsftpd.conf). Lihat Configuring FTP passive mode ports.

Langkah 4: Verifikasi layanan FTP

Anda dapat memverifikasi layanan FTP dengan klien FTP, browser, atau file explorer. Contoh ini menggunakan file explorer.

  1. Uji koneksi lokal.

    Uji koneksi dari mesin lokal.

    ftp ftpuser@localhost 

    Pesan Login successful menunjukkan koneksi berhasil.

    image

  2. Uji koneksi klien.

    Pada komputer klien, buka file explorer dan masukkan alamat FTP, seperti yang ditunjukkan pada gambar.

    image

    Masukkan username dan password FTP pada kotak dialog login. Setelah login, Anda dapat mengunggah dan mengunduh file.

Ubuntu dan Debian

Langkah 1: Instal VSFTP

  1. Perbarui sistem dan instal vsftpd.

    sudo apt update && sudo apt upgrade -y
    sudo apt install vsftpd -y
  2. Jalankan vsftpd dan aktifkan auto-start saat boot.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd

Langkah 2: Konfigurasi VSFTP

  1. Buat pengguna FTP khusus.

    sudo useradd -m -s /bin/bash ftpuser  # Buat pengguna dan secara otomatis buat direktori home
    sudo passwd ftpuser  # Atur kata sandi pengguna (disarankan kata sandi kuat)
  2. Buat direktori penyimpanan file dan atur izinnya.

    sudo mkdir /home/ftpuser/ftp-files
    sudo chown ftpuser:ftpuser /home/ftpuser/ftp-files
    sudo chmod 755 /home/ftpuser/ftp-files
  3. Buat cadangan file konfigurasi asli.

    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
  4. Edit file konfigurasi.

    sudo nano /etc/vsftpd.conf

    Terapkan pengaturan 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-nya

    Tambahkan baris berikut ke file:

    allow_writeable_chroot=YES   # Izinkan menulis 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. Restart layanan FTP.

    sudo systemctl restart vsftpd
  6. Pengguna default bernama ftp dibuat tanpa kata sandi selama instalasi FTP. Ubah kata sandi pengguna ini.

     sudo passwd ftp

    Atur kata sandi kuat dan lewati semua prompt lainnya.

  7. Tambahkan pengguna ke daftar izin pengguna FTP.

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

    1. Buat folder FTP.

       sudo mkdir /home/ftp
    2. Atur kepemilikan folder.

      Contoh ini memberikan izin baca, tulis, dan kontrol penuh. Sesuaikan sesuai kebutuhan.
       sudo chmod 777 /home/ftp

Langkah 3: Atur aturan security group

Setelah membangun layanan FTP, tambahkan aturan grup keamanan masuk berdasarkan mode FTP. Lihat Add a security group rule.

Sebagian besar klien berada di belakang LAN dengan alamat IP yang diterjemahkan. Dalam mode aktif, klien harus mengekspos alamat IP aslinya, atau koneksi FTP dapat gagal.

  • Mode aktif: Izinkan lalu lintas pada Port 21.

  • Mode pasif: Izinkan lalu lintas pada Port 21 dan port 40000–40100 (rentang pasv_min_port hingga pasv_max_port dalam /etc/vsftpd/vsftpd.conf). Lihat Set up an FTP site on Windows.

Langkah 4: Verifikasi layanan FTP

Anda dapat memverifikasi layanan FTP dengan klien FTP, browser, atau file explorer. Contoh ini menggunakan file explorer.

  1. Uji koneksi lokal.

    Uji koneksi dari mesin lokal.

    ftp ftpuser@localhost 

    Pesan Login successful menunjukkan koneksi berhasil.

    image

  2. Uji koneksi klien.

    Pada komputer klien, buka file explorer dan masukkan alamat FTP, seperti yang ditunjukkan pada gambar.

    image

    Masukkan username dan password FTP pada kotak dialog login. Setelah login, Anda dapat mengunggah dan mengunduh file.

Pemecahan Masalah

Masalah

Solusi

Timeout setelah 227 Entering Passive Mode

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

550 Permission denied

Atur 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 izin direktori adalah 755 atau 750.

Lampiran

File dan parameter konfigurasi vsftpd

File dalam direktori /etc/vsftpd:

  • /etc/vsftpd/vsftpd.conf: File konfigurasi inti vsftpd.

  • /etc/vsftpd/ftpusers: File daftar hitam. Pengguna dalam file ini tidak dapat mengakses server FTP.

  • /etc/vsftpd/user_list: File daftar putih. Pengguna dalam file ini dapat mengakses server FTP.

Parameter dalam file konfigurasi vsftpd.conf:

  • Parameter kontrol login:

    Parameter

    Deskripsi

    anonymous_enable=YES

    Menerima pengguna anonim.

    no_anon_password=YES

    Pengguna anonim dapat login tanpa kata sandi.

    anon_root=(none)

    Direktori home untuk pengguna anonim.

    local_enable=YES

    Menerima pengguna lokal.

    local_root=(none)

    Direktori home untuk pengguna lokal.

  • Parameter kontrol izin pengguna:

    Parameter

    Deskripsi

    write_enable=YES

    Mengizinkan unggah file (global).

    local_umask=022

    Izin file untuk unggahan pengguna lokal.

    file_open_mode=0666

    Izin file untuk unggahan. 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: izin edit dan hapus.

    chown_username=lightwiter

    Username untuk unggahan file anonim.