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.
sudo apt update
sudo apt upgrade -y
sudo apt install suricata -yKurulumun ardından sürüm doğrulaması yapılır ve servis başlatılır.

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

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
| Parametre | Açıklama |
|---|---|
alert tcp any any -> any any | Herhangi 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:S | Yalnı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 threshold | Kuralın aşırı sayıda kayıt üreterek "gürültü" yapmasını engeller. |
track by_src | Takibin kaynak IP adresine göre yapılmasını sağlar. |
count 5, seconds 5 | Aynı 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:1000005 | Kurala 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.

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

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.

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


Servisi durdurmak için aşağıdaki komut kullanılabilir:
sudo systemctl stop suricataIPS 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 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ı

sudo iptables -I INPUT -j NFQUEUE
sudo iptables -I OUTPUT -j NFQUEUEBu 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ı

sudo suricata -c /etc/suricata/suricata.yaml -q 0 -S /etc/suricata/rules/local.rulesBuradaki -q 0 parametresi, 0 numaralı NFQUEUE kuyruğunun dinleneceğini ifade eder.
Bu işlemlerin ardından log dosyası izlemeye alınır.

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

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

Sonuçların Değerlendirilmesi


Çı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)
| Terim | Tanım | Senaryodaki 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. |
| NAT | Sanal 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-Only | Dış 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

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

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ı

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ı

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.

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ı
| Sekme | Kullanım Amacı | Örnek Senaryo |
|---|---|---|
| IP | Tekil cihazlar veya web siteleri. | Sosyal medya sitelerinin IP adreslerini engellemek. |
| Ports | Servis bazlı port grupları. | Yalnızca web trafiğine (80, 443) izin veren bir grup oluşturmak. |
| URLs | Dış kaynaklı hazır listeler. | İnternetten otomatik güncellenen zararlı IP listelerini sisteme çekmek. |
| All | Genel 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.

Adım 2: Parametrelerin Belirlenmesi
Yeni bir takma ad eklenirken pfSense üç temel bilgi ister:
- Name (İsim): Sistem bu ismi kuralın içinde değişken olarak kullanır (örn.
yasak_siteler). - 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.
- Values (Değerler): Takma adın içeriğini oluşturur.

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)

- 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_sitelerismi 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ı
| Parametre | Açı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.

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

Tespit edilen olay kaydı:
| Alan | Değer |
|---|---|
| Action | Block (Engellendi) |
| Interface | LAN |
| Rule | USER_RULE |
| Source | 192.168.2.10:43012 |
| Destination | 89.252.146.55:80 |
| Protocol | TCP: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.

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.

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.
-Pnparametresi ile Nmap, ICMP paketi göndermeden hedefin açık olduğunu kabul eder ve doğrudan port taramasına geçer.

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 |
|---|---|---|
| Esneklik | Düşük | Yüksek |
| Parçalama boyutu | Otomatik olarak yapılır | Belirtilen boyuta göre yapılır |
| Kullanım kolaylığı | Hızlı ve pratiktir, basit senaryolar için yeterlidir | Spesifik senaryolar için idealdir |
| Gereksinim | Ekstra değer istemez | 8'in katı olan bir değer girilmelidir |

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.
| Mod | Açı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.
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.

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
- Suricata Resmî Dokümantasyonu
- Suricata Kural Yazımı (Rules Format)
- pfSense Documentation
- pfSense Firewall Aliases
- Nmap Reference Guide
- Nmap: Port Scanning Techniques
- Nmap: Firewall/IDS Evasion and Spoofing
- Nmap: Timing and Performance
- pfSense Resmî Sitesi
- RFC 793 – Transmission Control Protocol
- Netfilter / iptables Documentation

