Press enter to see results or esc to cancel.

Suricata IPS&IDS OPNsense Bridge Firewall Kurulumu

Son yazımda OPNsense’i Bridge Firewall/Köprü Güvenlik Duvarı olarak kurmuştuk. “OPNsense Bridge Firewall – 🛡Ağınızdaki Gizli Koruyucunuz“. Bu makaleyi okumadan önce, yukarıdaki makaleme bir göz atmalsınız, çünkü bu konuda OPNsense Kurulumuna değinmeyeceğim ve birçok terimler bulunmakta. Bu makalede, lokal ağın tamamen güvenli olmasını sağlamak için Suricata IDS&IPS’i OPNsense Güvenlik Duvarı’na kuracağız.

🐿Suricata IDS&IPS nedir?

Suricata, open source/açık kaynaklı, hızlı ve sağlam bir ağ tehdit algılama motorudur/engine’dir.
Suricata IDS&IPS Logo
Suricata IDS&IPS Logo

🔔Saldırı tespit sistemi

SaldırıTespit Sistemi (Intrusion Detection System), ağ trafiğini şüpheli etkinlik ve sorunlara karşı izleyen, bu tür bir etkinlik algılandığında admini uyaran bir sistemdir.

🚫Saldırı engelleme sistemi

Saldırı engelleme sistemi (Intrusion Prevention System), güvenlik açıklarını tespit etmek ve önlemek için ağ trafik akışlarını inceleyen bir ağ güvenliği tehditlerini engelleme sistemidir.

📡Tüm ağları Sanal Makinelere Kurma

 İlk makalede, tüm senaryoyu/ağı donanım/bileşenlerin yanı sıra PCEngine APU ve Switchlerle/Anahtarlarla iş yerinde kurmuştum. Ama bu sefer evdeyim ve sadece bir bilgisayarım var 🙂 Bu yüzden sanal makinelerle kurulumu yapmam gerekiyor. Sanal Makineleri Vmware kullanarak kuracağım. Siz Virtualbox(Ücretsiz) yada VMware Player(Ücretsiz) kullanarakta kurabilirsiniz. Aşağıda VMware ağında hangi fiziksel ağı nasıl tanımladığımı çizdim. Evde olduğum için önceki makaledeki Ağ Maskelerini değiştirdim,o yüzden ilk makaledeki eski IP adresleri bu makalede aynı değil. Sanal makineler için yeni Ağ Maskelerini (Subnetwork) aşağıda listeliyorum:

WAN (Vmnet0 – Bridge) -> 192.168.0.0/24

DMZ (Vmnet2) -> 192.168.0.0/24

LAN (Vmnet1) -> 192.168.1.0/24

VMware-Network-Diagramm-for-OPNsense
VMware Network-Diagramm for OPNsense Bridge Firewall

🔒VMware Özel Ağ

Sanal Ağ Düzenleyicide(vmnetçfg.exe) “vmnet1 ve vmnet2” ağ kartlarını özel ağ olarak ekledim. Özel Ağ(custom network) ve host-only ağları arasındaki fark, host-only ağında tüm sanal makineleri birbirine bağlayan sanal bir anahtar/switch bulunmasıdır. Güvenlik nedeniyle host-only yerine, birbirine bağlantıları olmayan özel ağlar kuruyorum.  VMware Ağ Adaptörleri hakkındaki makalemde VMware ağ türleri hakkında daha fazla bilgi edinebilirsiniz.
VMware-custom-network
VMware Custom Network

İlk olarak ekledigimiz üç ağ kartını OPNsense Güvenlik Duvarı/Bridge Firewall’a bağlamalıyız. (Aşağıdaki fotograflardaki gibi).

