Skip to content
Siber Vatan

Suricata ile IDS/IPS Uygulaması ve pfSense Güvenlik Duvarı Yapılandırması

Selim Soylu · @Selim-Soylu

Devran Baştemur · @DevranBastemur

Muhammed Hüseyin Özkaya · @mhuseyinozkaya

Bu çalışmada, ağ güvenliğinin iki temel bileşeni olan saldırı tespit/önleme sistemleri ile güvenlik duvarı yapılandırması ele alınmaktadır. İlk bölümde Suricata kullanılarak IDS ve IPS modlarının kurulumu ve test edilmesi, ikinci bölümde ise pfSense üzerinde sanal ağ topolojisinin oluşturulması, alias tanımlanması ve firewall kuralı yazılması adım adım incelenmiştir.

IDS ve IPS Kavramları

IDS (Intrusion Detection System)

  • Ağ trafiğini izler.
  • Şüpheli durumlarda alarm üretir.
  • Pasif bir sistemdir; trafiğin akışına müdahale etmez.

IPS (Intrusion Prevention System)

  • Trafiğin içinden geçer.
  • Tespit ettiği saldırıyı anında engeller.
  • Aktif bir sistemdir.

İpucu

Basit bir benzetmeyle IDS bir güvenlik kamerası, IPS ise bir güvenlik görevlisi gibi çalışır. Kamera olayı kaydeder ve haber verir; görevli olaya doğrudan müdahale eder.

Tespit (Detection) Mantığı

Signature-Based Detection

Bilinen saldırı imzalarına göre çalışır.

Örnek: Nmap taramasının ürettiği belirli SYN paket deseni.

Bu yöntem hızlıdır; ancak veritabanında imzası bulunmayan yeni saldırıları kaçırabilir.

Anomaly-Based Detection

Sistemin normal davranışını öğrenir ve bu davranıştan sapma olduğunda alarm üretir.

Bilinmeyen saldırıları yakalayabilme avantajına sahiptir; buna karşılık yanlış alarm (false positive) oranı yüksektir.

False Positive

Normal trafiğin saldırı olarak değerlendirilmesidir.

Örnek: Çok hızlı ping gönderen bir kullanıcının saldırgan olarak işaretlenmesi.

False Negative

Gerçek bir saldırının sistem tarafından kaçırılmasıdır.

Örnek: Eşik değerlerinin altında kalacak şekilde yavaşlatılmış tarama (slow scan).

Bilgi

Güvenlik duvarı (firewall) trafiği yalnızca kurallara göre filtreler ve saldırının içeriğini yorumlamaz. IDS/IPS ise trafiği analiz ederek saldırıyı tespit eder ve gerektiğinde engeller.

Suricata Kurulumu

Suricata; ağ üzerinde saldırı tespit ve önleme görevlerini yürüten açık kaynaklı bir IDS/IPS yazılımıdır.

bash
sudo apt update
sudo apt upgrade -y
sudo apt install suricata -y

Kurulumun ardından sürüm doğrulaması yapılır ve servis başlatılır.

Suricata sürüm doğrulaması ve servisin başlatılması

Kurulum tamamlandıktan sonra kurallar /etc/suricata/rules/local.rules dosyasına yazılır.

IDS Modu Kullanımı

local.rules dosyasına yazılan alert kuralı

bash
alert tcp any any -> any any (msg:"Nmap Detected"; flags:S; threshold:type threshold, track by_src, count 5, seconds 5; sid:1000005;)

Kural Parametrelerinin İncelenmesi

ParametreAçıklama
alert tcp any any -> any anyHerhangi bir kaynak IP ve porttan, herhangi bir hedef IP ve porta giden tüm TCP trafiğini izler.
msg:"Nmap Detected"Kural tetiklendiğinde günlüklerde (logs) görünecek uyarı mesajıdır.
flags:SYalnızca SYN bayrağı set edilmiş paketleri arar. TCP bağlantısı kurulurken atılan ilk adım budur ve Nmap "SYN Scan" (yarım açık tarama) sırasında yoğun olarak kullanılır.
threshold:type thresholdKuralın aşırı sayıda kayıt üreterek "gürültü" yapmasını engeller.
track by_srcTakibin kaynak IP adresine göre yapılmasını sağlar.
count 5, seconds 5Aynı kaynak IP'den 5 saniye içinde 5 adet SYN paketi gelmesi hâlinde uyarı üretir. Böylece tek bir bağlantı isteğine değil, hızlı ve ardışık isteklere odaklanılır.
sid:1000005Kurala atanan benzersiz kimlik numarasıdır (Signature ID).

Kural Dosyasının Tanımlanması

