Python ile Port Değişiklik Takibi

0 Ответы 3 Просмотры
·
Участники
Автор темы #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:

КОД
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.

Чтобы ответить, необходимо войти в систему.

Пользователи, просматривающие эту тему (Всего: 1, Участники: 1, Гости: 0)
Всего: 1 (участники: 1, гости: 0)
0 цитат выбрано