All Products
Search
Document Center

Elastic Compute Service:Menyiapkan server FTP pada instans Linux

Last Updated:Aug 13, 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. Buat instans menggunakan 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 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.

Membangun layanan vsftpd

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 vsftpd dan aktifkan saat boot.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd 
  3. Verifikasi bahwa layanan sedang berjalan.

    netstat -antup | grep ftp

    Output berikut mengonfirmasi bahwa vsftpd sedang berjalan.

    [root@xxx ~]# systemctl start vsftpd
    [root@xxx ~]# netstat -antup | grep ftp
    tcp6       0      0 :::21                   :::*                    LISTEN      16387/vsftpd

    Secara default, vsftpd mengizinkan akses anonymous read-only.

Langkah 2: Konfigurasi vsftpd

  1. Buat pengguna FTP. 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 izin.

    sudo mkdir -p /data/ftp      # Buat direktori penyimpanan khusus
    sudo chown ftpuser:ftpuser /data/ftp
    sudo chmod 750 /data/ftp    # Izin harus 755 atau 750
  3. Edit file konfigurasi vsftpd.

    Catatan

    Gunakan mode pasif. Sebagian besar klien berada di belakang firewall atau NAT dan tidak dapat mengekspos alamat IP asli.

    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 pendengar IPv4
      anonymous_enable=NO          # Nonaktifkan akses anonymous
      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.

      pasv_enable=YES              # Aktifkan mode pasif
      pasv_min_port=40000          # Batas bawah range port pasif
      pasv_max_port=40100          # Batas atas range 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

Tambahkan aturan grup keamanan masuk untuk mode FTP yang Anda konfigurasi. Tambahkan aturan security group.

Pada mode aktif, klien di belakang NAT harus mengekspos alamat IP asli, yang dapat menyebabkan kegagalan koneksi.

  • Mode aktif: Izinkan traffic pada Port 21.

  • Mode pasif: Izinkan traffic pada Port 21 dan Port 40000–40100 (pasv_min_port hingga pasv_max_port dalam /etc/vsftpd/vsftpd.conf). Mengonfigurasi port mode pasif FTP.

Langkah 4: Verifikasi layanan FTP

Verifikasi layanan FTP menggunakan klien FTP, browser, atau file explorer. Contoh ini menggunakan file explorer.

  1. Uji koneksi lokal.

    Jalankan perintah berikut di server.

    ftp ftpuser@localhost 

    Pesan Login successful mengonfirmasi koneksi berhasil.

    # ftp ftpuser@localhost
    Connected to localhost.
    220 (vsFTPd 3.0.5)
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
  2. Uji koneksi klien.

    Pada mesin klien Anda, buka file explorer dan masukkan alamat FTP di bilah alamat.

    Format alamatnya adalah ftp://<FTP_server_public_IP_address>:21. Setelah koneksi berhasil, file explorer akan menampilkan file dalam direktori server FTP.

    Masukkan username dan password FTP untuk login. Anda kemudian dapat mengunggah dan mengunduh file.

Ubuntu dan Debian

Langkah 1: Instal vsftpd

  1. Perbarui sistem dan instal vsftpd.

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

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd

Langkah 2: Konfigurasi vsftpd

  1. Buat pengguna FTP khusus.

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

    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 anonymous
    local_enable=YES             # Izinkan login pengguna lokal
    write_enable=YES             # Aktifkan izin menulis
    chroot_local_user=YES        # Kunci pengguna di direktori home mereka

    Tambahkan hal berikut:

    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=<your_public_ip_address>  # Ganti dengan Alamat IP publik Anda
    pasv_min_port=40000
    pasv_max_port=40100</your_public_ip_address>
  5. Restart vsftpd.

    sudo systemctl restart vsftpd
  6. vsftpd membuat pengguna ftp default tanpa password. Atur password untuk pengguna ini.

     sudo passwd ftp

    Atur password yang 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 FTP dan atur izin.

    1. Buat folder FTP.

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

      Izin ini memberikan akses penuh (777). Sesuaikan sesuai kebutuhan.
       sudo chmod 777 /home/ftp

Langkah 3: Atur aturan security group

Tambahkan aturan grup keamanan masuk untuk mode FTP yang Anda konfigurasi. Tambahkan aturan security group.

Pada mode aktif, klien di belakang NAT harus mengekspos alamat IP asli, yang dapat menyebabkan kegagalan koneksi.

  • Mode aktif: Izinkan traffic pada Port 21.

  • Mode pasif: Izinkan traffic pada Port 21 dan Port 40000–40100 (pasv_min_port hingga pasv_max_port dalam /etc/vsftpd/vsftpd.conf). Menyiapkan situs FTP di Windows.

Langkah 4: Verifikasi layanan FTP

Verifikasi layanan FTP menggunakan klien FTP, browser, atau file explorer. Contoh ini menggunakan file explorer.

  1. Uji koneksi lokal.

    Jalankan perintah berikut di server.

    ftp ftpuser@localhost 

    Pesan Login successful mengonfirmasi koneksi berhasil.

    # ftp ftpuser@localhost
    Connected to localhost.
    220 (vsFTPd 3.0.5)
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
  2. Uji koneksi klien.

    Pada mesin klien Anda, buka file explorer dan masukkan alamat FTP di bilah alamat.

    Format alamatnya adalah ftp://<FTP_server_public_IP_address>:21. Setelah koneksi berhasil, file explorer akan menampilkan file dalam direktori server FTP.

    Masukkan username dan password FTP untuk login. Anda kemudian dapat mengunggah dan mengunduh file.

Pemecahan Masalah

Masalah

Solusi

Timeout setelah 227 Entering Passive Mode

Periksa Alamat IP publik dan aturan firewall di 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 konfigurasi vsftpd dan parameter

File dalam direktori /etc/vsftpd:

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

  • /etc/vsftpd/ftpusers: Daftar blokir. Pengguna yang tercantum di sini ditolak akses FTP-nya.

  • /etc/vsftpd/user_list: Daftar izin. Pengguna yang tercantum di sini diizinkan akses FTP.

Parameter dalam file konfigurasi vsftpd.conf:

  • Parameter kontrol login:

    Parameter

    Deskripsi

    anonymous_enable=YES

    Menerima pengguna anonymous.

    no_anon_password=YES

    Pengguna anonymous dapat login tanpa password.

    anon_root=(none)

    Direktori home untuk pengguna anonymous.

    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

    Mengizinkan unggah file oleh pengguna anonymous.

    anon_mkdir_write_enable=NO

    Mengizinkan pembuatan direktori oleh pengguna anonymous.

    anon_other_write_enable=NO

    Mengizinkan operasi edit dan hapus oleh pengguna anonymous.

    chown_username=lightwiter

    Pemilik yang ditetapkan untuk file yang diunggah oleh pengguna anonymous.