Suricata'nın yazılan kuralları görebilmesi için /etc/suricata/suricata.yaml dosyasında düzenleme yapılır. rule-files bölümüne dosyaların mutlak yolu verilmelidir; aksi hâlde sistem varsayılan olarak /lib/suricata/rules/ dizinine bakacağı için dosyayı bulamaz.

suricata.yaml dosyasındaki rule-files tanımı

Değişikliklerin geçerli olması için servis yeniden başlatılır.

Suricata servisinin yeniden başlatılması

Testin Gerçekleştirilmesi

tail -f ile /var/log/suricata/fast.log dosyasındaki güncellemeler izlenirken, kurala takılmayan bir ping gönderildiğinde herhangi bir çıktı üretilmez.

Kurala takılmayan ping isteği

Ardından kurala takılacak şekilde bir Nmap taraması başlatıldığında, paketlerin kurala takıldığı log çıktısında gözlemlenir.

Nmap SYN taraması

fast.log dosyasında oluşan Nmap Detected kayıtları

Servisi durdurmak için aşağıdaki komut kullanılabilir:

bash
sudo systemctl stop suricata

IPS Modu Kullanımı

Gelen saldırının yalnızca tespit edilmesi değil, aynı zamanda engellenmesi için kural alert yerine drop aksiyonu ile yazılır.

drop aksiyonu ile yazılan IPS kuralı

bash
drop tcp any any -> any any (msg:"Nmap Scan Blocked"; flags:S; threshold:type threshold, track by_src, count 5, seconds 5; sid:1000005;)

iptables Yapılandırması

NFQUEUE kurallarının eklenmesi

bash
sudo iptables -I INPUT -j NFQUEUE
sudo iptables -I OUTPUT -j NFQUEUE

Bu komutlar işletim sistemine, gelen veya giden hiçbir paketi kendi başına kabul etmemesini veya göndermemesini; tüm paketleri önce Suricata'ya sormasını bildirir. Normalde paketler doğrudan hedefe giderken, bu yapılandırma ile yolun ortasına bir kontrol noktası kurulmuş olur.

  • -I INPUT: Gelen tüm paketlerin kontrol edildiği zincirin en başına bu kuralı ekler.
  • -j NFQUEUE: Paketler için "jump" aksiyonu olarak NFQUEUE'yu kullanır. Paket geldiğinde işletim sistemi karar vermez; paketi kuyruğa atarak Suricata'nın "geçsin" veya "engellensin" (drop) kararını bekler.
  • -I OUTPUT: Bilgisayardan dışarı giden tüm paketler için aynı kuralı uygular ve bu paketleri de Suricata'nın kontrolüne sunar.

Suricata'nın IPS Modunda Başlatılması

Suricata'nın NFQUEUE kuyruğunu dinleyecek şekilde başlatılması

bash
sudo suricata -c /etc/suricata/suricata.yaml -q 0 -S /etc/suricata/rules/local.rules

Buradaki -q 0 parametresi, 0 numaralı NFQUEUE kuyruğunun dinleneceğini ifade eder.

Bu işlemlerin ardından log dosyası izlemeye alınır.

fast.log dosyasının izlenmesi

Ping komutu tanımlı kurala takılmadığı için sorunsuz şekilde çalışmaya devam eder.

Başarılı ping çıktısı

Buna karşılık nmap -sV -A 192.168.239.128 komutu kurala takıldığı için engellenmiştir.

fast.log dosyasında oluşan Drop kayıtları

Sonuçların Değerlendirilmesi

Nmap tarama sonucunda görünen portlar

NSE hataları ve taramanın sonlandırılması

Çıktıdaki "NSE: Script Engine Scan Aborted" ve "fatal error" hatalarından da görüleceği üzere IPS başarıyla çalışmaktadır. Ancak 22 ve 443 numaralı portlar tarama sonucunda görünmektedir. Bunun sebebi kuraldaki count 5, seconds 5 eşik tanımıdır.

Nmap taramayı başlattığında ilk gönderdiği birkaç SYN paketi Suricata'nın 5 paketlik eşiğine takılmamıştır. Suricata bu ilk paketlerin geçmesine izin verdiği için Nmap, portların açık olduğunu o saniyede tespit edebilmiştir. Beşinci paketten itibaren ise tüm trafik engellenmiştir.

Uyarı

Eşik değerleri (count ve seconds) yalnızca gürültüyü azaltmak için değil, aynı zamanda saldırganın elde edebileceği bilgi miktarını belirleyen kritik bir parametre olarak değerlendirilmelidir. Eşik yükseldikçe engellemeden önce dışarı sızan bilgi de artar.


pfSense ve Sanal Ağ Topolojisi

