Cara Menginstal, Mengkonfigurasi, dan Mengamankan Server FTP di CentOS 7 - [Panduan Komprehensif]

Cara Menginstal, Mengkonfigurasi, dan Mengamankan Server FTP di CentOS 7 - [Panduan Komprehensif]

Ftp (Protokol transfer file) adalah alat standar tradisional dan banyak digunakan untuk mentransfer file antara server dan klien melalui jaringan, terutama di mana tidak ada otentikasi yang diperlukan (memungkinkan pengguna anonim untuk terhubung ke server). Kita harus memahami bahwa FTP tidak aman secara default, karena mentransmisikan kredensial pengguna dan data tanpa enkripsi.

Dalam panduan ini, kami akan menjelaskan langkah -langkah untuk menginstal, mengkonfigurasi, dan mengamankan server FTP (Vsftpd berdiri untuk "Daemon FTP yang sangat aman") di dalam Centos/RHEL 7 Dan Fedora distribusi.

Perhatikan bahwa semua perintah dalam panduan ini akan dijalankan sebagai akar, Jika Anda tidak mengoperasikan server dengan akar akun, gunakan perintah sudo untuk mendapatkan hak istimewa root.

Langkah 1: Menginstal server FTP

1. Menginstal vsftpd Server lurus ke depan, cukup jalankan perintah berikut di terminal.

# yum instal vsftpd 

2. Setelah instalasi selesai, layanan akan dinonaktifkan pada awalnya, jadi kita perlu memulainya secara manual untuk saat ini dan memungkinkannya untuk memulai secara otomatis dari boot sistem berikutnya juga:

# SystemCTL Mulai vsftpd # Systemctl Aktifkan vsftpd 

3. Selanjutnya, untuk memungkinkan akses ke layanan FTP dari sistem eksternal, kita harus membuka port 21, Di mana Daemon FTP mendengarkan sebagai berikut:

# firewall-cmd --zone = public --permanent --add-port = 21/tcp # firewall-cmd --zone = public --permanent --add-service = ftp # firewall-cmd --eload 

Langkah 2: Mengkonfigurasi Server FTP

4. Sekarang kami akan pindah untuk melakukan beberapa konfigurasi untuk mengatur dan mengamankan server FTP kami, mari kita mulai dengan membuat cadangan file konfigurasi asli /etc/vsftpd/vsftpd.conf:

# cp/etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.Orig 

Selanjutnya, buka file konfigurasi di atas dan atur opsi berikut dengan nilai -nilai yang sesuai ini:

anonymous_enable = tidak # nonaktifkan anonim login local_enable = ya # ijin login lokal write_enable = ya # aktifkan perintah ftp yang mengubah sistem file local_umask = 022 # nilai uask untuk pembuatan file untuk pengguna lokal dirmessage_enable = yes # enable dari pesan ketika pengguna pertama Enter First Enter direktori baru xferlog_enable = ya # file log akan disimpan detail unggahan dan unduhan connect_from_port_20 = ya # Gunakan port 20 (ftp-data) pada mesin server untuk koneksi gaya port xferlog_std_format = ya # tetap format file log standar = tidak # # mencegah vsftpd berjalan dalam mode mandiri listen_ipv6 = ya # vsftpd akan mendengarkan soket ipv6 alih -alih ipv4 satu pam_service_name = vsftpd # Nama layanan PAM vsftpd akan menggunakan UserList_enable = ya # enable vsftpd untuk memuat daftar pengguna UserNEn # Nyalakan pembungkus TCP 

5. Sekarang konfigurasikan FTP untuk mengizinkan/menolak akses FTP ke pengguna berdasarkan file daftar pengguna /etc/vsftpd.Daftar pengguna.

Secara default, pengguna terdaftar userlist_file =/etc/vsftpd.Daftar pengguna ditolak akses login userlist_deny Opsi diatur ke YA, jika userlist_enable = ya.

Namun, UserList_DENY = tidak mengubah pengaturan, artinya hanya pengguna yang terdaftar secara eksplisit userlist_file =/etc/vsftpd.Daftar pengguna akan diizinkan masuk.

userlist_enable = ya # vsftpd akan memuat daftar nama pengguna, dari nama file yang diberikan oleh userlist_file userlist_file =/etc/vsftpd.Daftar Pengguna # Menyimpan Nama Pengguna. UserList_DENY = tidak 

Bukan itu saja, saat pengguna masuk ke server FTP, mereka ditempatkan di penjara chroot, ini adalah direktori root lokal yang akan bertindak sebagai direktori home mereka untuk sesi FTP saja saja.

Selanjutnya, kita akan melihat dua skenario yang memungkinkan tentang cara chroot pengguna FTP ke direktori home (root lokal) untuk pengguna FTP, seperti yang dijelaskan di bawah ini.

6. Sekarang tambahkan dua opsi berikut ini untuk membatasi pengguna FTP ke direktori rumah mereka.

chroot_local_user = ya izin_writeable_chroot = ya 

chroot_local_user = ya berarti pengguna lokal akan ditempatkan di penjara chroot, direktori rumah mereka setelah login secara default.

Dan juga secara default, VSFTPD tidak mengizinkan Direktori Penjara CHROOT dapat ditulis karena alasan keamanan, namun, kami dapat menggunakan opsi tersebut izin_writable_chroot = ya untuk mengesampingkan pengaturan ini.

Simpan file dan tutup.

Mengamankan server FTP dengan selinux

7. Sekarang, mari atur Selinux Boolean di bawah ini untuk memungkinkan FTP membaca file di direktori home pengguna. Perhatikan bahwa ini awalnya dilakukan dengan menggunakan perintah:

# setSebool -p ftp_home_dir on 

