Python ile Port Değişiklik Takibi

0 Respuestas 3 Visitas
·
Participantes
Autor del tema #1
Giriş
Ağ altyapısında portlar, cihazların iletişim kurduğu temel noktalar olarak kritik öneme sahiptir. Ancak, zamanla veya konfigürasyon değişiklikleriyle bu portlar üzerinde beklenmedik değişiklikler olabilir. Bu durumu tespit etmek, güvenlik ve sistem bütünlüğü açısından oldukça önemlidir. Python, esnekliği ve geniş kütüphane desteğiyle bu tür takip işlemlerini otomatik hale getirmede ideal bir araçtır.

Port Değişikliklerini İzleme Yöntemleri
İlk adım, belirli aralıklarla hedef cihazların açık portlarını taramaktır. Bunun için Python’un nmap kütüphanesi veya doğrudan python-nmap modülü kullanılabilir. Bu modüller, nmap komut satırı aracını arka planda çalıştırarak port taraması yapmanıza imkan sağlar. Tarama sonuçlarını kaydedip, önceki sonuçlarla karşılaştırmak ise değişiklikleri belirlemenin temel yoludur.

Tarama ve Karşılaştırma Süreci
Örneğin, belirli bir cihazın port durumunu kaydettiğiniz bir JSON veya CSV dosyası tutabilirsiniz. Her taramada, aynı cihazın port durumunu yeniden tarar ve çıktıdaki portların listesiyle karşılaştırırsınız. Eğer yeni açılan veya kapanan portlar fark ediliyorsa, bu durumu log'lamalı veya bildirim göndermelisiniz. Bu süreç, otomasyon ve zamanlama ile düzenli hale getirilebilir.

Örnek Kod Parçası
Aşağıda temel bir port tarama ve karşılaştırma örneği yer almaktadır:

CÓDIGO
1234567891011121314151617181920212223242526272829303132333435363738
import nmap
import json
import time

def port_tarama(ip, port_range):
    nm = nmap.PortScanner()
    nm.scan(ip, port_range)
    open_ports = []
    for proto in nm[ip].all_protocols():
        for port in nm[ip][proto]:
            if nm[ip][proto][port]['state'] == 'open':
                open_ports.append(port)
    return sorted(open_ports)

def kaydet(result, dosya):
    with open(dosya, 'w') as f:
        json.dump(result, f)

def oku(dosya):
    try:
        with open(dosya, 'r') as f:
            return json.load(f)
    except FileNotFoundError:
        return []

ip_adresi = '192.168.1.1'
port_araligi = '1-1024'
dosya_adi = 'port_durum.json'

while True:
    yeni_bilgi = port_tarama(ip_adresi, port_araligi)
    onceki_bilgi = oku(dosya_adi)
    if yeni_bilgi != onceki_bilgi:
        fark = set(yeni_bilgi) ^ set(onceki_bilgi)
        print(f"Port değişikliği tespit edildi: {fark}")
        kaydet(yeni_bilgi, dosya_adi)
    time.sleep(300)  # 5 dakika aralıkla tekrarla


Sonuç
Bu temel yaklaşım, portların durumu değiştikçe otomatik tespit edilmesini sağlar. Gelişmiş projelerde, değişiklikleri e-posta veya Slack gibi platformlar aracılığıyla bildiren modüller eklenebilir. Ayrıca, farklı protokol ve port aralıklarını dikkate alarak sistem güvenliğinizi güçlendirebilirsiniz. Port değişiklik takibi, düzenli ve otomatik olarak izlendiğinde, ağ güvenliği ve sistem stabilitesi açısından oldukça faydalı olur.

Debes haber iniciado sesión para responder.

Usuarios que están viendo este tema (Total: 3, Miembros: 3, Invitados: 0)
Total: 3 (miembros: 3, invitados: 0)
0 citas seleccionadas