GNU/Linux >> Belajar Linux >  >> Linux

Mengkonfigurasi Suricata sebagai Intrusion Prevention System (IPS)

Dengan meningkatnya popularitas kejahatan dunia maya, ada kebutuhan mendesak bagi bisnis untuk memiliki perlindungan yang lebih baik terhadap peretas. Intrusion Prevention System (IPS) adalah salah satu cara terbaik untuk mempertahankan diri dari serangan komputer. Namun sebelum menjelajahi internet untuk mencari IPS, cobalah Suricata.

Dalam tutorial ini, Anda akan mempelajari cara mengonfigurasi Suricata IPS yang berfungsi penuh di server Linux untuk melindungi jaringan Anda dari ancaman online.

Siap? Baca terus dan mulailah melindungi jaringan Anda!

Prasyarat

Tutorial ini akan menjadi demonstrasi langsung. Jika Anda ingin mengikuti, pastikan Anda memiliki yang berikut:

  • Server Linux – Demo ini menggunakan Ubuntu 20.04 LTS, tetapi semua distribusi Linux akan berfungsi.
  • Pengguna non-root dengan hak istimewa sudo.
  • Tergantung pada konfigurasi jaringan Anda dan bagaimana Anda ingin menggunakan Suricata, Anda mungkin memerlukan lebih banyak atau lebih sedikit CPU dan RAM untuk server Anda. Umumnya, semakin banyak lalu lintas yang Anda rencanakan untuk diperiksa, semakin banyak sumber daya yang akan Anda alokasikan ke Suricata. Di lingkungan pengembang, rencanakan untuk menggunakan setidaknya 2 CPU dan RAM 8 GB untuk memulai sehingga Suricata dapat melakukan tugasnya tanpa mengurangi kualitas layanan untuk semua pengguna.

Memasang Suricata dan Menambahkan Repositori PPA

Suricata tidak terinstal secara default di Ubuntu, tetapi menginstal Suricata mirip dengan cara Anda menginstal paket lain di sistem Anda.

1. Jalankan apt update perintah untuk memperbarui paket yang tersedia di sistem Anda.

sudo apt update -y

2. Selanjutnya, jalankan add-apt-repository perintah untuk menambahkan repositori PPA yang dikelola oleh Open Information Security Foundation (OISF). Dengan menambahkan repositori PPA, Anda akan mendapatkan Suricata versi terbaru dan stabil (ppa:oisf/suricata-stable ).

sudo add-apt-repository ppa:oisf/suricata-stable

3. Jalankan kembali sudo apt update perintah untuk memuat repositori Suricata yang baru ditambahkan ke indeks paket sistem Anda.

sudo apt update -y

4. Sekarang, jalankan sudo apt policy perintah untuk memverifikasi bahwa Anda telah menambahkan PPA Suricata dengan benar. Pastikan Anda melihat Suricata PPA dalam daftar seperti yang ditunjukkan di bawah ini sebelum menginstal Suricata

sudo apt policy

5. Jalankan perintah berikut ke install suricata pada sistem Anda.

sudo apt install suricata -y

6. Setelah instalasi selesai, jalankan systemctl status perintah di bawah ini untuk memeriksa suricata layanan status .

sudo systemctl status suricata

Di bawah ini, Anda dapat melihat bahwa layanan Suricata aktif (berjalan).

Mengonfigurasi Suricata

Paket Suricata dikirimkan dengan file konfigurasi bernama suricata.yaml terletak di /etc/suricata direktori. File konfigurasi ini memiliki banyak pengaturan berbeda untuk banyak kasus penggunaan lainnya. Namun perlu diingat bahwa ada beberapa pengaturan dalam file konfigurasi default yang perlu Anda ubah sebelum menggunakan Suricata.

Mode default untuk Suricata adalah mode Intrusion Detection (IDS), yang mencatat, tetapi tidak menurunkan lalu lintas apa pun. Mode ini digunakan saat mengkonfigurasi dan berkenalan dengan Suricata. Setelah Anda merasa lebih nyaman dengan Suricata dan lebih memahami jenis lalu lintas yang akan diingatkan Suricata, Anda dapat memilih untuk mengaktifkan mode IPS.