Çalışmada kullanılan güvenlik duvarı dağıtımının resmî adresi: pfsense.org

Ağ Arayüzleri ve Görevleri

Bir güvenlik duvarı üzerinde genellikle üç temel bölge bulunur. Çalışmadaki yapılandırma aşağıdaki gibidir.

WAN (Wide Area Network) – Dış Ağ

  • Adaptör: em0 (Bridged Mod)
  • Tanım: Sistemin "internet kapısı"dır.
  • Görevi: Güvenlik duvarının dış dünyadan (modemden) internet almasını sağlar.
  • Güvenlik mantığı: Varsayılan olarak tüm giriş trafiğine kapalıdır (Default Deny).

LAN (Local Area Network) – İç Ağ

  • Adaptör: em1 (Custom/VMnet3)
  • Tanım: "Güvenli bölge"dir. Kali Linux gibi güvenilir cihazlar buraya bağlanır.
  • Görevi: İçerideki cihazlara IP dağıtmak (DHCP) ve internete çıkışlarını yönetmek.
  • Güvenlik mantığı: İçeriden dışarıya çıkışlar genellikle serbesttir.

DMZ (Demilitarized Zone) – Arındırılmış Bölge

  • Adaptör: em2 (Custom/VMnet4)
  • Tanım: "Yarı güvenli bölge" veya "tampon bölge"dir.
  • Görevi: Dış dünyaya hizmet veren (web sunucusu, mail sunucusu vb.) cihazlar buraya konumlandırılır.
  • Güvenlik mantığı: DMZ'deki bir sunucu ele geçirilse dahi, saldırgan pfSense kuralları sayesinde LAN bölgesine geçemez.

Sanallaştırma Terimleri (VMware Network Modes)

TerimTanımSenaryodaki Yeri
Bridged (Köprü)Sanal makinenin gerçek fiziksel ağa bir kablo ile bağlı gibi davranmasıdır.pfSense'in WAN bacağında kullanılmıştır; modemden doğrudan IP alınmıştır.
NATSanal makinelerin ana bilgisayarın IP'sini kullanarak internete çıkmasıdır.pfSense'in kendisi bir NAT cihazı gibi davranarak Kali'yi internete çıkarır.
Custom / Host-OnlyDış dünya ile bağı olmayan, yalnızca sanal makinelerin kendi aralarında konuştuğu izole ağdır.LAN ve DMZ bacaklarını izole etmek için kullanılmıştır.

Temel Çalışma Mekanizmaları

NAT (Network Address Translation)

Tek bir IP adresini (WAN) kullanarak arkadaki onlarca cihazın (LAN/DMZ) internete çıkmasını sağlayan teknolojidir. Paketler dışarı çıkarken kaynak IP, pfSense'in WAN IP'si ile değiştirilir.

Firewall Rules (Kural Mantığı)

Güvenlik duvarı paketleri incelerken üç unsura bakar: kaynak (source), hedef (destination) ve port.

  • Giriş (Inbound): Dışarıdan içeri gelmeye çalışan trafik (genellikle yasaktır).
  • Çıkış (Outbound): İçeriden dışarı gitmeye çalışan trafik (genellikle serbesttir).

pfSense Kurulum Sihirbazı

Adım 1 – Genel Bilgiler

pfSense Setup genel bilgiler ekranı

1. Hostname (Cihaz Adı)

Güvenlik duvarına ağ üzerinde verilen tekil isimdir. Varsayılan olarak pfSense gelir. Kurumsal ortamlarda merkez-firewall veya edge-gw gibi isimler tercih edilir. Ağdaki cihazlar zaman zaman birbirlerini IP yerine bu isimle tanır.

2. Domain (Alan Adı)

Cihazın dâhil olduğu ağ grubunun adıdır. Görselde home.arpa kullanılmıştır; bu, ev ağları için standart ve güvenli bir yerel domain adıdır.

Uyarı

.local uzantısının kullanılması önerilmez; çünkü bu uzantı mDNS (Apple AirPrint vb.) servisleriyle çakışabilir. Bunun yerine .lan veya .home.arpa çok daha stabildir.

3. Primary ve Secondary DNS Servers

İnternetteki site isimlerini (örn. google.com) IP adreslerine (142.250.185.78) çeviren rehberlerdir.

  • Primary: 8.8.8.8 (Google DNS)
  • Secondary: 1.1.1.1 (Cloudflare DNS)

pfSense varsayılan olarak bir DNS Resolver gibi davranır. Bu alanlar boş bırakılsa dahi internet erişimi sağlanır; ancak güvenilir DNS sunucularının tanımlanması her zaman bir yedek plan (fallback) oluşturur.

4. Override DNS

