Linux’ta Saldırı Tespiti: Netstat ve Diğer Ağ İzleme Araçları
Bilgisayar korsanlarının her geçen gün daha da sofistike hale geldiği bir dünyada, güvenlik profesyonelleri için ağ trafiğini izlemek ve potansiyel tehditleri tespit etmek artık bir lüks değil, bir zorunluluk. Linux sistemlerinde siber saldırılara karşı durmanın en etkili yolu, güçlü ağ izleme araçlarıyla donanmaktır. Bu yazıda, ağ güvenliğinin bel kemiği sayılan netstat, Snort ve Zeek gibi araçların dünyasına adım atacağız ve siber tehditlere karşı nasıl daha hazırlıklı olabileceğimizi keşfedeceğiz.
Netstat
Netstat Nedir?
Netstat, ‘network statistics’ teriminin kısaltmasıdır. Netstat kullanarak ağ bağlantılarını, servislerin kullandığı portları, yönlendirme tablolarını ve ağ arayüzü istatistiklerini öğrenebiliriz. Bu sayede ağımızdaki bağlantı problemlerini ve olası anomalileri analiz edebiliriz.Kullanıcıya şu üç konuda bilgi verir:
- Aktif Ağ Bağlantıları: Cihazınızın diğer cihazlar ile olan bağlantısını gösterir.
- Yönlendirme Tabloları: Ağ trfiğinin nasıl yönlendirildiğini gösterir.
- Ağ Arayüzleri: Ağda bulunan cihazlar ve bunların aktiviteleri hakkında bilgi verir.
Temel Netstat Komutları:
-
- netstat -a: Tüm etkin bağlantıları gösterir.
-
- netstat -r: Yönlendirme tablosunu gösterir.
-
- netstat -i: Ağ arayüzü bilgilerini gösterir.
-
- netstat -at: Tüm etkin TCP bağlantılarını gösterir.
-
- netstat -au: Tüm etkin UDP bağlantılarını gösterir.
-
- netstat -l: Sadece dinleyen portları gösterir.
-
- netstat -s: Her protokol için özet istatistikleri gösterir.
Netstat ile Sorun Yakalama:
-
- Kullanılan portları kontrol edin: netstat -tunlp komutunu kullanarak hangi işlemlerin hangi portları kullandığını görürüz.
-
- Bir portu hangi prosesin kullandığını öğrenin: netstat -anp | grep :80 komutunu kullanarak belirttiğimiz portta kurulan bağlantıları görürüz.
- Başarısız bağlantı denemelerini analiz edin: TIME_WAIT veya CLOSE_WAIT durumundaki portlara bakarak bağlantı problemi olan portları görürüz.
SNORT
Snort Nedir?
Kullanılan Snort Versiyonu 3.1.8Snort, açık kaynak kodlu ve kural-imza mimarisiyle çalışan bir saldırı tespit sistemdir (IDS/IPS). Ağ trafiği gerçek zamanlı izleyerek belirttiğimiz kurallara ve imzalara göre zararlı paketleri tespit eder. Ağ trafiğini izlediği sırada zararlı bir paket bulması durumunda kullanıcıya uyarı verir. Snort’un bir ağ üzerindeki olayları gözlemleyebilmesi için ağ üzerinde iletilen tüm paketleri gözlemlemesi gereklidir. Ancak bu çalışma prensibi yüzünden yüksek hacimli bir trafiği izlemeye uygun değildir.
Snort Çalışma Modları:
Snort, 3 ayrı modda çalışmaktadır. Bunlar ise, paket izleyici modu, paket loglama modu ve ağ sızma tespit sistemi modudur.
-
- Paket İzleme Modu (Packet Sniffing): Bu mod, ağdan yakalanan paketleri olduğu gibi ekrana yansıtır ve kullanıcıya tcpdump formatında sunar. Bu işlemi gerçekleştirmek için kullanılan komut “snort -i eth0” şeklindedir, böylece ağ trafiği anlık olarak izlenebilir.
-
- Paket Loglama Modu: Ağdan alınan tüm paketler, belirlenen bir dizine kaydedilerek daha sonra incelenmek üzere saklanır. Bu modda, “snort -i eth0 -l /var/log/snort” komutu kullanılır, ve tüm trafik verileri, belirttiğiniz dizinde muhafaza edilir.
-
- Ağ Sızma Tespit/Engelleme Sistemi Modu (NIDS/NIPS): Snort’un en gelişmiş ve karmaşık modu olan bu mod, ağı dinleyerek, önceden tanımlanmış güvenlik kurallarını uygular. “snort -i eth0 -c /etc/snort/snort.lua” komutu, Snort’un belirlenen ağ arayüzünü izlemesini sağlar ve snort.lua dosyasında tanımlanmış kurallar doğrultusunda potansiyel tehditleri tespit eder veya engeller.
-
- Alert (Alarm): Belirlenen kurallara uyan paketleri tespit ederek uyarı verir.
- Pass (Geçir): Gelen paketleri dikkate almadan atlar.
- Log (Günlükleme): Gelen paketlerden kurallara uyanları kaydeder ancak uyarı vermez.
- Activate (Etkinleştir): Önce bir alarm verir, ardından bir kuralı etkinleştirir.
- Dynamic (Dinamik): Active’den gelen kuralı bekler ve etkinleştirildiğinde kuralları uygular.
- Drop (Düşür): Paketi düşürür ve log kaydeder.
- Reject (Reddet) : Paketi engeller ve log kaydeder.
- Sdrop (Günlüklerden Düşür): Paketi düşürür ancak log kaydı yapmaz.
Snort Mimarisi:

Snort İle Kullanılan Eklentiler:
-
- BARNYARD: Snort’un ağ trafiğini kaydederken, bu verileri düzenli bir şekilde veri tabanına aktaran bir eklentidir.
- ADODB: Veri tabanı ile BASE arasındaki bağlantıyı sağlayarak, güvenli ve sorunsuz veri akışı sunar.
- BASE: Barnyard’ın veri tabanına yazdığı Snort kayıtlarını, kullanıcıya grafiksel tablolar ve bir web arayüzü ile sunar.
- OINKMASTER: Snort kurallarını düzenlemeyi kolaylaştıran bir araçtır.
- PULLEDPORK: Snort kuralları güncellendiğinde, sistemdeki kuralları otomatik olarak günceller.
- SNORTSAM: Güvenlik duvarında otomatik IP engellemesi yapmayı sağlayan bir eklentidir.
- ACID: Saldırı verilerini analiz edip, kullanıcıya PHP tabanlı bir web arayüzü ile sunan bir araçtır.
- SNORBY: Ruby on Rails ile geliştirilmiş, güvenlik durumunu izlemeye yarayan bir web uygulamasıdır, popüler IDS’lerle uyumlu çalışabilir.
ZEEK(BRO)
Zeek Nedir?
Zeek, açık kaynak kodlu ağ trafiği izleme ve analiz etme aracıdır. Tüm ağ trafiğini analiz edebilir ve şüpheli aktiviteleri tespit edebiliriz. Real-time veya offline analiz yapabilir.Zeek kurulumu ve çalışma örneği:
Öncelikle, Zeek’in çalışması için gereken bağımlılıkları indirmeliyiz. İndirmemiz gereken bağımlılıklar şunlardır:
-
- Libpcap
- OpenSSL libraries
- BIND8 library
- Libz
- Bash (for ZeekControl)
- Python 3.5 or greater
sudo apt-get install cmake make gcc g++ flex bison libpcap-dev libssl-dev python3 python3-dev swig zlib1g-dev

Zeek Kurulumu:
Aşağıdaki komutları sırasıyla terminalde çalıştırın:1) git clone –recursive https://github.com/zeek/zeek

2) cd zeek

3) ./configure

4) make

5) sudo make install

Zeek Çalıştırılması ve Durdurulması:
ZeekControl kabuğunu başlatmak için “/usr/local/zeek/bin” dizinine gidin. Ardından “./zeekctl” komutunu çalıştırın.

Kabuğu ilk defa kullanacağımız için, ZeekControl yapılandırmasının ilk kurulumunu gerçekleştirelim:
[ZeekControl] > install

Zeek’i başlatmak için:
[ZeekControl] > start

Zeek’i durdurmak için:
[ZeekControl] > stop

Zeek Loglarına Göz Atma:
Zeek loglarına göz atmak için, logların bulunduğu dizine gitmek üzere şu komutu girin:
cd /usr/local/zeek/logs/current

current klasörü içerisinde farklı türde birçok log dosyası mevcuttur.
Örneğin, http.log dosyasının içeriğine bakmak için şu komutu kullanabilirsiniz:
cat http.log

Bu yazı boyunca, siber güvenlik dünyasının kalbinde yer alan önemli araçları sizlere tanıttık; ne olduklarını, nasıl kurulduğunu ve nasıl kullanıldığını adım adım inceledik. Güvenlik seviyenizi güçlendirecek bu bilgilerle, artık ağ trafiğinizdeki tehditleri daha net görebileceksiniz. Umarım bu rehber, siber güvenlik yolculuğunuzda size ışık tutmuştur. Okuduğunuz için teşekkürler!