Herkese merhaba, bu yazımda suricata kurulumu, konfigürasyonu ve örnek kurallarından bahsedeceğim.
Suricata Nedir?
Suricata açık kaynaklı bir IDS/IPS aracı olarak kullanılır. Ağ trafiğini izler, analiz eder ve tehditleri tespit eder.
IDS, ağdaki şüpheli aktiviteleri tespit eder ve uyarır, ancak müdahale etmez.
IPS ise bu aktiviteleri tespit edip engeller, yani aktif koruma sağlar.
Kısaca IDS izler, IPS durdurur diyebiliriz.
İlk olarak sudo apt update && sudo apt upgrade -y komutu ile güncelleyelim.
Sonrasında aşağıdaki komut ile Suricata’nın resmi ve güncel sürümleri için repository ekleyelim.
sudo add-apt-repository ppa:oisf/suricata-stable
Enter ile işlemi gerçekleştirelim.
sudo apt install suricata ile indirip kuralım.

sudo systemctl enable suricata.service komutu ile Suricata hizmetinin sistem açılışında otomatik olarak başlatılmasını sağlayalım.
Durdurmak için sudo systemctl stop suricata.service komutunu kullanabiliriz.
ip -p -j route show veya ifconfig komutuyla bilgilerimizi öğrenelim. yaml dosyası için gerekli.

Interface enp0s3, konfigürasyonda değiştirmemiz gerekiyor.

Şimdi yaml dosyasını sudo nano /etc/suricata/suricata.yaml komutuyla açıp değişiklikleri gerçekleştirelim.
~ctrl + w ile af -packet kısmını search edebiliriz.~

Interface eth0 olarak görünüyor, bilgilerimize göre değişiklik yapmalıyız.

Aynı değişikliği pcap ve pfring için de yapabiliriz.


Kaydedip çıkabiliriz.
sudo suricata-update komutu ile kuralları indirip sisteme uygulayalım.

sudo suricata-update list-sources komutuyla listeleyebiliriz.

tgreen/hunting kuralını aktifleştirmek için sudo suricata-update enable-source tgreen/hunting komutunu kullanabiliriz.
tgreen/hunting kural seti, sistem yöneticilerinin ağdaki şüpheli aktiviteleri aktif olarak izlemelerine olanak tanır.
~Yeni kuralları indirmek-birleştirmek için sudo suricata-update komutunun tekrar çalıştırmalıyız.~
Güncel kural listesi için tıklayabilirsiniz.
Aşağıdaki komut ile yapılandırma dosyasını test edip, hata olup olmadığını kontrol edebiliriz.
sudo suricata -T -c /etc/suricata/suricata.yaml -v
Çıktıda IDS modunda çalıştığını görüyoruz.
Eğer IPS modunda çalıştırmak istiyorsak güvenlik duvarı kurallarını da eklemek gerekiyor.
sudo apt install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-deviptables kullanan sistemler için;
sudo iptables -I INPUT -j NFQUEUE --queue-num 0
sudo iptables -I OUTPUT -j NFQUEUE --queue-num 0nftables kullanan sistemler için;
nft add rule inet filter input queue num 0
nft add rule inet filter output queue num 0yaml dosyasında ips modunu etkinleştirmemiz gerekiyor.
af-packet bölümündeki - interface: enp0s3 satırının başına # ekleyerek yorum satırı yapılmalı ve ondan sonra nfq bölümü etkinleştirilmeli.
nfq:
- queue: 0sudo systemctl restart suricata.service komutuyla değişiklikleri uygulayalım.
sudo systemctl status suricata.service komutuyla çalışma durumunu kontrol edelim.

sudo tail -f /var/log/suricata/suricata.log komutu ile servisin sağlıklı çalışıp çalışmadığını kontrol edebiliriz.

curl http://testmynids.org/uid/index.html ile veya curl http://www.eicar.org/download/eicar.com.txt ile IDS’in doğru çalışıp çalışmadığını test edelim.
sudo tail -f /var/log/suricata/fast.log ile Suricata’nın uyarılarını eş zamanlı izleyebiliriz.

ls /var/lib/suricata/rules ile Suricata’nın yüklediği kural dosyalarının bulunduğu dizindeki dosyaları görüntüleyebiliriz.

Kendi özel kurallarımızı, ana kural dosyalarıyla karışmaması için genellikle local.rules adlı ayrı bir dosyada tutabiliriz.
Şimdi bu dosyayı oluşturalım ve düzenlemek için açalım.
sudo nano /etc/suricata/rules/local.rulesKural dosyamızı oluşturduk ancak Suricata’nın bu dosyayı okumasını sağlamalıyız. Yapılandırma dosyasını açalım.
sudo nano /etc/suricata/suricata.yamlDosya içinde Ctrl + W tuşlarına basarak rule-files kelimesini bulmalıyız.
rule-files:
- suricata.rules
# - http-events.rules
# - tls-events.rulesBu listenin altına kendi kural dosyamızı ekleyelim.
rule-files:
- suricata.rules
- local.rules # <-- BU SATIRI EKLEMELİYİZDosyayı kaydedip çıkalım.
Artık local.rules dosyamız Suricata tarafından tanınıyor. Şimdi bu dosyanın içine test kurallarımızı ekleyebiliriz.
sudo nano /etc/suricata/rules/local.rulesHttp isteği yapılınca log oluşturmak için kural oluşturabiliriz. ~port 80’e giden tüm tcp trafiğini uyarı olarak işaretliyor, genel bir kural~
alert tcp any any -> any 80 (msg:"DEMO_HTTP ALERT ACCESS DETECTED"; sid:100001; rev:1;)Aşağıdaki kural ise sql injection benzeri patternları url veya http payload içinde tespit etmesini sağlar. ~ or, 1=1 ~
alert http any any -> any any (
msg:"SQLi Attempt Detected in URL or Payload";
content:"OR"; http_uri; nocase;
content:"1=1"; http_uri; nocase;
sid:100010;
rev:1;
)sudo systemctl restart suricata.service komutuyla değişiklikleri uygulamayı unutmayalım.
Okuduğunuz için teşekkür ederim..
https://www.siberguvenlik.web.tr/ad-ve-fortigate-ldap-entegrasyonu Yayınlanan tüm yazılarım için => https://www.siberguvenlik.web.tr/author/mervecelikkol













