Snort adalah Sistem Pencegahan Intrusi jaringan open-source ringan untuk menjalankan sistem deteksi intrusi jaringan (NIDS). Snort digunakan untuk memantau paket data yang dikirim/diterima melalui antarmuka jaringan tertentu. Sistem deteksi intrusi jaringan dapat menangkap ancaman yang menargetkan kelemahan dan kerentanan sistem Anda menggunakan deteksi berbasis tanda tangan dan teknologi analisis protokol.
Ketika perangkat lunak NIDS diinstal dan dikonfigurasi dengan benar, dapat mengidentifikasi berbagai jenis serangan dan kecurigaan seperti serangan CGI, pelanggaran kebijakan jaringan, penyelidikan SMB, infeksi malware, sistem yang disusupi, pemindaian port tersembunyi, dll.
Dalam tutorial ini, kita belajar cara menginstal Snort 3 di Ubuntu 20.04 .
Beberapa fitur baru Snort 3:
- Mendukung beberapa utas pemrosesan paket
- Memungkinkan pemrosesan beberapa paket
- Buat dokumentasi referensi secara otomatis
- Gunakan konfigurasi skrip sederhana
- Buat komponen utama dapat dipasang
- Memungkinkan pengguna untuk menulis plugin mereka sendiri
- Konfigurasi bersama dan tabel atribut
- Memungkinkan aturan berjalan lebih cepat
Langkah 1:Perbarui sistem
Pertama, perbarui dan tingkatkan sistem Ubuntu Anda
sudo apt update
sudo apt upgrade
Langkah 2:Instal Dependensi yang Diperlukan
Repositori default Ubuntu memiliki paket snort. Paket snort yang tersedia di sana adalah versi lama. Untuk menginstal Snort 3, kita harus membangun dari sumbernya. Sebelum menginstal Snort 3, kita perlu menginstal library yang diperlukan dan prasyarat.
Instal paket dependensi Snort 3 dengan perintah berikut:
sudo apt install build-essential libpcap-dev libpcre3-dev libnet1-dev zlib1g-dev luajit hwloc libdnet-dev libdumbnet-dev bison flex liblzma-dev openssl libssl-dev pkg-config libhwloc-dev cmake cpputest libsqlite3-dev uuid-dev libcmocka-dev libnetfilter-queue-dev libmnl-dev autotools-dev libluajit-5.1-dev libunwind-dev
Setelah dependensi terinstal, buat direktori tempat Anda mengkompilasi dan menyimpan file sumber untuk Snort dengan perintah berikut:
mkdir snort-source-files
cd snort-source-files
Kemudian, unduh dan instal versi terbaru perpustakaan Akuisisi Data Snort (LibDAQ). Untuk memasang LibDAQ kita perlu membangun dan menginstalnya dari sumber dengan perintah berikut.
git clone https://github.com/snort3/libdaq.git
cd libdaq
./bootstrap
./configure
make make install
Dependensi berikutnya adalah Tcmalloc, yang akan mengoptimalkan alokasi memori dan memberikan penggunaan memori yang lebih baik.
Instal Tcmalloc dengan perintah berikut.
cd ../ wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.9/gperftools-2.9.tar.gz
tar xzf gperftools-2.9.tar.gz cd gperftools-2.9/
./configure
make make install
Langkah 3:Instal Snort 3 di Ubuntu 20.04
Setelah dependensi diatur, kita akan mengunduh dan menginstal Snort 3 di Ubuntu 20.04.
01. Repositori GitHub resmi Clone Snort 3.
cd ../
git clone git://github.com/snortadmin/snort3.git
02. Ubah direktori menjadi Snort3
cd snort3/
03. Dari sana konfigurasikan dan aktifkan tcmalloc dengan perintah berikut.
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
04. Arahkan ke direktori build dan compile dan install Snort 3 menggunakan make and make install dengan perintah berikut.
cd build
make
make install
05. Setelah penginstalan selesai, perbarui pustaka bersama.
sudo ldconfig
Snort secara default diinstal ke direktori /usr/local/bin/snort, praktik yang baik adalah membuat tautan simbolik untuk /usr/sbin/snort
sudo ln -s /usr/local/bin/snort /usr/sbin/snort
06. Verifikasi instalasi Snort 3
snort -V
Keluaran:
,,_ -> Snort++ <-
o" )~ Version 3.1.10.0
'''' By Martin Roesch & The Snort Team
http://snort.org/contact#team
Copyright (C) 2014-2021 Cisco and/or its affiliates. All rights reserved.
Copyright (C) 1998-2013 Sourcefire, Inc., et al.
Using DAQ version 3.0.4
Using LuaJIT version 2.1.0-beta3
Using OpenSSL 1.1.1f 31 Mar 2020
Using libpcap version 1.9.1 (with TPACKET_V3)
Using PCRE version 8.39 2016-06-14
Using ZLIB version 1.2.11
Using LZMA version 5.2.4
Jika Anda melihat output yang serupa, maka Snort 3 berhasil diinstal.
Konfigurasikan Kartu Antarmuka Jaringan
Temukan antarmuka tempat Snort mendengarkan lalu lintas jaringan dan aktifkan promiscuous mode untuk dapat melihat semua lalu lintas jaringan yang dikirim ke sana.
ip link set dev eh0 promisc on
Verifikasi dengan perintah berikut.
ip add sh eth0
Keluaran:
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether f2:3c:92:ed:7e:d8 brd ff:ff:ff:ff:ff:ff
inet 74.207.230.186/24 brd 74.207.230.255 scope global dynamic eth0
valid_lft 72073sec preferred_lft 72073sec
inet6 2600:3c02::f03c:92ff:feed:7ed8/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 60sec preferred_lft 20sec
inet6 fe80::f03c:92ff:feed:7ed8/64 scope link
valid_lft forever preferred_lft forever
Selanjutnya, nonaktifkan antarmuka Offloading untuk mencegah Snort 3 memotong paket besar, maks hingga 1518 byte. Periksa apakah fitur ini diaktifkan dengan perintah berikut.
ethtool -k eth0 | grep receive-offload
Jika melihat output ini, GRO diaktifkan saat LRO diperbaiki atau LRO diaktifkan.
Keluaran.
generic-receive-offload: on
large-receive-offload: on
Nonaktifkan dengan perintah berikut.
ethtool -K eth0 gro off lro off
Dua memastikan perubahan tetap ada di seluruh reboot sistem, kita harus membuat dan mengaktifkan unit layanan systemd untuk mengimplementasikan perubahan.
sudo nano /etc/systemd/system/snort3-nic.service
Tempelkan konfigurasi berikut yang mengarah ke antarmuka jaringan Anda.
[Unit]
Description=Set Snort 3 NIC in promiscuous mode and Disable GRO, LRO on boot
After=network.target [Service] Type=oneshot ExecStart=/usr/sbin/ip link set dev eth0 promisc on ExecStart=/usr/sbin/ethtool -K eth0 gro off lro off TimeoutStartSec=0 RemainAfterExit=yes [Install] WantedBy=default.target
Muat ulang pengaturan konfigurasi systemd:
sudo systemctl daemon-reload
Mulai dan aktifkan layanan saat boot dengan perintah berikut:
sudo systemctl enable --now snort3-nic.service
Keluaran.
Created symlink /etc/systemd/system/default.target.wants/snort3-nic.service → /etc/systemd/system/snort3-nic.service.
Verifikasi snort3-nic.service dengan:
sudo systemctl status snort3-nic.service
Keluaran.
● snort3-nic.service - Set Snort 3 NIC in promiscuous mode and Disable GRO, LRO on boot
Loaded: loaded (/etc/systemd/system/snort3-nic.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2021-09-18 12:35:17 UTC; 4min 59s ago
Process: 182782 ExecStart=/usr/sbin/ip link set dev eth0 promisc on (code=exited, status=0>
Process: 182783 ExecStart=/usr/sbin/ethtool -K eth0 gro off lro off (code=exited, status=0>
Main PID: 182783 (code=exited, status=0/SUCCESS)
Sep 18 12:35:17 li72-186 systemd[1]: Starting Set Snort 3 NIC in promiscuous mode and Disable >
Sep 18 12:35:17 li72-186 systemd[1]: Finished Set Snort 3 NIC in promiscuous mode and Disable >
Instal Snort 3 Aturan Komunitas
Di Snort, aturan adalah keuntungan utama untuk mesin pendeteksi intrusi. Ada tiga jenis Aturan Snort:Aturan Komunitas, Aturan Terdaftar, Aturan Pelanggan. Aturan komunitas dikirimkan oleh komunitas open-source atau snort integrator.
Kami akan menunjukkan cara memasang Aturan Komunitas.
Pertama, buat direktori untuk Aturan di /usr/local/etc/snort
mkdir /usr/local/etc/rules
Unduh aturan komunitas Snort 3. Anda dapat menemukannya di halaman unduhan resmi Snort3.
wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz
Ekstrak aturan yang diunduh dan letakkan di direktori yang sebelumnya kita buat /usr/local/etc/rules/
tar xzf snort3-community-rules.tar.gz -C /usr/local/etc/rules/
Snort 3 menyertakan dua file konfigurasi utama, snort_defaults.lua dan snort.lua .
snort.lua file berisi konfigurasi utama Snort, memungkinkan implementasi dan konfigurasi praprosesor Snort, penyertaan file aturan, logging, filter event, output, dll.
snort_defaults.lua file berisi nilai default seperti jalur ke aturan, AppID, daftar intelijen, dan variabel jaringan.
Ketika file aturan diekstraksi dan ditempatkan, kita akan mengonfigurasi salah satu file konfigurasi ini yang disebut snort.lua. Buka file dengan editor favorit Anda dan akan melihat konfigurasi serupa.
... -- HOME_NET and EXTERNAL_NET must be set now -- setup the network addresses you are protecting
HOME_NET = 'server_public_IP/32'
-- set up the external network addresses.
-- (leave as "any" in most situations)
EXTERNAL_NET = 'any' EXTERNAL_NET = '!$HOME_NET' ...
Tetapkan jaringan yang ingin Anda lindungi dari serangan sebagai nilai untuk HOME_NET variabel, dan titik EXTERNAL_NET variabel ke HOME_NET variabel.
Simpan dan keluar.
Anda juga dapat mengedit default Snort di /usr/local/etc/snort/snort_defaults.lua dan di bawah bagian IPS Anda dapat menentukan lokasi sesuai aturan Anda.
ips =
{ -- use this to enable decoder and inspector alerts --enable_builtin_rules = true, -- use include for rules files; be sure to set your path -- note that rules files can include other rules files include = '/usr/local/etc/rules/snort3-community-rules/snort3-community.rules'
}
...
Simpan dan keluar.
Menjalankan Snort sebagai Layanan
Jika Anda akan menjalankan Snort sebagai daemon layanan di latar belakang, Anda juga dapat membuat unit layanan systemd untuk Snort. Adalah bijaksana untuk menjalankannya sebagai pengguna sistem yang tidak memiliki hak istimewa
Buat akun pengguna sistem non-login.
sudo useradd -r -s /usr/sbin/nologin -M -c SNORT_IDS snort
Kemudian, buat unit layanan systemd untuk Snort untuk dijalankan sebagai pengguna snort. Sesuaikan dan cocokkan dengan antarmuka jaringan Anda.
sudo nano /etc/systemd/system/snort3.service
Tempelkan konfigurasi berikut.
[Unit]
Description=Snort 3 NIDS Daemon
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -s 65535 -k none -l /var/log/snort -D -i eht0 -m 0x1b -u snort -g snort
[Install]
WantedBy=multi-user.target
Muat ulang konfigurasi systemd.
sudo systemctl daemon-reload
Setel kepemilikan dan izin pada file log.
sudo chmod -R 5775 /var/log/snort
sudo chown -R snort:snort /var/log/snort
Mulai dan aktifkan Snort untuk berjalan pada boot sistem:
sudo systemctl enable --now snort3
Periksa status layanan untuk mengonfirmasi apakah itu berjalan.
sudo systemctl status snort3
Keluaran.
● snort3.service - Snort 3 NIDS Daemon
Loaded: loaded (/etc/systemd/system/snort3.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2021-09-18 12:44:32 UTC; 6s ago
Main PID: 182886 (snort)
Tasks: 2 (limit: 1071)
Memory: 62.6M
CGroup: /system.slice/snort3.service
└─182886 /usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -s 65535 -k none >
Sep 18 12:44:32 li72-186 systemd[1]: Started Snort 3 NIDS Daemon.
Kesimpulan
Dalam tutorial ini cara menginstal sistem deteksi intrusi jaringan Snort 3 di Ubuntu 20.04.
Linux tidak 100% kebal terhadap Virus dan hal-hal yang mencurigakan, selalu lebih baik untuk menginstal beberapa alat dan memastikan tidak ada yang mencoba sesuatu yang mencurigakan di perangkat dan jaringan Anda. Alternatif lain untuk Snort yang dapat Anda selidiki:Ossec, Palo Alto Networks Next-Generation Firewall, Next-Generation Intrusion Prevention System (NGIPS).
Terima kasih telah membaca, berikan tanggapan dan saran Anda di bagian komentar.