GNU/Linux >> Belajar Linux >  >> Linux

Keamanan Linux:Lindungi sistem Anda dengan fail2ban

Keamanan, bagi administrator sistem, adalah perjuangan yang berkelanjutan karena Anda harus cukup mengamankan sistem Anda untuk melindunginya dari serangan yang tidak diinginkan tetapi tidak terlalu mengganggu produktivitas pengguna. Ini adalah keseimbangan yang sulit untuk dipertahankan. Selalu ada keluhan tentang keamanan "terlalu banyak", tetapi ketika suatu sistem disusupi, keluhan berkisar dari, "Keamanan tidak cukup" hingga "Mengapa Anda tidak menggunakan kontrol keamanan yang lebih baik?" Perjuangan itu nyata. Ada kontrol yang dapat Anda terapkan yang efektif melawan serangan penyusup namun cukup tersembunyi untuk memungkinkan pengguna beroperasi dengan cara yang umumnya tidak terkekang. Fail2ban adalah jawaban untuk melindungi layanan dari kekerasan dan serangan otomatis lainnya.

Catatan:Fail2ban hanya dapat digunakan untuk melindungi layanan yang memerlukan otentikasi nama pengguna/kata sandi. Misalnya, Anda tidak dapat melindungi ping dengan fail2ban.

Pada artikel ini, saya mendemonstrasikan cara melindungi daemon SSH (SSHD) dari serangan brute force. Anda dapat mengatur filter, sebagai fail2ban memanggil mereka, untuk melindungi hampir semua layanan mendengarkan di sistem Anda.

Pemasangan dan penyiapan awal

Untungnya, ada paket siap-instal untuk fail2ban yang mencakup semua dependensi, jika ada, untuk sistem Anda.

$ sudo dnf -y install fail2ban

Aktifkan dan mulai fail2ban .

$ sudo systemctl enable fail2ban

$ sudo systemctl start fail2ban

Kecuali jika Anda memiliki semacam masalah sintaks di fail2ban Anda konfigurasi, Anda tidak akan melihat pesan keluaran standar.

Sekarang untuk mengkonfigurasi beberapa hal dasar di fail2ban untuk melindungi sistem tanpa mengganggu dirinya sendiri. Salin /etc/fail2ban/jail.conf file ke /etc/fail2ban/jail.local . jail.local file adalah file konfigurasi yang menarik bagi kami.

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Buka /etc/fail2van/jail.local di editor favorit Anda dan buat perubahan berikut atau periksa untuk memastikan beberapa parameter ini disetel. Cari pengaturan ignoreip dan tambahkan semua alamat IP ke baris ini yang harus memiliki akses tanpa kemungkinan penguncian. Secara default, Anda harus menambahkan alamat loopback, dan semua alamat IP lokal ke sistem yang dilindungi.

ignoreip = 127.0.0.1/8 192.168.1.10 192.168.1.20

Anda juga dapat menambahkan seluruh jaringan alamat IP, tetapi ini menghilangkan banyak perlindungan yang ingin Anda gunakan fail2ban untuk. Tetap sederhana dan lokal untuk saat ini. Simpan jail.local file dan mulai ulang fail2ban layanan.

$ sudo systemctl restart fail2ban

Anda harus memulai ulang fail2ban setiap kali Anda membuat perubahan konfigurasi.

Menyiapkan layanan yang difilter

Pemasangan baru fail2ban tidak benar-benar berbuat banyak untuk Anda. Anda harus menyiapkan apa yang disebut filter untuk layanan apa pun yang ingin Anda lindungi. Hampir setiap sistem Linux harus dapat diakses oleh SSH. Ada beberapa keadaan di mana Anda pasti akan menghentikan dan menonaktifkan SSHD untuk mengamankan sistem Anda dengan lebih baik, tetapi saya berasumsi bahwa setiap sistem Linux mengizinkan koneksi SSH.

Kata sandi, seperti yang diketahui semua orang, bukanlah solusi keamanan yang baik. Namun, itu sering menjadi standar yang kita jalani. Jadi, jika akses pengguna atau administratif terbatas pada SSH, maka Anda harus mengambil langkah-langkah untuk melindunginya. Menggunakan fail2ban untuk "menonton" SSHD untuk upaya akses yang gagal dengan pelarangan berikutnya adalah awal yang baik.

Catatan:Sebelum menerapkan kontrol keamanan apa pun yang mungkin menghalangi akses pengguna ke sistem, beri tahu pengguna bahwa kontrol baru ini mungkin mengunci mereka dari sistem selama sepuluh menit (atau berapa lama pun Anda memutuskan) jika upaya login mereka yang gagal melebihi pengaturan ambang batas Anda .

Untuk menyiapkan layanan yang difilter, Anda harus membuat file "jail" yang sesuai di bawah /etc/fail2ban/jail.d direktori. Untuk SSHD, buat file baru bernama sshd.local dan masukkan instruksi pemfilteran layanan ke dalamnya.

