Güvenlik için ağ programlama: soketler ve asyncio
TCP, UDP ve asyncio ile kendi ağındaki sunucuları tanıyan, hızlı ve nazik denetim araçları yazarsın.
Seviye 201 · 17 ders · 15 pratik lab
Dersler
Soketin içi
- Kodda TCP el sıkışması: connect, accept, close
- UDP soketleri ve yanıtsız protokoller
- Küçük bir TCP sunucusu yazmak
- Baytlar, kodlama ve struct ile ikili veri
- Kısa görev: kendi sunucuna basit bir komut protokolü ekle
Denetim tarayıcısı
- Kapsam ve izin: yalnız sana ait ağları taramak
- Çok porta bakan bağlantı denetleyicisi
- asyncio temelleri: aynı anda yüzlerce bağlantı
- Hız sınırı ve semafor: ağı yormadan taramak
- Kısa görev: laboratuvar alt ağındaki canlı servisleri çıkar
Protokolleri konuşmak
- dnspython ile DNS sorguları ve kayıt denetimi
- ssl modülüyle TLS bağlantısı ve sertifika okumak
- SMTP ve SSH servislerinin sürüm bilgisini toplamak
- paramiko ile SSH üzerinden toplu denetim
- Kısa görev: eski TLS sürümü kabul eden sunucuları bul
Kapanış
- Sonuçları envanter dosyasıyla karşılaştırmak
- Bitirme görevi: kendi ağın için asenkron servis denetçisi
Pratik lablar
- Komut tanıyan küçük sunucu: PING, TIME ve QUIT komutlarına yanıt veren bir TCP sunucusu yaz ve nc ile her komutun doğru yanıtı aldığını göster.
- Yarım gelen mesajlar: Mesajları tek recv çağrısında bekleyen ve parçalı gelen veride bozulan sunucuyu satır tamponlamayla düzelt ve yavaş gönderen bir istemciyle doğru çalıştığını göster.
- İkili başlıklı protokol: Uzunluk ve tür alanı taşıyan ikili başlıklı bir protokolü struct ile hem sunucu hem istemci tarafında uygula ve hatalı uzunluk değerinde sunucunun çökmediğini göster.
- Yanıt vermeyen UDP servisi: Lab’daki makinelere UDP üzerinden DNS sorgusu gönderip yanıt verenleri ve zaman aşımına düşenleri ayıran bir betik yaz.
- NTP sunucularının saat farkı: Rüzgârlı Enerji lab ağındaki NTP sunucularına ham UDP paketiyle sorgu atıp yanıttaki zamanı struct ile çöz ve yerel saatten sapanları raporla.
- Asenkron servis denetçisi: Envanter dosyasını okuyup tüm makineleri asyncio ile denetleyen, beklenmeyen açık portları ve eksik servisleri bulan ve sonucu JSON veren bir denetçi yaz.
- Kapsam dışına çıkmayan tarayıcı: Bağlantı denetleyicine izin verilen alt ağların listesini ekle ve kapsam dışındaki bir adres verildiğinde taramaya hiç başlamadan durduğunu göster.
- asyncio ile canlı servis listesi: Kendi lab alt ağındaki makinelerin yaygın portlarını asyncio ile eşzamanlı deneyen bir denetleyici yaz ve sonuçları makine-port tablosu olarak üret.
- Ağı boğan tarayıcıyı yavaşlat: Aynı anda binlerce bağlantı açıp lab’daki hassas servisi düşüren denetleyiciye semafor ve hız sınırı ekle, servisin ayakta kaldığını ve sonuçların eksiksiz olduğunu göster.
- Eksik DNS kayıtları: dnspython ile lab etki alanının A, MX ve TXT kayıtlarını sorgulayıp beklenen listeyle karşılaştıran ve eksikleri raporlayan bir betik yaz.
- DNS ile envanter tutmuyor: Saltmarsh Fisheries envanter dosyasındaki makine adlarını DNS’te çözüp yanlış adrese giden, çözülmeyen ve envanterde olmayan kayıtları ayrı listele.
- paramiko ile toplu SSH denetimi: Lab’daki beş sunucuya anahtarla bağlanıp çekirdek sürümünü, root girişine izin verilip verilmediğini ve bekleyen güncellemeleri toplayan, ulaşılamayan makinede durmayan bir araç yaz.
- ssl modülüyle sertifika oku: Lab’daki HTTPS sunucusuna ssl modülüyle bağlanıp sertifikanın konusunu, düzenleyenini ve bitiş tarihini yazdıran bir betik yaz.
- Eski TLS kabul eden sunucular: Lab’daki sunucuların her birine farklı en yüksek TLS sürümüyle bağlanmayı deneyip TLS 1.0 veya 1.1 kabul edenleri listeleyen bir betik yaz.
- Eski sürümlü servisleri bul: Lab ağındaki SMTP ve SSH servislerinin sürüm bilgisini topla, verilen en düşük sürüm tablosuyla karşılaştır ve güncellenmesi gerekenleri gerekçesiyle raporla.
Kurs hakkında
TCP, UDP ve asyncio ile kendi ağındaki sunucuları tanıyan, hızlı ve nazik denetim araçları yazarsın.
Ne öğreneceksin
- Soketin içi
- Denetim tarayıcısı
- Protokolleri konuşmak
- Kapanış
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.