Ikuti tutorial ini untuk mempelajari cara menginstal Zeek di Ubuntu 20.04. Zeek, sebelumnya Bro IDS, adalah alat pemantauan keamanan jaringan open source pasif terkemuka di dunia.
Zeek bukan perangkat keamanan aktif, seperti firewall atau sistem pencegahan intrusi. Sebaliknya, Zeek duduk di “sensor,” perangkat keras, perangkat lunak, virtual, atau platform cloud yang diam-diam dan diam-diam mengamati lalu lintas jaringan. Zeek menginterpretasikan apa yang dilihatnya dan membuat log transaksi yang ringkas, fidelitas tinggi, konten file, dan output yang sepenuhnya disesuaikan, cocok untuk tinjauan manual pada disk atau dalam alat yang lebih ramah-analis seperti sistem manajemen peristiwa keamanan dan informasi (SIEM).
Instal Zeek di Ubuntu 20.04
Jadi bagaimana Anda menginstal Zeek di Ubuntu 20.04? Lanjutkan sebagai berikut;
Zeek dapat diinstal dengan membangunnya dari kode sumber atau secara langsung melalui repositori Zeek APT.
Dalam tutorial ini, kita akan memilih nanti.
Instal Zeek di Ubuntu 20.04
Untuk menginstal Zeek di Ubuntu 20.04 dari repositori Zeek APT;
Tambahkan repositori Zeek ke Ubuntu 20.04:
echo 'deb http://download.opensuse.org/repositories/security:/zeek/xUbuntu_20.04/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list
curl -fsSL https://download.opensuse.org/repositories/security:zeek/xUbuntu_20.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/null
Jalankan pembaruan sistem;
apt update
Zeek 4.0.1 adalah rilis stabil saat ini pada tulisan ini, konfirmasikan hal yang sama dengan menjalankan perintah di bawah ini;
apt-cache policy zeek
zeek: Installed: (none) Candidate: 4.0.1-0 Version table: 4.0.1-0 500 500 http://download.opensuse.org/repositories/security:/zeek/xUbuntu_20.04 Packages
Anda kemudian dapat menginstal Zeek dengan menjalankan perintah di bawah ini;
apt install zeek
Selama instalasi, Anda akan diminta untuk beberapa pengaturan Postfix, pilih Situs Internet dan masukkan FQDN sistem Anda.
Mengonfigurasi Zeek di Ubuntu 20.04
Konfigurasikan Lingkungan Waktu Proses
Secara default, Zeek diinstal di bawah /opt/zeek.
Untuk memulainya, tambahkan jalur biner Zeek ke PATH;
echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc
source ~/.bashrc
Tentukan Jaringan Lokal yang Akan Dipantau
Selanjutnya, Anda perlu memberi tahu Zeek jaringan lokal mana yang harus dipantau. Ini dapat ditentukan dalam /opt/zeek/etc/networks.cfgfile konfigurasi.
Jaringan default yang ditentukan adalah 10.0.0.0/8, 172.16.0.0/16, 192.168.0.0/16. Jadi, dalam kasus kami, jaringan yang ingin kami pantau adalah192.168.59.0/24.
Karena itu;
vim /opt/zeek/etc/networks.cfg
# List of local networks in CIDR notation, optionally followed by a # descriptive tag. # For example, "10.0.0.0/8" or "fe80::/64" are valid prefixes. #10.0.0.0/8 Private IP space #172.16.0.0/12 Private IP space #192.168.0.0/16 Private IP space 192.168.59.0/24 Kifarunix-demo IP space
Simpan file dan keluar setelah Anda membuat perubahan konfigurasi jaringan.
Konfigurasikan Zeek Cluster
Zeek dapat dijalankan dalam mode mandiri atau dalam pengaturan cluster. Untuk menentukan apakah akan dijalankan dalam kluster atau penyiapan mandiri, Anda perlu mengedit /opt/zeek/etc/node.cfgfile konfigurasi.
- Untuk konfigurasi mandiri, hanya boleh ada satu node Zeek yang ditentukan dalam file ini.
- Untuk konfigurasi cluster, minimal harus ada node manager, node proxy, dan satu atau lebih node pekerja.
Menurut panduan memulai cepat Zeek, menggunakan mode proses mandiri / tunggal Zeek tidak cocok untuk pengaturan dengan lalu lintas yang signifikan. Dalam kasus ini, seseorang hampir pasti ingin menggunakan kluster Zeek, bahkan pada satu sistem.
Oleh karena itu, kita akan melihat cara mengatur cluster Zeek. Anda dapat melihat arsitektur cluster Zeek.
Konfigurasi node Zeek default adalah seperti;
cat /opt/zeek/etc/node.cfg
# Example ZeekControl node configuration. # # This example has a standalone node ready to go except for possibly changing # the sniffing interface. # This is a complete standalone configuration. Most likely you will # only need to change the interface. [zeek] type=standalone host=localhost interface=eth0 ## Below is an example clustered configuration. If you use this, ## remove the [zeek] node above. #[logger-1] #type=logger #host=localhost # #[manager] #type=manager #host=localhost # #[proxy-1] #type=proxy #host=localhost # #[worker-1] #type=worker #host=localhost #interface=eth0 # #[worker-2] #type=worker #host=localhost #interface=eth0
Karena kami menjalankan satu node Zeek Cluster dalam pengaturan ini, beri komentar tentang konfigurasi mandiri Zeek, bagian di bawah [zeek]dan tentukan alamat host untuk Zeek logger, manager, proxydan worker.
Jadi apa saja komponen tersebut;
- logger: ini adalah proses Zeek opsional yang menerima pesan log dari sisa node di cluster. Ini dapat digunakan sebagai pengganti manajer untuk mengurangi beban pada manajer itu sendiri.
- manager: menerima pesan log dan pemberitahuan dari sisa node di cluster Zeek jika tidak ada logger yang ditentukan.
- proxy: adalah proses Zeek yang dapat digunakan untuk membongkar penyimpanan data atau beban kerja arbitrer apa pun. Sebuah cluster mungkin berisi beberapa node proxy.
- worker: adalah proses Zeek yang mengendus lalu lintas jaringan dan melakukan analisis protokol pada arus lalu lintas yang dipasang kembali.
Jadi di bawah ini adalah konfigurasi konfigurasi cluster Zeek node tunggal kami;
cat /opt/zeek/etc/node.cfg
# Example ZeekControl node configuration. # # This example has a standalone node ready to go except for possibly changing # the sniffing interface. # This is a complete standalone configuration. Most likely you will # only need to change the interface. #[zeek] #type=standalone #host=localhost #interface=eth0 ## Below is an example clustered configuration. If you use this, ## remove the [zeek] node above. [kifarunix-demo-zeek-logger] type=logger host=192.168.59.16 # [kifarunix-demo-zeek-manager] type=manager host=192.168.59.16 # [kifarunix-demo-zeek-proxy] type=proxy host=192.168.59.16 # [kifarunix-demo-zeek-worker] type=worker host=192.168.59.16 interface=enp0s8 # [kifarunix-demo-worker-lo] type=worker host=localhost interface=lo
Tinjau file konfigurasi Global ZeekControl
Selanjutnya, Anda perlu meninjau file konfigurasi ZeekControl global, /opt/zeek/etc/zeekctl.cfg.
Sebagian besar nilai default dalam file konfigurasi sudah cukup. Satu-satunya perubahan yang mungkin ingin Anda buat atau perbarui di sini adalah alamat penerima untuk semua email yang dikirim oleh Zeek dan ZeekControl, jika Anda memilikinya. Nilai default adalah [dilindungi email]
Validasi Konfigurasi Zeek
Sebelum Anda dapat menginstal dan memulai Zeek, Anda perlu memvalidasi file konfigurasi;
zeekctl check
Hint: Run the zeekctl "deploy" command to get started. kifarunix-demo-zeek-logger scripts are ok. kifarunix-demo-zeek-manager scripts are ok. kifarunix-demo-zeek-proxy scripts are ok. kifarunix-demo-zeek-worker scripts are ok. kifarunix-demo-worker-lo scripts are ok.
Menyebarkan Konfigurasi ZeekControl
Jika semuanya baik-baik saja, instal konfigurasi ZeekControl dan mulai instance Zeek;
zeekctl deploy
checking configurations... installing... creating policy di rectories... installing site policies... generating cluster-layout.zeek... generating local-networks.zeek... generating zeekctl-config.zeek... generating zeekctl-config.sh... stopping... stopping workers... stopping proxy... stopping manager... stopping logger... starting... starting logger... starting manager... starting proxy... starting workers...
Periksa status Instans Zeek
Anda dapat memeriksa status instance Zeek dengan mengeksekusi;
zeekctl status
Name Type Host Status Pid Started kifarunix-demo-zeek-logger logger 192.168.59.16 running 17911 17 May 03:52:41 kifarunix-demo-zeek-manager manager 192.168.59.16 running 17962 17 May 03:52:43 kifarunix-demo-zeek-proxy proxy 192.168.59.16 running 18011 17 May 03:52:45 kifarunix-demo-zeek-worker worker 192.168.59.16 running 18081 17 May 03:52:48 kifarunix-demo-worker-lo worker localhost running 18082 17 May 03:52:48
Memeriksa Log Zeek
Zeek akan mulai menganalisis lalu lintas sesuai dengan kebijakan default dan menulis hasil log di /opt/zeek/logs/current direktori.
ls -1 /opt/zeek/logs/current/
broker.log capture_loss.log cluster.log conn.log dhcp.log known_services.log loaded_scripts.log notice.log packet_filter.log reporter.log stats.log stderr.log stdout.log weird.log
Beberapa log yang layak disebutkan secara eksplisit:
- conn.log: Berisi entri untuk setiap koneksi yang terlihat pada kabel, dengan properti dasar seperti waktu dan durasi, alamat IP originator dan responder, service dan port, ukuran muatan, dan banyak lagi. Log ini memberikan catatan lengkap tentang aktivitas jaringan.
- notice.log: Mengidentifikasi aktivitas spesifik yang diakui Zeek sebagai berpotensi menarik, aneh, atau buruk. Kegiatan semacam itu disebut “pemberitahuan”.
- known_services.log: File log ini berisi service yang terdeteksi di jaringan lokal dan diketahui digunakan secara aktif oleh client di jaringan. Ini membantu dalam menghitung semua service apa yang diamati di jaringan lokal dan jika semuanya disengaja dan diketahui oleh administrator jaringan.
- weird.log: Berisi aktivitas yang tidak biasa atau luar biasa yang dapat menunjukkan koneksi yang salah, lalu lintas yang tidak sesuai dengan protokol tertentu, perangkat keras/service yang tidak berfungsi atau salah konfigurasi, atau bahkan penyerang yang mencoba menghindari/membingungkan sensor.
- (protocol).log seperti (dns.log, dhcp.log, http.log, snmp.log): berisi informasi untuk paket yang ditemukan di masing-masing protokol.
Sampel conn.log log;
tail /opt/zeek/logs/current/conn.log
1621277534.729878 CY3bmP18QlSIvSFxej 192.168.59.16 8132 192.168.59.16 80 tcp - - - - RSTRH T T 0 ^r 00 1 40 - 1621277534.729881 CGVzYD19RQxUT0Vzq 192.168.59.16 8133 192.168.59.16 80 tcp - - - - S0 T T 0 S 140 0 0 - 1621277534.729883 C8jp1t2D0NHoUeOiF1 192.168.59.16 8133 192.168.59.16 80 tcp - - - - RSTRH T T 0 ^r 00 1 40 - 1621277564.065743 CduRKb4f4bLM38gakl 192.168.59.16 47762 192.168.59.16 58282 tcp - - - - OTH T T 0 Ccc00 0 0 - 1621277564.065833 CRgk0dMeT9AeMyROd 192.168.59.16 47762 192.168.59.16 58288 tcp - - - - OTH T T 0 Ccc00 0 0 - 1621277564.215195 Cg09q71OaurnFkIdRe 192.168.59.16 38834 192.168.59.16 47761 tcp - - - - OTH T T 0 Cc 00 0 0 - 1621277566.725573 CG17M71tH9TV52bBe7 192.168.59.16 38836 192.168.59.16 47761 tcp - - - - OTH T T 0 Cc 00 0 0 - 1621277574.895432 C2aJF016ENvM3nF6da 192.168.59.16 34700 192.168.59.16 80 tcp - - - - OTH T T 0 C 00 0 0 - 1621277570.315909 CQp7gp31EAsSvqgIn1 192.168.59.16 38846 192.168.59.16 47761 tcp - - - - OTH T T 0 Cc 00 0 0 - 1621277574.895458 CIP6UASndf9AtymV2 192.168.59.16 34700 192.168.59.16 80 tcp - - - - OTH T T 0 ^cC00 0 0 -
Bidang dan jenisnya adalah;
#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state local_orig local_resp missed_bytes history orig_pkts orig_ip_bytes resp_pkts resp_ip_bytes tunnel_parents #types time string addr port addr port enum string interval count count string bool bool count string count count count count set[string]
Memeriksa Proses Node Zeek
Anda dapat memeriksa proses yang berjalan pada setiap node dengan mengeksekusi;
zeekctl ps.zeek <node>
Misalnya, untuk memeriksa proses pada node manajer Zeek;
zeekctl ps.zeek kifarunix-demo-zeek-manager
USER PID PPID %CPU %MEM VSZ RSS TT S STARTED TIME COMMAND >>> 192.168.59.16 (-) root 17911 17905 0.1 4.3 821252 88788 ? S 03:52:41 00:00:02 zeek (+) root 17962 17956 0.0 4.3 642664 89200 ? S 03:52:43 00:00:01 zeek (-) root 18011 18005 0.0 4.2 640972 87516 ? S 03:52:45 00:00:01 zeek (-) root 18081 18069 0.1 10.7 772672 219204 ? S 03:52:47 00:00:03 zeek (-) root 18082 18071 0.1 10.7 772148 218668 ? S 03:52:47 00:00:03 zeek
Dan itu membawa kita ke akhir tutorial tentang cara menginstal Zeek di Ubuntu 20.04. Jangan ragu untuk meninggalkan komentar.
Referensi
Menginstal Zee k
Tutorial lainnya
Instal dan Konfigurasikan AIDE di Debian 10
Instal ModSecurity 3 dengan Apache di Docker Container
Instal dan Atur Suricata di Ubuntu 18.04