[sshd]
enabled = true
port = ssh
action = iptables-multiport
logpath = /var/log/secure
maxretry = 3
bantime = 600

Buat [sshd] menuju dan masukkan pengaturan yang Anda lihat di atas sebagai tempat awal. Sebagian besar pengaturan cukup jelas. Untuk dua yang mungkin tidak jelas secara intuitif, pengaturan "tindakan" menjelaskan tindakan yang Anda inginkan fail2ban mengambil tindakan jika terjadi pelanggaran. Bagi kami, fail2ban menggunakan iptables untuk mencekal alamat IP dari sistem yang melanggar selama "bantime" selama 600 detik (10 menit).

Anda tentu saja dapat mengubah pengaturan ini untuk memenuhi kebutuhan Anda. Sepuluh menit tampaknya cukup lama untuk menyebabkan bot atau skrip "beralih" ke host yang kurang aman. Namun, sepuluh menit bukanlah waktu yang lama untuk mengasingkan pengguna yang salah mengetik sandi lebih dari tiga kali.

Setelah Anda puas dengan pengaturannya, mulai ulang fail2ban layanan.

Seperti apa larangan itu

Pada sistem yang dilindungi (192.168.1.83), tail /var/log/fail2ban.log untuk melihat tindakan larangan saat ini.

2020-05-15 09:12:06,722 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:06
2020-05-15 09:12:07,018 fail2ban.filter         [25417]: INFO    [sshd] Found 192.168.1.69 - 2020-05-15 09:12:07
2020-05-15 09:12:07,286 fail2ban.actions        [25417]: NOTICE  [sshd] Ban 192.168.1.69
2020-05-15 09:22:08,931 fail2ban.actions        [25417]: NOTICE  [sshd] Unban 192.168.1.69

Anda dapat melihat bahwa alamat IP 192.168.1.69 dicekal pada pukul 09:12 dan diblokir sepuluh menit kemudian pada pukul 09:22.

Pada sistem jarak jauh, 192.168.1.69, tindakan larangan terlihat seperti berikut:

$ ssh 192.168.1.83

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied, please try again.

[email protected]'s password: 

Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

$ ssh 192.168.1.83

ssh: connect to host 192.168.1.83 port 22: Connection refused

Anda dapat melihat bahwa saya salah memasukkan kata sandi tiga kali sebelum dilarang. Pengguna yang diblokir, kecuali diinformasikan secara eksplisit, tidak akan tahu mengapa mereka tidak dapat lagi mencapai sistem target. fail2ban filter melakukan tindakan larangan diam. Itu tidak memberikan penjelasan kepada pengguna jarak jauh, juga tidak memberi tahu pengguna saat larangan dicabut.

Membatalkan pemblokiran sistem

Pasti akan terjadi bahwa suatu sistem akan dilarang yang perlu segera dibatalkan larangannya. Dengan kata lain, Anda tidak bisa atau tidak ingin menunggu masa larangan berakhir. Perintah berikut akan segera membatalkan pemblokiran sistem.

$ sudo fail2ban-client set sshd unbanip 192.168.1.69

Anda tidak perlu memulai ulang daemon fail2ban setelah mengeluarkan perintah ini.

Menutup

Itu pada dasarnya bagaimana fail2ban bekerja. Anda mengatur filter, dan ketika kondisi terpenuhi, maka sistem jarak jauh dilarang. Anda dapat memblokir untuk jangka waktu yang lebih lama, dan Anda dapat mengatur beberapa filter untuk melindungi sistem Anda. Ingat bahwa fail2ban adalah solusi tunggal dan tidak mengamankan sistem Anda dari kerentanan lainnya. Pendekatan keamanan berlapis dan multi-segi adalah strategi yang ingin Anda kejar. Tidak ada solusi tunggal yang memberikan keamanan yang cukup.

Anda dapat menemukan contoh filter lain dan beberapa fail2ban tingkat lanjut implementasi yang dijelaskan di fail2ban.org.

[ Ingin mempelajari lebih lanjut tentang keamanan? Lihat daftar periksa keamanan dan kepatuhan TI. ]


Linux
  1. Pantau sistem Linux Anda di terminal Anda dengan procps-ng

  2. Pindai keamanan Linux Anda dengan Lynis

  3. Pulihkan sistem Anda dengan mode pengguna tunggal di Linux Mint / Linux Mint 12

  1. Bagaimana Anda Dapat Melindungi Komputer Anda?

  2. Menyeimbangkan keamanan Linux dengan kegunaan

  3. Amankan Server Linux Anda Dengan Fail2Ban [Panduan Pemula]

  1. Berikan firewall sistem Linux Anda peningkatan keamanan

  2. Bertahan dari audit keamanan dengan Linux perusahaan

  3. Bagaimana melindungi sistem Linux Ubuntu Anda dengan SurfShark VPN