WAN arayüzünden (modemden) gelen otomatik DNS bilgilerinin kabul edilip edilmeyeceğini belirler.

  • İşaretli olursa (varsayılan): pfSense, tanımlanan DNS'lerin yanı sıra modemin servis sağlayıcısından aldığı DNS'leri de listeye ekler.
  • İşaretli olmazsa: pfSense yalnızca statik olarak girilen DNS'leri kullanır. Bu yöntem, servis sağlayıcısının (ISP) DNS kısıtlamalarından kaçınmak için etkilidir.

Adım 2 – Zaman Sunucusu Bilgileri

Time Server Information ekranı

1. Time Server Hostname (NTP Sunucusu)

pfSense'in gerçek dünya saatiyle senkronize olmak için kullandığı internet adresidir. Görseldeki 2.pfsense.pool.ntp.org adresi, dünya çapındaki binlerce zaman sunucusundan birine bağlanarak yüksek hassasiyetle doğru saati çeker. Bu sisteme NTP (Network Time Protocol) adı verilir.

2. Timezone (Saat Dilimi)

Cihazın hangi coğrafi bölgeye göre zamanı göstereceğini belirler. Türkiye için Europe/Istanbul seçilmelidir; Etc/UTC seçili bırakılırsa sistem saati Türkiye'den 3 saat geride görünür.

Adım 3 – WAN Arayüzü Yapılandırması

Configure WAN Interface ekranı

1. Configuration Type: DHCP

pfSense'in internete nasıl bağlanacağını belirler. DHCP seçilmesi sayesinde pfSense, üst ağdaki modemden (veya VMware'den) otomatik olarak bir IP adresi alır. Statik bir IP kullanılacak olsaydı bu alan Static yapılıp adresin elle girilmesi gerekirdi.

2. MTU (Maximum Transmission Unit)

Bir seferde gönderilebilecek en büyük veri paketinin boyutudur. Varsayılan değer genellikle 1500 byte'tır. İnternet bağlantısında kopmalar yaşanması hâlinde paket boyutunu küçültmek için kullanılır; laboratuvar ortamında boş bırakılarak sistemin otomatik belirlemesine izin verilmiştir.

3. RFC1918 Private Networks

Yerel IP adreslerinden (192.168.x.x gibi) WAN bacağına gelen trafiği engeller. Bu seçenek normalde güvenlik amacıyla işaretlenir. Ancak çalışmadaki pfSense zaten bir yerel ağın (modemin) arkasında bulunduğu için, ana bilgisayardan erişim sağlanabilmesi adına bu engel kaldırılmıştır.

4. Block Bogon Networks

Henüz kimseye atanmamış, sahipsiz veya sahte IP adreslerinden gelen trafiği engeller. Güvenlik duvarının sahte kaynaklı paketlerle yorulmaması ve saldırganların kimlik gizlemesinin zorlaştırılması amacıyla Bogon ağları bloklanmıştır.

Bilgi

MAC Address yalnızca servis sağlayıcının aboneyi MAC adresinden tanıması durumunda (spoofing) kullanılır. MSS, MTU ile ilgili ince bir ayardır. PPPoE / PPTP ise eski tip çevirmeli bağlantı veya eski VPN protokollerine ait ayarlardır; DHCP kullanıldığı için bu alanlar devre dışı kalır.

Adım 4 – LAN Arayüzü ve Yönetici Parolası

Configure LAN Interface ekranı

Bu bölümde LAN IP adresi 192.168.2.1 olarak tanımlanmıştır. Değişikliğin gerekçesi şudur: pfSense'in hem WAN hem de LAN bacağı aynı adres bloğuna sahip olursa yönlendirme (routing) işlemi yapılamaz ve paketler "içeri mi, dışarı mı gideceğim" belirsizliğinde takılıp kalır. Bu nedenle iç ağ 192.168.2.1 yapılarak trafik izole edilmiştir.

Change admin Account Password ekranı

Firewall / Aliases (Takma Adlar)

Ağ yönetiminde onlarca kural yazarken aynı IP adreslerinin veya portların defalarca kullanılması gerekir. Aliases, bu verileri tek bir etiket altında toplayarak hem hata payını düşürür hem de kural yönetimini önemli ölçüde hızlandırır.

Aliases Mantığı Neden Önemlidir?

Normal koşullarda bir kuralın hedef kısmına 192.168.1.50, 192.168.1.51 ve 192.168.1.52 yazılması gerekebilir. Bu listeye beş IP daha eklendiğinde, yazılan tüm kuralların tek tek güncellenmesi gerekir.

