Project

Basit Bir Güvenlik Firewall Duvarı Arayüzü

Reklam

Bir sabah bilgisayarınızın fanı beklenmedik şekilde dönmeye başladığını ya da internet bağlantınızın yavaşladığını fark ettiniz diyelim. Hangi programın arka planda internete bağlandığını bulmak için Görev Yöneticisi’ni açsanız bile, o an hangi uzak sunucuya hangi porttan bağlantı kurulduğunu tek bakışta görmek zordur. İşte “Firewall – Kutay Utku” tam olarak bu boşluğu doldurmaya çalışan küçük bir Windows masaüstü uygulaması.

Program ne yapıyor?

Uygulama üç temel işi yapıyor:

  1. Canlı bağlantıları listeliyor. Windows’un kendi TCP tablosunu (iphlpapi.dll içindeki GetExtendedTcpTable fonksiyonu üzerinden) okuyarak kurulu olan IPv4 TCP bağlantılarını gösteriyor. Her satırda programın adı, dosya yolu, karşı tarafın IP adresi ve port numarası yer alıyor.
  2. Programları izinli ya da engelli olarak sınıflandırıyor. Listelenen bir bağlantıyı seçip “İzin Ver” ya da “Engelle” düğmesine bastığınızda, program yolu üzerinden Windows Güvenlik Duvarı’na kural ekleniyor. Bu kurallar netsh advfirewall komutuyla hem giden (out) hem gelen (in) trafik için oluşturuluyor ve “FWGuard_” önekiyle adlandırılıyor.
  3. Kararlarınızı hatırlıyor. İzinli ve engelli listeler XML dosyalarına kaydediliyor. Bu dosyalar programın kendi klasöründeki “Ayarlar” alt klasöründe duruyor; yani hiçbir ayar gizlice AppData gibi bir yere dağılmıyor. Pencerenin konumu, boyutu ve seçilen tema da aynı şekilde saklanıyor.

Arayüz

Ekran ikiye bölünmüş durumda. Üstte “Algılanan Bağlantılar” listesi, altta ise “İzin Verilenler” ve “Engellenenler” listeleri var. Pencere boyutu değişse de bu bölmeler sabit oranlarda kalıyor: üst kısım yaklaşık %40, alt kısım %60. Her listede arama kutusu bulunuyor; program adı, yol ya da IP üzerinden filtreleme yapılabiliyor.

Reklam

Sütun başlıklarına tıklayarak sıralama yapmak mümkün. Sayısal sütunlar (örneğin port) sayı olarak, diğerleri metin olarak sıralanıyor.

Sağ tık menüsünden bir kuralı İzinliler ile Engellenenler arasında taşıyabiliyor ya da tamamen silebiliyorsunuz. Siyah ve beyaz tema arasında geçiş de mevcut; koyu tema seçildiğinde Windows başlık çubuğu da koyulaşıyor.

Pencereyi küçülttüğünüzde uygulama görev çubuğu yerine sistem tepsisine iniyor. Tepsi simgesine çift tıklayarak ya da sağ tık menüsünden pencereyi geri getirebiliyorsunuz.

Dikkat edilmesi gerekenler