Üç tane sanal makine kuruyoruz:

  • Firewall OPNsense -> Vmnet0 (Bridge/Köprü)
  • Ubuntu -> VMnet1 (Admin PC)
  • Kali Linux -> VMnet2 (Client. Kali Linux ile saldırı senaryosu düzenliyecez. Bilgisayarımda Windows yüklü olduğu için, Kaliyi Sanal Makineye kuruyorum. Yani bu konuda DMZ(İçeriden) WAN’a(dışarıya) salıdırı düzenlicez.
  • Windows -> Laptop (Bridged network/Köprü Ağında)
vmware-opnsense-firewall-netzwerkkarte
VMware OPNsense Firewall Netzwerkkarte

⚙️OPNsense üzerinde Suricata Kurulumu

WAN IP-Adresini etkinleştirme

Öncelikle, WAN ağ kartında IP adresini etkinleştirmemiz gerekiyor, böylece dışarıdaki dünyayla iletişim kurabilelim ve gerekli paketleri yükleyebilelim. WAN için DHCP’yi etkinleştirdim, böylece DHCP Sunucusundan otomatik olarak bir IP adresi geliyor. Daha sonra:

(System > Firmware > Packages) Sistem > Firmware >  OPNsense paketleri altında Suricata zaten var. Sadece yüklemeniz gerekiyor.

opnsense-suricata-package
OPNsense Suricata Package Install

📥Suricata paketlerini indirme

Şimdi (Services > Intrusion Detection > Download) Servisler> Saldırı Tespit Sistemi > Tüm paketleri indir ile tüm tespit paketlerini indiriyoruz. Çok fazla alana ihtiyacınız yok, o yüzden tüm paketleri kurmanızı öneriyorum. Ancak, her şeyi indirmek istemiyorsanız, tüm “ET – (Emerging Threats)Gelişen Tehditleri” indirmeli ve bunları “Etkinleştir” olarak işaretlemelisiniz.

suricata-download-packages
Install Packages for Suricata Emerging Threat

Tüm paketleri indirdikten sonra, WAN Ağ Kartını etkisizleştirebilirsiniz.

📈Remote Logserver Kurulumu

Eğer Suricatanın Loglarını(Günlük/Rapor) başka bir Server’da depolamak istiyorsanız, System > Settings > Logging (Sistem> Ayarlar> Günlük) altında Serverin IP Adresini verebilirsiniz. Logları ayrı bir Serverda depolamak çok önemlidir. Farz edinki biri Sisteminize girdi, yapacağı en önemli iş nedir?: Logları silmek, yani ayak izlerini yok etmek. Eğer Loglarınız başka bir Server’da ise, herşeyi güvenli bir şekilde kaydedersiniz.

opnsense-remote-logging-server
OPNsense Remote Logging-Server

👨🏿‍💻Saldırı Senaryosu - SYN Flood

Saldırı Tespit Sistemi ve Saldırı Engelleme Sistemi arasındaki farkları anlamak için, DMZ ağındaki Kali-Linux’tan bir test senaryosu uygulayacağım. Ağlar konusunda çok dikkatli olmalısınız, aksi takdirde her zaman farklı hata mesajları alırsınız. Sanal makinelere IP adreslerini manuel olarak veriyoruz. Benim Kalinin IP Adresi -> 192.168.0.26

📦Scapy Nedir?

Scapy güçlü bir etkileşimli paket düzenleme programıdır. Scapy ile çok sayıdaki protokoller paketlerinin sahtesini yapabilir veya kodunu çözebilirsiniz. Paketleri ağ üzerinden gönderebilir, manipule edebilir ve daha fazlasını yapabilirsiniz. (Scan, Tracerouting)Tarama, izleme, denetleme, birim testi, saldırı veya ağ keşfi gibi çoğu klasik görevleri de kolayca yerine getirebiliriniz. Scapy’i test senaryosu için kullanıyorum. Scapy’i kurmak çok kolaydır. Sadece git deposundan kurmanız ve çalıştırmanız gerekiyor.
git clone https://github.com/secdev/scapy
cd scapy
./run_scapy
Yurıdaki komutlarla Scapy’i kurup kullanıma hazır hale getirin. Sonra Scapy’nin içinde aşağıdaki kodları yazın. Her koddan sonra bir Satır aşağıya inmeyi unutmayın. // sonrası benim size notlarım, yazmanıza gerek yok.
e=Ether(src=RandMAC(),dst=“30:ec:32:4b:a2:ad“) // src ile kendimize random bir mac adresi oluşturuyoruz. dst saldıracağımız bilgisayarın mac adresi yani benim laptopun adresi. 
i=IP(src=RandIP(),dst=“192.168.1.2“) // src ile gene random ip oluşturuyoruz ve dst ile laptopun ip adresini veriyoruz.
t=TCP(sport=random.randint(45000,59385),dport=22,flags=[3]) // Bitane TCP paketi oluşturuyoruz, sport bizim kaynak adresimiz, bunu dinamik ip adresleri arasında bir port olarak ayarlıyoruz. dport bizim hedef portumuz. Bu portu ağı nmap ile tarayarak bulabiliriz ama bu konuda direk SSH portunu kullanıcam. TCP-Flag bayrağını 3 olarak veriyorum, yani SYN-ACK üç taraflı el sıkışma.
p=e/i/t // Paketleri birleştiriyoruz
sendp([p]*100) //Paketleri belirlediğimiz sayı kadar hedefe gönderiyoruz
Scapy SYN FLOOD Attack Suricata
Scapy SYN FLOOD Attack

Suricata SYN-FIN kuralları uyarı(alert mode) modundayken, tehditler engellenmez ve yalnızca günlük dosyasına yazılır. Yani kurban tamamen hasar görür ama aynı zamanda admin bilgilendirilmiş olur (hasar derken: hedef bilgisayar gönderilen paketlere cevap veremez ve aşırı şekilde yavaşlar), yani dizüstü bilgisayarımın fanları uçuş moduna geçiyor 🙂 Günlükler (Services> Intrusion Detection> Log) Servisler> Saldırı tespit Sistemi> Günlük Dosyası altında saklanır.

suricata-alert-ack-info
suricata-alert-ack-info

Şimdi kuralları (Emerging Threats SYN-FIN) ‘Alert Modu’ yerine ‘Drop (Engelle)’ moduyla değiştiriyorum ve yeniden saldırıyorum.

suricata-rules-drop-syn-fin
Active Emerging Threats SYN FIN Suricata

Kuralları drop/engelle olarak ayarladıktan, hem uyarıları alıyoruz, aynı zamanda paketler Suricata tarafından engelleniyor.

Ben Remote Server Log/Günlükleri admin bilgisayarına(vmnet1) da yönlendirdiğim için, logları ordada görebilirim. Bunun için Wireshark programı ile Syslog Portunu inceleyebilisiniz.

suricata-syslog-transfer
Suricata Remote Syslog Server

Wireshark’ı Hedef-PC’de açabilir ve paketleri inceleyebilirsiniz. Hedef-PC’de de alert ile drop kuralları arasındaki farkları da görebilirsiniz. Bu konuda OPNsense Güvenlik Duvarı’nda Suricata IDS&IPS kurulumundan bahsettim. Herhangi bir sorunuz varsa, yorum yapmaktan çekinmeyin. Bu arada, bir sonraki makalede Suricata’nın günlüklerini Kibana + Elasticsearch + Logstash ve Filebeat ile grafik ile göstermeyi anlatacağım. Örnek bir ekran görüntüsü aşağıdadır:

elasticsearch-kibana-logstash-filebeat
elasticsearch kibana-logstash filebeat
Rating: 5.0/5. From 4 votes.
Please wait...
Comments

Leave a Comment

Aziz Ozbek

WordPress Expert from Zürich

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close