Suricata menambahkan bidang dalam format JSON (ID aliran komunitas). ID aliran komunitas adalah bidang 8-byte yang memungkinkan Anda untuk menghubungkan catatan yang dihasilkan oleh alat lain. Fitur ini berguna saat menggunakan Suricata bersama dengan alat lain seperti Bro atau Elasticsearch.

1. Buka /etc/suricata/suricata.yaml file di editor teks favorit Anda.

2. Temukan baris yang bertuliskan community-id:false dan ubah ke community-id:true . Simpan perubahan dan keluar dari editor teks.

Setiap kali Anda memeriksa acara, Anda akan melihat ID alur komunitas di keluaran JSON mereka.

Selanjutnya, jalankan perintah berikut untuk menemukan perangkat dengan rute default di sistem Anda (route show default ). -p flag memberitahu ip perintah untuk mencetak perangkat dengan cara yang dapat dibaca manusia, sedangkan -j flag mencetak output JSON.

Suricata dikonfigurasi untuk mengendus paket dari antarmuka jaringan yang tersedia secara default. Namun Anda dapat mengubah perilaku ini dan menentukan antarmuka untuk didengarkan Suricata saat dimulai.

 ip -p -j route show default

Seperti yang Anda lihat di bawah, pengembang parameter menentukan antarmuka yang akan digunakan Suricata untuk mengendus paket. Dalam demo ini, antarmukanya adalah eth0 , tetapi antarmuka Anda mungkin berbeda, seperti tun0, wlan0, dan sebagainya.

4. Terakhir, buka /etc/suricata/suricata.yaml file konfigurasi, cari antarmuka parameter di bawah af-packet bagian dan memodifikasinya sesuai. Dalam demo ini, eth0 digunakan sebagai antarmuka untuk mengendus paket.

Simpan perubahan, tetapi biarkan editor teks Anda tetap terbuka untuk saat ini.

Menyiapkan Fitur Muat Ulang Aturan Langsung

Anda sekarang telah mengonfigurasi Suricata, tetapi itu baru permulaan melindungi jaringan Anda. Biasanya, Anda ingin menambahkan aturan di tempat dan secara otomatis memuat ulang aturan. Bagaimana? Fitur reload aturan langsung Suricata memungkinkan Anda memperbarui aturan dengan cepat. Akibatnya, Anda tidak perlu memulai ulang Suricata secara manual agar aturan baru akan berlaku.

Buka /etc/suricata/suricata.yaml file, salin/tempel arahan berikut ke bagian bawah konten file, dan simpan perubahannya. Arahan ini memungkinkan Anda mengaktifkan fitur pemuatan ulang aturan langsung.

Dengan pengaturan ini, saat Anda mengedit/memperbarui kumpulan aturan, perubahan akan berlaku tanpa memulai ulang layanan Suricata Anda.

detect-engine:
  - rule-reload: true

Sekarang jalankan kill perintah di bawah ini untuk memberi tahu proses Suricata Anda ($(pidof suricata) ) untuk memperbarui aturan tanpa memulai ulang.

Perintah mengirimkan sinyal yang ditentukan pengguna (-usr2 ) ke ID proses yang ditentukan, kemudian Suricata melakukan hal berikut secara otomatis:

  • Muat konfigurasi baru untuk memperbarui variabel dan nilai aturan.
  • Muat aturan baru
  • Buat mesin pendeteksi baru
  • Tukar mesin pendeteksi lama dan baru
  • Pastikan semua utas diperbarui
  • Kosongkan mesin pendeteksi lama
sudo kill -usr2 $(pidof suricata)

Memperbarui Set Aturan Suricata

Fitur memuat ulang aturan langsung sudah siap, tetapi tidak akan berfungsi kecuali Anda memperbarui kumpulan aturan Anda. Secara default, paket Suricata memiliki seperangkat aturan terbatas yang hanya mendeteksi Protokol Internet paling umum yang terletak di /etc/suricata/rules direktori.