Bu tür araçlarda güvenlik ve geri alınabilirlik çok önemli, o yüzden birkaç noktayı açıkça belirtmek istiyorum:

  • Yönetici yetkisi gerekiyor. Güvenlik duvarı kuralı eklemek yönetici izni ister. Kural eklenemezse uygulama bunu açıkça bir hata mesajıyla bildiriyor.
  • Program kapanınca kurallar kaldırılıyor. Form kapatılırken, uygulamanın oluşturduğu tüm FWGuard kuralları siliniyor. Bir sonraki açılışta ise kaydedilmiş kurallar yeniden uygulanıyor. Yani engellemeler, uygulama çalıştığı sürece aktif. Uygulamanın kendisi çökerse ya da kapatılamadan sonlanırsa kurallar sistemde kalabilir; bu durumda Windows Güvenlik Duvarı ayarlarından elle temizlemek gerekir.
  • Tanınmayan işlemler otomatik engelleniyor. İşlem bilgisine ulaşılamayan bağlantılar (örneğin işlem bu sırada kapanmışsa) “Bilinmeyen” olarak işaretlenip doğrudan engellenenler listesine taşınıyor. Bu, kötü niyetli bir bağlantı için iyi bir önlem olabilir; ama sistemin normal çalışması için gereken bazı süreçleri de etkileyebilir. Bu davranışı bilerek kullanmanızı öneririm.
  • Şimdilik yalnızca IPv4 TCP. Uygulama IPv6 bağlantılarını ve UDP trafiğini listelemiyor. Yani bu bir “tam” güvenlik duvarı değil; belirli bir programın TCP trafiğini yönetmek için tasarlanmış bir yardımcı araç.
  • Yalnızca kurulu bağlantılar görünüyor. Liste yalnızca “ESTABLISHED” durumundaki bağlantıları gösteriyor. Dinleme (listen) durumundaki ya da kapanmakta olan bağlantılar listede yer almıyor.

Kod tarafından bir bakış

Proje, Visual Basic .NET ve .NET Framework 4.7.2 ile yazılmış bir Windows Forms uygulaması. Dosyalar işlevlerine göre ayrılmış durumda:

  • TcpConnectionMonitor.vb: TCP tablosunu okuyor ve her bağlantının hangi işleme ait olduğunu çözüyor.
  • FirewallManager.vb: netsh komutlarıyla kural ekleme ve silme işlemlerini yapıyor.
  • ConfigStore.vb: Ayarları ve kuralları XML olarak kaydediyor ve yüklüyor.
  • NativeMethods.vb: Windows API çağrılarının tanımlarını barındırıyor (TCP tablosu, koyu başlık çubuğu, arama kutusundaki ipucu metni).
  • Form1.vb: Arayüzün tüm mantığı; listeler, tema, tepsi ve pencere davranışı burada.

Netsh komutlarını doğrudan çağırmak, yeni başlayanlar için basit bir yaklaşım ve Windows’un yerleşik güvenlik duvarını kullanıyor. Yine de her kural eklemede önce eski kuralı silip sonra yenisini eklemek, kuralların birikmesini önlüyor. Bu iyi bir dokunuş.

Sonuç

“Firewall – Kutay Utku”, kapsamlı bir güvenlik ürünü değil; ama bilgisayarınızda hangi programların internete çıktığını görmek ve bunlara basit bir şekilde izin ya da yasak koymak isteyenler için anlaşılır bir başlangıç noktası. Kodu da okunabilir şekilde ayrılmış olduğu için kendi ihtiyaçlarınıza göre geliştirmek isteyenler için iyi bir örnek.

Denemeden önce mutlaka bir sistem geri yükleme noktası oluşturmanızı ve engelleme kurallarını dikkatli kullanmanızı öneririm. Özellikle tarayıcı, güncelleme ve senkronizasyon programlarını engellemek beklenmedik sorunlara yol açabilir.

Siz de bu tür bir araçla denemeler yaptıysanız deneyimlerinizi yorumlarda paylaşabilirsiniz.

İndirme Bağlantısı

[LİNK: Firewall – Kutay Utku – v2.0.0.8.zip]

Reklam
Bu yazı faydalı oldu mu?
Yazar

Kutay Utku

Denediğim, kurduğum ve öğrendiğim teknolojileri sade bir dille anlatıyorum. Sorularını yorumlarda bekliyorum.

Tüm yazıları (661)

Yorumlar

Henüz yorum yapılmamış Düşüncelerini paylaşan ilk kişi sen ol.

Yorum yaz

E-posta adresin yayınlanmaz. Zorunlu alanlar * ile işaretlidir.

Kod paylaşırken <code> etiketini kullanabilirsin.0

Yorumun onaylandıktan sonra yayınlanır.