Aliases ile bu IP'ler Muhasebe_PC adında bir grupta toplanır ve kurallarda yalnızca bu isim kullanılır. Listeye yeni bir bilgisayar eklendiğinde sadece alias'ın güncellenmesi yeterlidir; tüm kurallar otomatik olarak güncellenir.

Aliases Sekmelerinin Teknik Detayları

SekmeKullanım AmacıÖrnek Senaryo
IPTekil cihazlar veya web siteleri.Sosyal medya sitelerinin IP adreslerini engellemek.
PortsServis bazlı port grupları.Yalnızca web trafiğine (80, 443) izin veren bir grup oluşturmak.
URLsDış kaynaklı hazır listeler.İnternetten otomatik güncellenen zararlı IP listelerini sisteme çekmek.
AllGenel bakış.Sistemdeki tüm tanımlı kısaltmaları tek ekranda görmek.

Uygulama: IP ve Host Bazlı Alias Oluşturma

Adım 1: Yönetim Paneli

Firewall menüsünden Aliases sekmesine gelindiğinde sistemdeki mevcut takma adlar görüntülenir. Bu aşamada henüz kural yazılmamış, yalnızca kurallarda kullanılacak "nesne" tanımlanmıştır.

Firewall / Aliases / IP listesi

Adım 2: Parametrelerin Belirlenmesi

Yeni bir takma ad eklenirken pfSense üç temel bilgi ister:

  1. Name (İsim): Sistem bu ismi kuralın içinde değişken olarak kullanır (örn. yasak_siteler).
  2. Type (Tür): Burada Host(s) seçilmesi kritiktir. pfSense arka planda girilen alan adlarını (FQDN) belirli aralıklarla çözümler ve IP'leri güncel tutar.
  3. Values (Değerler): Takma adın içeriğini oluşturur.

Firewall / Aliases / Edit ekranı

Görselde görüldüğü üzere trendyol.com ve oys.sibervatan.org adresleri yasak_siteler ismi altında gruplanmıştır. pfSense bu sitelerin değişen IP adreslerini kullanıcı adına takip edecektir.

Firewall / Rules (Kurallar)

Firewall kuralları, ağ trafiğinin geçişine izin veren veya engelleyen talimatlar listesidir. pfSense'de kurallar yukarıdan aşağıya (top-down) prensibiyle çalışır; bir paket listedeki ilk eşleşen kurala takılır ve diğer kurallara bakılmaz.

Arayüz Bileşenleri ve Fonksiyonları

  • States (Durumlar): Kural üzerinden o an geçen aktif bağlantı sayısını ve toplam veri miktarını gösterir (örn. 0/18 KiB).
  • Protocol (Protokol): Kuralın hangi iletişim protokolü (TCP, UDP, ICMP vb.) için geçerli olduğunu belirtir. * işareti "tümü" anlamına gelir.
  • Source (Kaynak): Trafiğin nereden geldiğini belirtir.
  • Port: Kaynak veya hedef trafiğin hangi port üzerinden aktığını gösterir.
  • Destination (Hedef): Trafiğin nereye gitmek istediğini belirtir. Engelleme kuralında hedef kısmına önceden hazırlanan alias (yasak_siteler) eklenecektir.
  • Gateway (Geçit): Trafiğin hangi internet çıkış noktasını kullanacağını belirler; genellikle varsayılan bırakılır.
  • Schedule (Takvim): Kuralın yalnızca belirli gün ve saatlerde aktif olmasını sağlar.
  • Description (Açıklama): Kuralın amacını belirten yönetici notudur.

"Default Deny" Mantığı

Uyarı

WAN arayüzünde, aksi belirtilmedikçe (bir Pass kuralı eklenmedikçe) dışarıdan gelen tüm bağlantılar pfSense tarafından otomatik olarak engellenir. Bu, ağın dış saldırılara karşı kapalı olduğunu gösteren temel güvenlik politikasıdır.

Kural Yönetim Araçları

  • Add (Yukarı/Aşağı Ok): Listenin en başına veya en sonuna yeni bir kural eklemeyi sağlar.
  • Separator (Ayırıcı): Kurallar arasına başlıklar ekleyerek listeyi görsel olarak organize etmeye yardımcı olur.

Uygulama: Firewall Kuralı Oluşturma

Temel Aksiyon ve Arayüz Seçimi

Action (Eylem): En kritik seçimdir. Uygulamada Block seçilmiştir.

  • Pass: Trafiğe izin verir.
  • Block: Trafiği sessizce durdurur; paketi çöpe atar.
  • Reject: Trafiği reddeder ve göndericiye "erişilemez" bilgisi gönderir.

Interface (Arayüz): Kuralın hangi kapıda çalışacağını belirler. LAN seçilmesi, iç kullanıcıların engellenmesi anlamına gelir.