Namun, ftp_home_dir Petunjuk telah dinonaktifkan secara default seperti yang dijelaskan dalam laporan bug ini: https: // bugzilla.topi merah.com/show_bug.CGI?ID = 1097775.

Sekarang kami akan menggunakan SANMANAGE Perintah untuk mengatur aturan selinux untuk mengizinkan FTP membaca/menulis direktori home pengguna.

# Sarganage Boolean -M ftpd_full_access --on 

Pada titik ini, kita harus memulai kembali VSFTPD untuk mempengaruhi semua perubahan yang kami buat sejauh ini:

# Systemctl Restart vsftpd 

Langkah 4: Menguji server FTP

8. Sekarang kami akan menguji server FTP dengan membuat pengguna FTP dengan perintah UserAdd.

# useradd -m -c “ravi saive, ceo” -s /bin /bash ravi # passwd ravi 

Setelah itu, kita harus menambahkan pengguna Ravi ke file /etc/vsftpd.Daftar pengguna Menggunakan perintah echo sebagai berikut:

# echo "ravi" | tee -a /etc /vsftpd.UserList # Cat /etc /vsftpd.Daftar pengguna 

9. Sekarang saatnya menguji apakah pengaturan kami di atas berfungsi dengan benar. Mari kita mulai dengan menguji login anonim, kita dapat melihat dari tangkapan layar di bawah bahwa login anonim tidak diizinkan:

# FTP 192.168.56.10 Terhubung ke 192.168.56.10 (192.168.56.10). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.10: root): anonim 530 izin ditolak. Gagal masuk. ftp> 
Uji login FTP anonim

10. Mari kita juga menguji apakah pengguna yang tidak terdaftar dalam file /etc/vsftpd.Daftar pengguna akan diberikan izin untuk login, yang tidak terjadi seperti pada bidikan layar di bawah ini:

# FTP 192.168.56.10 Terhubung ke 192.168.56.10 (192.168.56.10). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.10: root): Izin Aaronkilis 530 ditolak. Gagal masuk. ftp> 
Login pengguna FTP gagal

11. Sekarang lakukan pemeriksaan akhir jika pengguna yang terdaftar di file /etc/vsftpd.Daftar pengguna, sebenarnya ditempatkan di direktori rumahnya setelah login:

# FTP 192.168.56.10 Terhubung ke 192.168.56.10 (192.168.56.10). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.10: root): RAVI 331 Harap tentukan kata sandi. Kata sandi: 230 Login berhasil. Jenis sistem jarak jauh adalah unix. Menggunakan mode biner untuk mentransfer file. ftp> ls 

Login pengguna FTP berhasil [Peringatan: Menggunakan izin_writable_chroot = ya memiliki implikasi keamanan tertentu, terutama jika pengguna memiliki izin mengunggah, atau akses shell.

Hanya mengaktifkan opsi ini jika Anda benar -benar tahu apa yang Anda lakukan. Penting untuk dicatat bahwa implikasi keamanan ini dan spesifik vsftpd, mereka berlaku untuk semua daemon ftp yang menawarkan untuk menempatkan pengguna lokal di penjara chroot juga.

Oleh karena itu, kami akan melihat cara yang lebih aman untuk menetapkan direktori root lokal yang tidak dapat disusun yang berbeda di bagian selanjutnya.

Langkah 5: Mengkonfigurasi berbagai direktori rumah pengguna FTP

12. Buka file konfigurasi VSFTPD lagi dan mulailah dengan mengomentari opsi yang tidak aman di bawah ini:

#izin_writeable_chroot = ya 

Kemudian buat direktori root lokal alternatif untuk pengguna (Ravi, milik Anda mungkin berbeda) dan menghapus izin tulis ke semua pengguna ke direktori ini:

# mkdir/home/ravi/ftp # chown NOBOHNE: NOBO/HOME/RAVI/FTP # CHMOD A-W/HOME/RAVI/FTP 

13. Selanjutnya, buat direktori di bawah root lokal di mana pengguna akan menyimpan file -nya:

# mkdir/home/ravi/ftp/file # chown ravi: ravi/home/ravi/ftp/file # chmod 0700/home/ravi/ftp/file/ 

Kemudian tambahkan/ubah opsi berikut dalam file konfigurasi VSFTPD dengan nilai -nilai ini:

user_sub_token = $ user # Sisipkan nama pengguna di direktori root lokal local_root =/home/$ user/ftp # mendefinisikan setiap pengguna root direktori lokal 

Simpan file dan tutup. Sekali lagi, mari kita mulai ulang layanan dengan pengaturan baru:

# Systemctl Restart vsftpd 

14. Sekarang lakukan tes akhir lagi dan lihat bahwa direktori root lokal pengguna adalah direktori FTP yang kami buat di direktori rumahnya.

# FTP 192.168.56.10 Terhubung ke 192.168.56.10 (192.168.56.10). 220 Selamat Datang di Tecmint.Layanan Com FTP. Nama (192.168.56.10: root): RAVI 331 Harap tentukan kata sandi. Kata sandi: 230 Login berhasil. Jenis sistem jarak jauh adalah unix. Menggunakan mode biner untuk mentransfer file. ftp> ls 
FTP User Home Directory Login Sukses

Itu dia! Dalam artikel ini, kami menjelaskan cara menginstal, mengkonfigurasi serta mengamankan server FTP di CentOS 7, gunakan bagian komentar di bawah ini untuk menulis kembali kepada kami tentang panduan ini/berbagi informasi yang berguna tentang topik ini.

Disarankan Baca: Instal ProfTPD Server di RHEL/CENTOS 7

Pada artikel berikutnya, kami juga akan menunjukkan kepada Anda cara mengamankan server FTP menggunakan koneksi SSL/TLS di CentOS 7, sampai saat itu, tetap terhubung ke Tecmint.