Pada titik ini, Anda akan mendapatkan Tidak ada file aturan yang cocok dengan pola pesan kesalahan, seperti di bawah ini, setiap kali Anda mencoba memulai dan menggunakan layanan Suricata Anda. Pesan kesalahan ini menunjukkan bahwa tidak ada aturan untuk digunakan Suricata.

Untuk memperbaiki kesalahan ini, berikan file aturan ke instance Suricata Anda. Untungnya, Suricata memiliki alat bernama suricata-update yang akan membantu Anda mengambil lebih banyak set aturan dari penyedia pihak ketiga.

1. Jalankan perintah di bawah ini untuk mendapatkan pembaruan untuk instance Suricata Anda.

sudo suricata-update

Seperti yang Anda lihat di bawah, output menunjukkan bahwa suricata-update perintah mengambil aturan dengan menghubungkan ke https://rules.emergingthreats.net/open/. Perintah kemudian menyimpan aturan baru ke direktori /var/lib/suricata/rules/ .

Outputnya juga mencetak berikut ini:

  • Jumlah totalnya(31737 ) dari kumpulan aturan
  • Jumlah aturan yang diaktifkan (24355 )
  • Jumlah berapa banyak yang ditambahkan(31737 )/dihapus(0 ).

Selanjutnya, jalankan perintah di bawah ini untuk membuat daftar semua penyedia aturan (list-sources ).

suricata-update command mengambil kumpulan aturan dari banyak penyedia, termasuk penyedia gratis dan komersial.

sudo suricata-update list-sources

Di bawah ini, Anda dapat melihat sebagian kecil dari daftar tersebut. Catat nama aturan yang Anda inginkan dari Suricata untuk mengambil aturan secara khusus. Tutorial ini mengambil et/open aturan untuk demonstrasi (langkah tiga).

3. Jalankan perintah di bawah ini untuk mengambil dan menyertakan (enable-source ) et/open aturan untuk aturan Suricata Anda.

sudo suricata-update enable-source et/open

Terakhir, jalankan kembali suricata-update perintah untuk memuat kumpulan aturan yang baru dipilih.

sudo suricata-update

Memvalidasi Konfigurasi Suricata

Anda telah mengonfigurasi Suricata dan bahkan menambahkan kumpulan aturan, jadi inilah saatnya untuk memvalidasi perubahan Anda dan memastikan semuanya berfungsi seperti yang diharapkan. Paket Suricata memiliki layanan validasi bawaan yang memungkinkan Anda melihat penyimpangan dari konfigurasi saat ini.

Jalankan suricata perintah di bawah ini untuk memvalidasi perubahan dalam file konfigurasi Suricata (-c /etc/suricata/suricata.yaml ). Perintah juga menampilkan semua pesan validasi (-v ).

-T flag memberitahu Suricata untuk berjalan dalam mode "test mode" dan "top down". Kedua mode memiliki aturan yang lebih ketat untuk mencocokkan paket dan kecil kemungkinannya untuk membuat kesalahan positif.

sudo suricata -T -c /etc/suricata/suricata.yaml -v

Karena Suricata adalah firewall yang sangat dapat dikonfigurasi, pengujian mungkin memerlukan waktu beberapa menit untuk diselesaikan. Jika tidak ada kesalahan, Anda akan melihat keluaran seperti di bawah ini yang menunjukkan selesai pesan.

Jika file konfigurasi Anda memiliki kesalahan yang mirip dengan yang di bawah ini, Suricata akan mencetak setiap kesalahan, menunjukkan baris tertentu yang menyebabkan masalah. Jika Anda mendapatkan kesalahan ini, perbaiki setiap masalah konfigurasi satu per satu hingga validasi berhasil.

Menguji Aturan Suricata

Sekarang setelah file konfigurasi Suricata Anda divalidasi, Anda dapat menjalankan Suricata untuk melihat mereka bekerja dengan benar. Anda akan menggunakan Suricata untuk menguji ET Open (2100498) dengan curl perintah untuk mendeteksi aktivitas/lalu lintas yang mencurigakan.

