FTP (File Transfer Protocol) merupakan sebuah protocol yang memberikan kita akses untuk bertukar data baik itu mengirim maupun menerima. Protocol ini biasanya berjalan pada port 21 dan sering digunakan untuk melakukan transaksi data ke server karena prosesnya yang cukup mudah dan nyaman.
Pada artikel ini kita akan membahas bagaimana cara menginstall ftp server pada Redhat 8 dan panduan ini bisa digunakan juga untuk CentOS 8. Berikut kita bahas.
Contents
Installasi FTP Server (vsftpd)
Redhat sendiri menggunakan paket vsftpd untuk layanan ftpnya, tidak seperti yang lain yang menggunakan proftpd. Pertama kita install paket vsftpd.
1 |
sudo yum install vsftpd -y |
Selanjutnya aktifkan service dan jalankan service vsftpd
1 2 |
sudo systemctl enable vsftpd sudo systemctl start vsftpd |
Setelah berjalan, kita konfigurasi firewall agar dapat mengijinkan service ftp berjalan pada server
1 2 |
sudo firewall-cmd --add-service=ftp --permanent sudo firewall-cmd --reload |
Pengujian FTP
Sebagai pengujian, kita bisa gunakan aplikasi file transfer seperti filezilla maupun winscp. Kalian bisa unduh langsung dari website resminya lalu install di komputer client kalian.
Disini saya menggunakan aplikasi Filezilla, buka aplikasinya lalu isikan informasi dari host, user dan password dari server Redhat yang kalian miliki lalu klik Quickconnect.

Setelah berhasil login kalian akan langsung diarahkan ke document root /home/user. Karena secara default lokasi tersebut menjadi location dari vsftpd ketika pertama kali login.
Mengubah port FTP
Secara default FTP berjalan pada port 21, pada beberapa kondisi kita perlu merubah port tersebut dengan alasan keamanan. Apabila kalian ingin mengubahnya maka kita perlu menambahkan bagian tersebut didalam konfigurasi vsftpd. Pertama buka file config.
1 |
sudo nano /etc/vsftpd/vsftpd.conf |
Setelah itu kita modifikasi dan tambahakn script seperti dibawah ini,
1 2 3 4 5 |
# Berikan tanda pagar pada script dibawah ini, agar tidak dapat connect dengan port 20 connect_from_port_20=YES ------> #connect_from_port_20=YES # Tambahkan listen_port dibagian baris paling bawah untuk menandakan port yang digunakan listen_port=335 |
Jangan lupa untuk menambahkan port 335 kedalam filewall agar terbaca ketika di akses, karena port yang tidak didaftarkan tidak dapat diakses dari luar oleh system.
1 2 |
sudo firewall-cmd --add-port=335/tcp --permanent sudo firewall-cmd --reload |
Selanjutnya kita set SELinux untuk ftp agar dapat full access dengan perintah berikut.
1 2 |
sudo setsebool -P ftpd_full_access true sudo setenforce 0 |
Setelah itu restart service dari vsftpd dan coba login kembali menggunakan port baru yang sudah diubah.
1 |
sudo systemctl start vsftpd |
Mengubah direktory default FTP
Secara default, direktori yang akan muncul pada saat kita login adalah direktori home dari user yang kita gunakan login. Disini kita dapat mengubah directory tersebut menjadi mengarah ke tempat lain. Sebagai contoh kita akan pindahkan ke /var/www/html/
1 |
sudo nano /etc/vsftpd/vsftpd.conf |
Untuk melakukan konfigurasi tersebut, tambahkan script dibawah ini di bagian paling bawah.
1 2 3 4 5 6 7 8 9 |
# Optional apabila mengubah port ftp listen_port=335 # Arahkan ke direktori yang kita inginkan chroot_local_user=YES pam_service_name=vsftpd local_root=/var/www/html allow_writeable_chroot=YES pasv_enable=NO |
Simpan konfigurasi lalu restart service ftp
1 |
sudo systemctl start vsftpd |
Jangan lupa untuk memberikan akses kepada direktori tersebut dengan username kita dan group apache agar dapat kita edit pada saat mengakses layanan ftp.
1 |
sudo chown warrior.apache -R /var/www/html/ |
Userlist FTP
Pada bagian ini akan menjelaskan konfigurasi userlist, nantinya userlist ini akan menyeleksi siapa saja yang dapat melakukan akses ftp. Ini bisa meningkatkan kemanan dimana user lain yang tidak terdaftar tidak dapat menggunakan layanan ftp ini.
Pertama kita buat file userlist dengan perintah berikut.
1 |
sudo touch /etc/vsftpd.userlist |
Selanjutnya kita edit file userlist tersebut.
1 |
sudo nano /etc/vsftpd.userlist |
Masukan list username yang akan kita izinkan untuk mengakses layanan ftp, disini saya memasukan satu user bernama warrior.
1 |
warrior |
Simpan file userlist, kita berlanjut ke konfigurasi vsftpd.conf. Buka file tersebut.
1 |
sudo nano /etc/vsftpd/vsftpd.conf |
Tambahkan script baru di bagian paling bawah untuk mengaktifkan fitur userlist.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# Optional apabila mengubah port ftp listen_port=335 # Optional jika ingin direktori default diubah chroot_local_user=YES pam_service_name=vsftpd local_root=/var/www/html allow_writeable_chroot=YES pasv_enable=NO # Konfigurasi userlist ftp userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO |
Setelah selesai, simpan konfigurasi dan restart service ftp.
1 |
sudo systemctl start vsftpd |
Lakukan ujicoba userlist dengan melakukan login ke Filezilla dengan menggunakan user lain selain yang sudah didaftarkan. Apakah berhasil atau tidak.
Troubleshooting
Apabila service vsftpd terkendala pada saat melakukan restart dengan kondisi konfigurasi tidak ada yang berubah, maka kamu perlu menyesuaikan konfigurasi SELinux. Gunakan perintah dibawah ini.
1 |
sudo nano /etc/selinux/config |
Setelah itu ubah script seperti penjelasan dibawah ini.
1 2 3 4 5 |
# Konfigurasi Sebelumnya SELINUX=enforcing #Ubah Konfigurasi menjadi SELINUX=permissive |
Simpan konfigurasi, perubahan ini baru akan terjadi pada saat server melakukan restart. Maka selanjutnya kamu bisa melakukan restart pada server. Apabila server belum perlu di restart maka kamu bisa jalanakan perintah SELinux permissive sementara dengan perintah dibawah.
1 |
sudo setenforce 0 |
Penutup
Sekian panduan yang bisa saya jelaskan mengenai installasi dan konfigurasi FTP Server yang berjalan di RedHat 8. Cukup banyak konfigurasi yang dapat dilakukan pada layanan ftp ini yang dapat memberikan pleksibilitas dan keamanan kepada kita sebagai admin yang menggunakannya.
Perlu diperhatikan bahwa OS RedHat cukup terkenal dengan tingkat keamanannya sehingga setiap konfigurasi layanan pasti dibarengi dengan konfigurasi firewall bahkan sampai ke SELinux. Selamat mencoba dan semoga berhasil !
Referensi
- https://www.tutupkurung.com/2019/07/cara-install-ftp-server-vsftpd-pada-redhat-8.html
- https://www.centlinux.com/2021/03/chroot-ftp-users-to-document-root-directory.html