Protocol: Hangi veri türünün engelleneceğini belirler. Any seçilerek hedefe giden tüm trafik (web, FTP, DNS vb.) kapsama alınmıştır.

Kaynak ve Hedef Belirleme (Alias Entegrasyonu)

Firewall / Rules / Edit ekranı

  • Source (Kaynak): Trafiği başlatan taraftır. Any seçilerek ağdaki tüm cihazlar kurala dâhil edilmiştir.
  • Destination (Hedef): Alias'ın kullanıldığı alandır. Sol taraftaki açılır menüden Single Host or Alias seçilir; sağ taraftaki kutucuğa daha önce oluşturulan yasak_siteler ismi yazılır.
  • Log: "Log packets..." seçeneği işaretlenirse, bu kurala takılan her erişim girişimi pfSense kayıtlarına işlenir. Böylece kimin ne zaman yasaklı siteye girmeye çalıştığı görülebilir.

Kuralın Sağladığı Sonuç

Mantık: Eğer herhangi bir cihaz (Source: Any), yasaklı siteler listesindeki (Destination: yasak_siteler) bir adrese gitmeye çalışırsa, bu trafiği engelle (Action: Block).

İpucu

Kural kaydedilip ana ekrandan Apply Changes butonuna basıldığı andan itibaren, listedeki sitelere erişim tamamen kesilir. İleride listeye yeni bir site eklenmek istenirse kuralı değiştirmeye gerek kalmaz; yalnızca Aliases menüsünden listenin güncellenmesi yeterlidir.

Firewall'da Log İnceleme ve Sistem Doğrulaması

Yazılan güvenlik duvarı kurallarının doğruluğunu test etmek ve ağdaki anlık trafik hareketlerini izlemek için pfSense üzerindeki Status > System Logs > Firewall arayüzü kullanılmıştır. Bu arayüz, ağ yöneticilerine üç farklı izleme yöntemi sunar.

pfSense Log Görünüm Türleri

  • Normal View (Normal Görünüm): Log kayıtlarının statik bir liste hâlinde sunulduğu temel ekrandır. Geçmişe dönük analizler yapmak ve "Advanced Log Filter" kullanılarak belirli bir IP, port veya kurala göre detaylı aramalar gerçekleştirmek için kullanılır.
  • Dynamic View (Dinamik Görünüm): Ağ trafiğinin gerçek zamanlı olarak izlendiği ekrandır. Sayfa yenilemeye gerek kalmadan güvenlik duvarına çarpan veya geçen her paket anlık olarak ekrana yansır. Aktif bir siber saldırı veya anlık bağlantı kopmaları bu sekmeden takip edilir.
  • Summary View (Özet Görünüm): Günlük kayıtlarının istatistiksel verilere ve pasta grafiklerine dönüştürüldüğü ekrandır. Trafiğin yüzde kaçının hangi arayüzden (WAN/LAN) geldiği, en çok engellenen IP adresleri ve en çok kullanılan protokoller gibi yönetimsel raporlar buradan elde edilir.

Log Parametrelerinin Anlamları

ParametreAçıklama
Action (Eylem)Güvenlik duvarının pakete uyguladığı işlemdir. Yeşil tik (Pass) izin verildiğini, kırmızı çarpı (Block/Drop) ise paketin engellendiğini ifade eder.
Time (Zaman)İşlemin gerçekleştiği zaman damgasıdır.
Interface (Arayüz)Trafiğin pfSense üzerinde hangi ağ bacağından geldiğini belirtir (dış ağ için WAN, iç ağ için LAN).
Rule (Kural)İşlemin hangi güvenlik kuralı baz alınarak yapıldığını gösterir. Sistem varsayılanı "Default deny", yönetici tarafından eklenen kural ise "USER_RULE" olarak görünür.
Source (Kaynak)Trafiği başlatan istemcinin IP adresi ve çıkış portudur.
Destination (Hedef)İstemcinin ulaşmaya çalıştığı sunucunun IP adresi ve varış portudur.
Protocol (Protokol)İletişimde kullanılan ağ protokolüdür (TCP, UDP, ICMP vb.).

Uygulama Log Analizi ve Sonuç

Yazılan yasak_siteler kuralının test edilmesi amacıyla Kali Linux istemcisi üzerinden hedeflenen dış web sunucusuna (oys.sibervatan.org) bağlantı isteği gönderilmiştir.

curl ile engellenen bağlantı denemesi

İşlem sonrasında loglar üzerinde istemciye ait IP adresi hedeflenerek filtreleme yapılmış ve aşağıdaki olay kaydı tespit edilmiştir.

Firewall log kayıtlarında USER_RULE ile engellenen paketler

Tespit edilen olay kaydı:

AlanDeğer
ActionBlock (Engellendi)
InterfaceLAN
RuleUSER_RULE
Source192.168.2.10:43012
Destination89.252.146.55:80
ProtocolTCP:S (TCP SYN İsteği)

Olay özeti ve değerlendirme: İç ağda (LAN) bulunan 192.168.2.10 IP adresli Kali Linux istemcisi, dış ağdaki 89.252.146.55 IP adresli web sunucusuna TCP (Port 80) üzerinden bir bağlantı başlatma (SYN) isteği göndermiştir. Ancak bu istek, pfSense güvenlik duvarına ulaştığında sistem yöneticisi tarafından özel olarak tanımlanmış olan "Yasaklı Siteler" kuralına (USER_RULE) takılmıştır. Kural gereği pfSense, paketin dışarı çıkmasına izin vermeyerek bağlantıyı anında sonlandırmıştır.


Nmap ve Güvenlik Cihazlarını Atlatma Teknikleri

Nmap; ağ keşfi, servis keşfi, işletim sistemi keşfi ve güvenlik denetimi amacıyla kullanılan ücretsiz ve açık kaynaklı bir araçtır. Bu keşfi gerçekleştirebilmek için hedef makineye ham (raw) TCP, UDP ve ICMP paketleri gönderir ve hedefin bu paketlere verdiği tepkiye göre bir değerlendirme yapar.

Nmap güçlü bir araç olmakla birlikte, bu gücün büyük bölümü kullanıcının bilgi birikimi ve tecrübesinden gelir. Nmap varsayılan ayarlarıyla oldukça "gürültülü" çalışır ve hedefteki güvenlik duvarı, IDS, IPS ve benzeri güvenlik araçları tarafından kolaylıkla fark edilip engellenebilir. Bu nedenle kullanıcının, güvenlik cihazlarında uyarı oluşturmayacak şekilde çalışması gerekir.

Nmap, güvenlik cihazlarını atlatmak için çeşitli tarama teknikleri ve parametreler barındırır. Kullanıcı bu parametreler aracılığıyla arka planda çalışan güvenlik cihazlarının nasıl yapılandırıldığını anlayabilir ve metodolojisini buna göre güncelleyebilir.

SYN Scan (-sS)

  • Bu tarama tekniği half-open (yarım açık) tarama olarak da bilinir. Hedef servis ile doğrudan üçlü el sıkışma (3-way handshake) gerçekleştirilmez; bunun yerine hedef servis hakkında bilgi sızdırılmaya çalışılır. Tam bir TCP bağlantısı kurulmadığı için basit veya eski sistemlerde servisin kendi log kayıtlarına düşmez.
  • Nmap, bağlantı kurmak üzere SYN bayrağına sahip bir paket gönderir. Hedefte bir servis mevcutsa SYN-ACK bayrağına sahip bir paketle yanıt verir. Tam bu aşamada Nmap, RST paketi göndererek bağlantıyı sonlandırır.

SYN Scan (half-open) akışı

Bilgi

TCP Null, FIN ve Xmas taramaları, RFC 793 standardının tasarımsal açığını Unix/Linux sistemlerde kullanan tekniklerdir. Windows makineler bu standardı tam olarak uygulamadığı için bu üç tarama türü Windows cihazlarda çalışmaz; servis açık da olsa kapalı da olsa RST döner ve Nmap sonucu ayırt edemez.

TCP Null (-sN)

  • Nmap hedefe hiçbir bayrağı ayarlanmamış boş bir paket gönderir. Hedef servis açıksa pakete ne yanıt vereceğini bilemez ve paketi düşürür; servis kapalıysa doğrudan RST paketi döner.

FIN Scan (-sF)

  • Kurulmuş bir bağlantı yokken Nmap doğrudan FIN paketi göndererek bağlantıyı sonlandırma isteği iletir.
  • Durum bilgisi tutmayan (stateless) basit güvenlik duvarları, mevcut bir bağlantının sonlandığını varsayarak paketi geçirebilir. Nmap da bu tepkiye göre servis hakkında bilgi edinir.

Xmas Scan (-sX)

  • Bu tarama türünde Nmap, standart yollardan paket göndermek yerine FIN, PSH ve URG bayraklarının birlikte ayarlandığı bozuk bir paket gönderir. Böylece basit yapılandırılmış ve durum bilgisi tutmayan güvenlik cihazlarını atlayarak hedeften bilgi sızdırmaya çalışır.
  • Hedefte bir servis mevcutsa bu paketler çoğunlukla bozuk kabul edilip görmezden gelinir; hiçbir servis mevcut değilse hedeften RST paketi döner ve servisin durumu tespit edilebilir.

