Kategoriler
Popüler KonularYaşam RehberiAstrolojiKariyer TavsiyeleriKişisel GelişimZenginler ve FakirlerSite TanıtımlarıKaranlık İnternet GerçekleriNe? Nedir? Nasıl?Kadim Gizli BilgilerMeditasyon ve OlumlamalarDualarSpiritüalizmSpiritüel Rüya TabirleriYurt Dışında EğitimYZ ile Para Kazanma RehberiBilgisayar ve Güvenlik

Python ile TCP Socket Programlarken Yanlışlıkla İnternete Açık Sunucu Yazmamak

Python’da TCP socket açmak kolaydır. Ama ağ dünyasında kolay olan her şeyin bir bedeli vardır. Çünkü sen sadece şu satırı yazdığında:

server.bind(('0.0.0.0', 12345))

sistem şöyle anlar: "Bu sunucuya her IP'den bağlantı kabul edebilirim." Ve o anda artık sadece localhost değil, tüm internet senin uygulamana ulaşabilir hale gelir.

Socket Programlama Nedir? Nasıl Çalışır?

Python'da socket modülü ile TCP tabanlı bir sunucu oluşturmak için:

  1. Bir socket objesi yaratılır
  2. bind()ile IP ve port tanımlanır
  3. listen()ile dinlemeye alınır
  4. accept()ile gelen bağlantılar karşılanır

Ama burada belirlenen IP adresi kritik bir anlam taşır.

  • '127.0.0.1'= Sadece localhost erişebilir
  • '0.0.0.0'= Tüm IPv4 adreslerinden erişilebilir
  • '::'= Tüm IPv6 adreslerinden erişilebilir

Ve sen "sadece test etmek istiyordum" diyorsan bile, 0.0.0.0 yazdıysan artık dünya senin portunu görebilir.

Yanlışlıkla Açık Port Oluşturmanın Sonuçları

  • Shodan gibi arama motorları birkaç saat içinde senin portunu tespit eder
  • İnternette açık port taraması yapan botnetler saniyeler içinde bağlantı denemesi yapar
  • Güvenlik açığı içeren bir script varsa, exploit edilir
  • Evdeki ağda bile modem NAT ayarları uygunsa dış dünyaya açılmış olabilirsin
  • İzin almadan başkasının ağında bu kodu çalıştırmak, izinsiz sunucu kurmak sayılabilir

Gerçek Hikâye: Açık Porttan Giden Bir Bilgisayar

Bir yazılım öğrencisi, TCP üzerinden mesajlaşma uygulaması yazdı. Sunucuyu 0.0.0.0 ile bind etti. Firewall kapalıydı. Port 5000 açıktı. Kodda giriş kontrolü yoktu. 5 saat sonra sistemde rastgele veriler görmeye başladı. Birisi bağlantı kurmuştu. Kod açık olduğu için mesaj gönderebiliyor, veritabanına yazabiliyordu. Bu sadece testti. Ama artık testin kontrolü onda değildi. Sunucu onun değil, herkesindi.

Güvenli TCP Socket Yazımı İçin Yapılması Gerekenler

  • Test ortamında '127.0.0.1' adresini kullan
  • Asla 0.0.0.0 kullanma, zorundaysan IP whitelist yap
  • Sunucu portunu firewall ile dış dünyaya kapat
  • Port numarası sabit değil, rastgele seçilmiş olsun
  • Oturum açmadan bağlantı kabul etme
  • Yalnızca LAN içi erişim gerekiyorsa, sadece o ağın IP bloğuna izin ver

Açık Portu Tespit Etmek Ne Kadar Kolay?

Shodan gibi araçlar, internete açık her portu günler içinde indeksler. Örnek bir arama: port:12345 Yalnızca bu satırla binlerce açık port gösterilir. Senin yazdığın küçük socket scripti bile bu sistemde yer alabilir. Ve belki de onu yazdığını sen unutmuşken, hala dinliyordur.

Etik Hacker Ne Yapar?

  • Yalnızca lokal ağda test sunucusu açar
  • Sunucunun ne zaman kapatılacağını belirler
  • Bağlantı geldiğinde IP’yi kaydeder ama işlem yapmaz
  • Açık port bırakmaz, oturum sonunda socket'i kapatır
  • Gerçek ortamda bind edilecek IP’yi statik değil, dinamik belirler

Bir Satır Kod Bazen Tüm Sisteme Açılan Kapıdır

Python ile socket yazmak beceridir. Ama o socket’i nasıl açtığın, seni ya geliştirici ya da saldırı yüzeyi yapar. Bir test uygulaması dışa açık olduğunda, artık test değildir. Gerçek bir sistemdir. Ve gerçek sistemler… gerçek tehditlere hedef olur.

Sen sistemi yazarsın. Ama portu açık bırakırsan, onu ilk kullanan sen olmayabilirsin.