Menyiapkan Server FTP (File Transfer Protocol) di PC Linux Anda akan memungkinkan Anda untuk mentransfer file antara sistem Anda dan mesin jarak jauh. Kami akan menunjukkan cara mengatur server FTP di CentOS.
Linux sudah memiliki banyak server FTP sumber terbuka yang dapat Anda gunakan untuk pekerjaan itu. Ini termasuk server populer seperti PureFTPd, ProFTPD, serta vsftpd.
Anda diperbolehkan menggunakan salah satu server FTP sesuka Anda. Namun, dalam tutorial ini, kita akan menginstal dan menggunakan vsftpd, kependekan dari Very Secure FTP Daemon. Ini adalah server FTP yang cepat, stabil, dan aman yang akan membantu Anda mentransfer file ke dan dari sistem jarak jauh dalam sekejap.
Menyiapkan Server FTP di CentOS
Jadi tanpa basa-basi lagi, mari kita mulai:
Menginstal vsftpd
Pertama, kita perlu menginstal vsftpd di CentOS. Untuk melakukan ini, masukkan perintah berikut di terminal:
$ sudo dnf install vsftpd
Dengan vsftpd terinstal di sistem CentOS Anda, Anda harus mengonfigurasinya agar mulai dan boot secara otomatis. Ini dapat dilakukan dengan menggunakan perintah berikut:
$ sudo systemctl aktifkan vsftpd --sekarang
Setelah selesai, verifikasi status layanan vsftpd dengan memasukkan perintah ini:
$ sudo systemctl status vsftpd
Layar keluaran yang mirip dengan yang di bawah ini akan muncul. Anda akan melihat bahwa vsftpd tidak "Aktif" di sistem CentOS Anda.
Pengaturan vsftpd
Dengan vsftpd aktif dan berjalan di sistem Anda, Anda perlu mengonfigurasi pengaturan server. Untuk melakukannya, Anda perlu mengakses /etc/vsftpd/vsftpd.file konfigurasi conf. Ini dapat dilakukan dengan membuka file konfigurasi di editor nano dengan memasukkan perintah berikut di terminal:
$ sudo nano /etc/vsftpd/vsftpd.konf
Dengan file yang sekarang dibuka di editor, ada beberapa perubahan yang perlu Anda lakukan untuk mengatur vsftpd di sistem Anda. Mari kita bahas satu per satu.
1. Konfigurasikan Akses FTP
Pertama, mari konfigurasi server FTP untuk mengizinkan akses hanya ke pengguna lokal. Untuk melakukannya, Anda perlu menemukan arahan anonymous_enable dan local_enable dalam file dan mengeditnya seperti yang ditunjukkan pada gambar di bawah:
Seperti yang Anda lihat, Anda perlu mengatur anonymous_enable=NO dan local_enable=YES.
2. Aktifkan Unggahan
Selanjutnya, Anda perlu mengonfigurasi server FTP untuk memungkinkan mengunggah dan menghapus file.
Untuk melakukan ini, Anda perlu menemukan direktif write_enable dan mengubahnya menjadi YA, seperti yang ditunjukkan pada gambar.
3. Batasi Login Pengguna
Setelah selesai, Anda akan ingin membatasi jumlah total login pengguna i.e., Anda hanya ingin pengguna tertentu masuk ke server FTP Anda. Untuk melakukan ini, pertama, cari baris ini di this .file conf - userlist_enable=YA. Setelah itu, tambahkan dua baris ini ke dalam file:
userlist_file=/etc/vsftpd/user_list userlist_deny=TIDAK
Gunakan gambar di bawah ini sebagai referensi:
Anda juga dapat memilih untuk mengaktifkan opsi ini. Jika ya, Anda harus secara eksplisit menentukan pengguna mana yang ingin Anda beri akses ke server FTP. Untuk mengizinkan pengguna, Anda perlu menambahkan nama pengguna mereka ke file /etc/vsftpd/user_list dengan hanya satu nama pengguna di setiap baris.
4. Mengatur Koneksi FTP Pasif
Anda mungkin juga ingin mengatur koneksi FTP pasif.
Karena itu, di sini kami akan menunjukkan kepada Anda bagaimana Anda dapat menentukan rentang minimum dan maksimum port dengan menambahkan beberapa baris di dalam .file conf.
Yang perlu Anda lakukan adalah menggulir ke bawah ke akhir file dan menambahkan dua baris ini, seperti yang ditunjukkan pada gambar.
pasv_min_port=30000 pasv_max_port=31000
Kami juga akan membahas bagaimana Anda dapat membuka jangkauan di firewall Anda nanti dalam tutorial ini.
5. Konfigurasikan Transmisi Aman menggunakan SSL/TLS
Akhirnya, muncul pertanyaan untuk mengamankan koneksi FTP dengan menggunakan SSL/TLS. Untuk melakukan ini, Anda harus memiliki sertifikat SSL dan mengkonfigurasi server FTP Anda untuk menggunakannya.
Namun, demi tutorial ini, kami akan membuat sertifikat SSL yang ditandatangani sendiri menggunakan alat OpenSSL dan kemudian menggunakannya untuk mengenkripsi transmisi FTP kami.
Jadi, hal pertama yang pertama, Anda harus menggunakan OpenSSL untuk membuat sertifikat SSL baru. Anda dapat melakukan ini dengan memasukkan perintah berikut di terminal:
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Menjalankan perintah di atas akan menghasilkan kunci pribadi 2048-bit serta sertifikat yang ditandatangani sendiri. Keduanya berlaku selama sepuluh tahun dan disimpan dalam file yang sama.
Setelah membuat sertifikat SSL baru Anda, buka file konfigurasi vsftpd menggunakan perintah sebelumnya:
sudo nano /etc/vsftpd/vsftpd.konf
Gulir ke bawah dan tambahkan baris berikut seperti yang ditunjukkan pada gambar:
rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YA
Dan itu saja. Anda telah berhasil mengonfigurasi sertifikat SSL untuk server FTP Anda.
6. Menyelesaikan
Setelah selesai, periksa kembali file konfigurasi vsftpd untuk melihat apakah semua pengaturan berikut sudah sesuai:
anonim_enable=TIDAK local_enable=YA write_enable=YA local_umask=022 dirmessage_enable=YA xferlog_enable=YA connect_from_port_20=YA xferlog_std_format=YA mendengarkan=TIDAK mendengarkan_ipv6=YA pam_service_name=vsftpd userlist_enable_listpds_daftar_enable_pengguna pasv_max_port=31000 rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.pem ssl_enable=YA
Setelah Anda memastikan bahwa semua perubahan di atas telah dilakukan pada file, Anda harus menyimpannya. Setelah disimpan, restart layanan vsftpd menggunakan perintah berikut:
$ sudo systemctl restart vsftpd
Konfigurasikan Firewall
Jika Anda memiliki firewall yang diaktifkan bersama dengan server FTP, maka Anda perlu mengonfigurasi firewall agar memungkinkan transmisi FTP.
Untuk melakukan ini, Anda harus memasukkan perintah berikut ke terminal:
$ sudo firewall-cmd --permanent --add-port=20-21/tcp
Perintah di atas membuka port 21 - yang merupakan port perintah FTP, dan port 20 - yang merupakan port data FTP.
Anda juga harus memasukkan perintah ini:
$ sudo firewall-cmd --permanent --add-port=30000-31000/tcp
Perintah ini membuka kisaran port pasif 30000-31000, yang telah kami konfigurasikan sebelumnya.
Setelah selesai, Anda perlu memuat ulang firewall menggunakan perintah berikut:
$ firewall-cmd --reload
Cara Membuat Pengguna FTP Baru
Sekarang setelah Anda mengatur server vsftpd Anda di sistem CentOS Anda, sekarang saatnya untuk membuat pengguna FTP baru dan mengujinya.
Pertama, mari kita buat pengguna FTP baru (newftpuser) dengan menggunakan perintah berikut:
$ sudo adduser newftpuser
Selanjutnya, Anda perlu mengatur kata sandi untuk pengguna baru. Untuk melakukan ini, gunakan perintah ini:
$ sudo passwd newftpuser
Pastikan kata sandinya kuat dan lebih dari delapan karakter.
Setelah membuat pengguna baru, Anda harus menambahkannya ke daftar pengguna FTP. Ini dapat dilakukan dengan memasukkan perintah berikut di terminal:
$ echo "newftpuser" | sudo tee -a /etc/vsftpd/user_list
Terakhir, Anda perlu membuat pohon direktori FTP tempat Anda akan mengatur semua izin yang benar. Untuk melakukan ini, Anda harus memasukkan serangkaian perintah berikut di terminal:
$ sudo mkdir -p /home/newftpuser/ftp/upload $ sudo chmod 550 /home/newftpuser/ftp $ sudo chmod 750 /home/newftpuser/ftp/upload $ sudo chown -R newftpuser: /home/newftpuser/ftp
Sekarang, server FTP Anda berfungsi penuh dan siap digunakan. Sekarang Anda dapat menghubungkannya menggunakan klien FTP apa pun seperti FileZilla. Pastikan saja bahwa klien FTP juga dapat dikonfigurasi untuk menggunakan enkripsi TLS seperti yang digunakan untuk mengenkripsi transmisi FTP.
Nonaktifkan Akses Shell
Satu hal yang harus Anda ingat saat membuat pengguna FTP baru adalah, kecuali jika ditentukan secara eksplisit, pengguna akan memiliki akses SSH ke server.
Jika Anda ingin menonaktifkan akses shell dari pengguna, Anda perlu membuat shell baru yang akan mencetak pesan yang memberi tahu pengguna bahwa - “Akun ini terbatas hanya untuk akses FTP.”
Untuk melakukan ini, Anda harus memasukkan perintah berikut di terminal:
$ echo -e '#!/bin/sh\necho "Akun ini terbatas hanya untuk akses FTP."' | sudo tee -a /bin/ftponly $ sudo chmod a+x /bin/ftponly
Perintah di atas akan membuat shell /bin/ftponly dan menjalankannya.
Selanjutnya, Anda perlu menambahkan shell baru ke dalam daftar shell yang valid yang terletak di dalam /etc/shells mengajukan. Ini dilakukan dengan menggunakan perintah berikut:
$ echo "/bin/ftponly" | sudo tee -a /etc/shells
Dan sebagai langkah terakhir, yang perlu Anda lakukan hanyalah mengubah shell pengguna menjadi /bin/ftponly menggunakan perintah ini:
$ sudo usermod newftpuser -s /bin/ftponly
Juga, untuk pengguna FTP di masa mendatang, Anda dapat menggunakan perintah yang sama untuk mengubah shell mereka sehingga mereka hanya dapat memiliki akses FTP.