NULL, FIN ve Xmas taramalarında TCP bayrak kombinasyonları

Port Scan (-Pn)

  • Bu parametre kullanılmadığında Nmap, taramaya başlamadan önce hedefe bir ICMP (ping) paketi göndererek sistemin ayakta olup olmadığını kontrol etmek ister. Ancak Windows sistemler veya güvenlik duvarı aktif olan cihazlar bu ICMP paketini düşürerek yanıt vermez. Geri dönüş alamayan Nmap, sistemin kapalı olduğunu varsayar, port taraması yapmaz ve hostu kapalı olarak gösterir.
  • Host açık olsa ve üzerinde servisler çalışıyor olsa dahi, Nmap sistem kaynaklarını verimli kullanacak şekilde programlandığı için yanıt alamadığı hedefte servis taraması yapmaz.
  • -Pn parametresi ile Nmap, ICMP paketi göndermeden hedefin açık olduğunu kabul eder ve doğrudan port taramasına geçer.

-Pn parametresi ile ICMP engellemesinin atlatılması

Fragmentation (-f ve --mtu)

  • Maximum Transmission Unit (MTU), ağda gönderilen bir paketin boyutunun en fazla ne kadar olabileceğini belirleyen birimdir. Ethernet protokolünde bir paketin boyutu başlık bilgileriyle birlikte genellikle 1500 byte'tır.
  • Nmap, paketleri 1500 byte olarak göndermek yerine daha küçük parçalara bölerek hedefteki güvenlik cihazlarını atlatmaya çalışır.
  • Hedefteki güvenlik cihazları yeterince gelişmiş değilse bu parçalanmış paketleri yeniden birleştirip analiz edemeyebilir ve paketleri kabul edebilir.

--mtu ve -f parametreleri temelde aynı fragmentation işlemini yapsa da veri üzerindeki kontrol düzeyi bakımından farklılık gösterir.

Karşılaştırma-f--mtu
EsneklikDüşükYüksek
Parçalama boyutuOtomatik olarak yapılırBelirtilen boyuta göre yapılır
Kullanım kolaylığıHızlı ve pratiktir, basit senaryolar için yeterlidirSpesifik senaryolar için idealdir
GereksinimEkstra değer istemez8'in katı olan bir değer girilmelidir

Paketlerin parçalanması ve IDS/IPS yeniden birleştirme sorunu

Rate Limit ve Decoy IP

  • Güvenlik cihazları yalnızca paketin içeriğine bakmaz; Rate Limit adı verilen bir mekanizma ile aynı IP adresinden saniyede gelen paket sayısını ölçerek sistemin saldırı altında mı yoksa normal trafikte mi olduğunu değerlendirir.
  • Saldırgan rate limit eşiğine takılırsa hedef sistem yanıt vermeyi bırakabilir ve bağlantıyı kalıcı olarak reddedebilir.
  • Nmap'in varsayılan olarak desteklediği altı farklı zamanlama (tarama) modu bulunur.
ModAçıklama
-T0 (Paranoid)En yavaş tarama modudur. IDS cihazlarını atlatmak için dakikada 1 paket gönderir.
-T1 (Sneaky)Yine IDS cihazlarını atlatmak amacıyla kullanılır.
-T2 (Polite)Kullanılan bant genişliğini ve hedef üzerindeki yükü azaltır.
-T3 (Normal)Varsayılan tarama modudur; ne çok hızlı ne de çok yavaştır.
-T4 (Aggressive)Modern ve paket kaybının olmadığı güvenilir ağlarda tercih edilir. Hızlıdır, ancak güvenlik cihazları tarafından kolayca tespit edilebilir.
-T5 (Insane)En hızlı moddur. Hız uğruna stabiliteden ödün verilebilir; genellikle lokal ağlarda kullanılır.

Nmap, paketlerin başlık bilgisine sahte (decoy) kaynak IP adresleri ekleyerek rate limit mekanizmasını atlatmak için Decoy desteğine de sahiptir.

bash
nmap -D 10.10.10.10,192.168.0.10,192.168.1.100 hedef_ip
nmap -D RND:10 hedef_ip

İkinci kullanımda rastgele 10 IP adresi üretilir ve hedefe bu adresler üzerinden de paket gönderilir.

Rate limit ve decoy IP kullanımı

Uyarı

Bu bölümde anlatılan teknikler yalnızca izinli sızma testi ve laboratuvar ortamları için geçerlidir. Sahibinden izin alınmamış sistemlere yönelik tarama yapılması hukuki sorumluluk doğurur.


Kaynakça

Suricata ile IDS/IPS Uygulaması ve pfSense Güvenlik Duvarı Yapılandırması İçin Kaynakça