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
-
Perbarui sistem dan instal
vsftpd.sudo yum update -y sudo yum install vsftpd -y -
Jalankan vsftpd dan aktifkan saat boot.
sudo systemctl start vsftpd sudo systemctl enable vsftpd -
Verifikasi bahwa layanan sedang berjalan.
netstat -antup | grep ftpOutput berikut mengonfirmasi bahwa vsftpd sedang berjalan.
[root@xxx ~]# systemctl start vsftpd [root@xxx ~]# netstat -antup | grep ftp tcp6 0 0 :::21 :::* LISTEN 16387/vsftpdSecara default, vsftpd mengizinkan akses anonymous read-only.
Langkah 2: Konfigurasi vsftpd
-
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 -
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 -
Edit file konfigurasi
vsftpd.CatatanGunakan mode pasif. Sebagian besar klien berada di belakang firewall atau NAT dan tidak dapat mengekspos alamat IP asli.
-
Buat cadangan file konfigurasi
vsftpd.sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak -
Edit file konfigurasi.
sudo vim /etc/vsftpd/vsftpd.conf -
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 -
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
-
-
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.
-
Uji koneksi lokal.
Jalankan perintah berikut di server.
ftp ftpuser@localhostPesan
Login successfulmengonfirmasi 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. -
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
-
Perbarui sistem dan instal
vsftpd.sudo apt update && sudo apt upgrade -y sudo apt install vsftpd -y -
Jalankan
vsftpddan aktifkan saat boot.sudo systemctl start vsftpd sudo systemctl enable vsftpd
Langkah 2: Konfigurasi vsftpd
-
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) -
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 -
Buat cadangan file konfigurasi asli.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak -
Edit file konfigurasi.
sudo nano /etc/vsftpd.confTerapkan 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 merekaTambahkan 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> -
Restart vsftpd.
sudo systemctl restart vsftpd -
vsftpd membuat pengguna ftp default tanpa password. Atur password untuk pengguna ini.
sudo passwd ftpAtur password yang kuat dan lewati semua prompt lainnya.
-
Tambahkan pengguna ke daftar izin pengguna FTP.
echo "ftp" | sudo tee -a /etc/vsftpd.userlist -
Buat direktori FTP dan atur izin.
-
Buat folder FTP.
sudo mkdir /home/ftp -
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.
-
Uji koneksi lokal.
Jalankan perintah berikut di server.
ftp ftpuser@localhostPesan
Login successfulmengonfirmasi 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. -
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 |
Periksa Alamat IP publik dan aturan firewall di klien maupun server. |
|
|
Atur 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 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.