Saat ini, instans Suricata Anda memiliki lebih dari 30.000 aturan yang diambil Suricata dari berbagai set aturan. Jadi pengujian lengkap semua aturan dengan penjelasannya tidak akan cocok dengan tutorial ini.

1. Jalankan curl perintah di bawah ini untuk menghasilkan beberapa lalu lintas/permintaan HTTP/aktivitas dari situs web TestMyNIDS. TestMyNIDS adalah proyek e-learning yang didedikasikan untuk mendukung tes, validasi, dan perbandingan NIDS. Situs web ini menyediakan platform unik untuk analisis komparatif NIDS dan alat terkait.

Anda dapat menggunakan situs web ini untuk menguji aktivitas/lalu lintas yang mencurigakan untuk melihat apakah set aturan yang Anda konfigurasikan berfungsi seperti yang diharapkan.

curl http://testmynids.org/uid/index.html

Data respons dirancang untuk memicu peringatan palsu yang berpura-pura menjadi root Linux Linux/Unix pengguna. Dan akar . ini pengguna berada pada sistem yang mungkin disusupi.

Selanjutnya, jalankan grep perintah di bawah ini untuk memeriksa fast.log file di /var/log/suricata/ direktori untuk pesan peringatan yang cocok 2100498 . Perintah ini memeriksa file log untuk peringatan pengguna.

Selain dari file fast.log, file log lain yang harus diwaspadai adalah eve.log di direktori yang sama.

grep 2100498 /var/log/suricata/fast.log

Anda akan melihat output yang mirip dengan yang di bawah ini yang menunjukkan alamat IPv4 publik sistem Anda.

3. Sekarang, jalankan jq perintah di bawah ini untuk memeriksa eve.log mengajukan. eve.log file juga digunakan untuk mencatat peristiwa tetapi dalam format JSON (/var/log/suricata/eve.json ). Ini adalah eve.json dan fast.log file yang akan Anda rujuk untuk lalu lintas yang mencurigakan dan upaya yang diblokir. Setelah ditemukan, lakukan tindakan seperlunya.

jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json

Di bawah, Anda dapat melihat “signature_id”:2100498 di output, yang merupakan ID tanda tangan peringatan yang Anda tentukan dalam perintah.

Anda juga dapat melihat “community_id”:“1:ETRbv54GHTVCayHTUR5OIovK4gh2=" di output, yang merupakan ID Aliran Komunitas yang Anda atur di /etc/suricata/suricata.yaml mengajukan.

id_komunitas . ini berguna saat Anda menggunakan Suricata bersama dengan alat lain seperti Elasticsearch untuk mendapatkan "tumpukan pemantauan keamanan" lengkap dengan biaya yang cukup rendah.

Kesimpulan

Sepanjang tutorial ini, Anda telah belajar cara menginstal dan mengkonfigurasi Suricata dengan aturan untuk melindungi jaringan Anda. Anda juga telah melalui pengujian apakah kumpulan aturan berfungsi dengan menghasilkan lalu lintas di jaringan Anda.

Pada titik ini, Suricata berjalan sempurna dengan aturan khusus Anda untuk mendeteksi aktivitas/lalu lintas yang mencurigakan di jaringan Anda.

Sekarang, mengapa tidak membangun pengetahuan yang baru ditemukan ini? Mungkin mulai dengan menginstal dan mengonfigurasi Suricata, Zeek, tumpukan Elasticsearch untuk menyiapkan "tumpukan pemantauan keamanan" lengkap?


Linux
  1. Menginstal dan Mengkonfigurasi php 7x di Centos 8

  2. 5.1 Subwoofer Sistem Surround Tidak Berfungsi?

  3. Berikan akses sudo di Debian dan sistem operasi Ubuntu

  1. Mengonfigurasi Sudo untuk Mengaktifkan Perintah untuk Pengguna Non-Root di Linux

  2. sudo -k vs sudo -K

  3. sudo bagus atau sudo bagus?

  1. Cara menginstal Docker di sistem Fedora Linux

  2. Perintah Sudo di Linux

  3. Cara menginstal Denyhosts di Ubuntu Linux 17.04 (alat keamanan pencegahan intrusi untuk SSH dan lainnya)