Herhangi bir işlemden önce ağ incelemesi neden gereklidir?
Web siteniz yavaş çalıştığında, e-postalar gönderilmediğinde veya kullanıcılar bağlantı hatası aldığında, sorunu çözmenin ilk adımı ağ incelemesidir. Birçok geliştirici ve sunucu yöneticisi doğrudan koda veya uygulama ayarlarına yönelir, ancak sorunun kökeni genellikle ağ katmanındadır: kapalı bir port, süresi dolmuş bir SSL sertifikası veya hatalı bir DNS kaydı.
Bu makalede, komut satırı araçlarıyla (Command Line) ağ incelemesi için pratik bir iş akışı sunuyoruz. SSL testi, açık port taraması, ping ve DNSSEC kontrolünü nasıl yapacağınızı ve sonuçları doğru şekilde nasıl yorumlayacağınızı öğreneceksiniz. Bu yöntemler Linux, macOS ve hatta Windows'ta (WSL veya Git Bash ile) çalıştırılabilir.
Ağ incelemesi için temel araçlar
Başlamadan önce, aşağıdaki araçların sisteminizde kurulu olduğundan emin olun. Çoğu, Linux dağıtımlarında varsayılan olarak bulunur, ancak gerekirse kurabilirsiniz:
ping– Ana bilgisayara erişilebilirliği ve ağ gecikmesini kontrol etmenslookupveyadig– DNS sorgusuopenssl– SSL/TLS sertifikasını kontrol etmenc(netcat) veyanmap– Port taramasıdelvveyadig +dnssec– DNSSEC kontrolü
Ubuntu veya Debian üzerinde kurulum için aşağıdaki komutu kullanın:
sudo apt update
sudo apt install dnsutils openssl netcat-openbsd nmap bind9-dnsutils
CentOS veya RHEL üzerinde:
sudo yum install bind-utils openssl nmap nc
SSL testi ve sonuçların yorumlanması
SSL sertifikası, ağ incelemesinde en yaygın hata noktalarından biridir. Süresi dolmuş veya hatalı bir sertifika, kullanıcının tarayıcısında güvenlik hatası gösterilmesine ve ziyaretçinin güveninin kaybolmasına neden olur.
Sertifika son kullanma tarihi ve zincirinin kontrolü
En basit yöntem openssl kullanmaktır:
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates -subject -issuer
Çıktı üç önemli bölüm içerir:
notBefore– Sertifikanın geçerlilik başlangıç tarihinotAfter– Son kullanma tarihisubjectveissuer– Alan adı ve sertifikayı veren kurum
Son kullanma tarihi yakınsa (30 günden az), sorun oluşmadan önce sertifikayı yenilemek daha iyidir. Tam sertifika zincirini (Certificate Chain) kontrol etmek için -showcerts seçeneğini kullanın:
openssl s_client -connect example.com:443 -servername example.com -showcerts < /dev/null
Çıktıda en az iki sertifika görmelisiniz: ana alan adı sertifikası ve ara sertifika (Intermediate). Yalnızca bir sertifika görüntüleniyorsa, sunucunuz tam zinciri göndermiyor olabilir ve bazı istemciler hata verebilir.
Protokollerin ve şifreleme paketlerinin (Cipher Suites) kontrolü
Sunucunuzun güvenli protokoller kullandığından emin olmak için TLS 1.2 ve 1.3 sürümlerini test edin:
openssl s_client -connect example.com:443 -tls1_2 < /dev/null
openssl s_client -connect example.com:443 -tls1_3 < /dev/null
Komut no protocols available hatası verirse, sunucu o TLS sürümünü desteklemiyor demektir. TLS 1.2 desteği günümüzün minimum gereksinimidir ve TLS 1.3 şiddetle önerilir.
subject alanını her zaman kendi alan adınızla karşılaştırın. www'li ve www'siz alan adlarınız varsa, SAN (Subject Alternative Name) sertifikası her ikisini de içermelidir.Açık portların taranması ve sonuçların yorumlanması
Açık portlar, sunucunuza açılan kapılardır. Gereksiz portları bulmak için ağ incelemesi yapmak, güvenliğin önemli bir parçasıdır.
netcat ile hızlı tarama
Belirli bir portu test etmek için nc kullanın:
nc -zv example.com 443
nc -zv example.com 22
succeeded çıktısı portun açık olduğu, Connection refused ise kapalı olduğu anlamına gelir. -z seçeneği taramayı veri göndermeden yapar ve -v ayrıntıları gösterir.
nmap ile birden fazla portun taranması
Bir port aralığında ağ incelemesi için nmap daha iyi bir seçenektir:
nmap -p 80,443,22,3306 example.com
Çıktının üç durumu vardır:
open– Port açık ve bir hizmet dinliyorclosed– Port kapalı ancak erişilebilir (güvenlik duvarı engellemiyor)filtered– Güvenlik duvarı veya ağ filtresi yanıtı engelliyor
filtered durumu genellikle portun açık olabileceği ancak güvenlik duvarının onu gizlediği anlamına gelir. Daha kesin bir teşhis için TCP Connect taraması kullanın:
nmap -sT -p 80,443 example.com
sudo iptables -L -n komutuyla kontrol edin.Ping ve ağ gecikmesinin ölçülmesi
Ping, ağ incelemesi için en basit araçtır, ancak sonuçların doğru yorumlanması büyük önem taşır.
Erişilebilirlik testi ve paket kaybı
ping -c 10 example.com
Çıktı aşağıdaki istatistikleri içerir:
packet loss– Kaybedilen paketlerin yüzdesi; %0 idealdirmin/avg/max– Minimum, ortalama ve maksimum yanıt süresi (RTT) milisaniye cinsindenttl– Time To Live; Linux için varsayılan 64, Windows için 128'dir
Paket kaybı %5'in üzerindeyse ağ kararsızdır. Ortalama RTT 150 milisaniyenin üzerindeyse, ağ yolu muhtemelen uzun veya yoğundur.
Farklı paket boyutuyla ping testi
MTU'nun (Maximum Transmission Unit) ağ üzerindeki etkisini kontrol etmek için büyük paket boyutuyla ping atın:
ping -M do -s 1472 example.com
-M do seçeneği paketlerin parçalanmamasını sağlar (Don't Fragment). Bu komut Frag needed hatası verirse, yolun MTU'su 1500'den küçüktür ve ayarlamanız gerekir.
DNSSEC kontrolü ve DNS doğrulaması
DNSSEC (Domain Name System Security Extensions), DNS kayıtlarının dijital imzasıdır. DNSSEC doğru yapılandırılmamışsa, kullanıcılar SERVFAIL hatası alabilir.
dig ile DNSSEC imzasının kontrolü
dig example.com A +dnssec +multi
Çıktıda şunlara bakın:
RRSIG– Yanıt için dijital imza kaydıDNSKEY– Bölgenin (Zone) genel anahtarıstatus: NOERROR– Sorgunun başarılı olduğu anlamına gelir
Çıktı status: SERVFAIL ise, DNSSEC doğrulaması başarısız olmuştur. Daha kesin bir teşhis için delv kullanın:
delv @8.8.8.8 example.com A +rtrace
delv çıktısı, doğrulama zincirinin hangi aşamasının başarısız olduğunu gösterir. En yaygın sorun, üst bölgede (Parent Zone) DS kaydının olmamasıdır.
Temel DNS kayıtlarının kontrolü
Ağ incelemesi için A, AAAA, MX ve NS kayıtlarını kontrol edin:
dig example.com A
dig example.com MX
dig example.com NS
A kaydı yanlış bir IP'yi gösteriyorsa, kullanıcılar başka bir sunucuya yönlendirilir. DNS değişikliklerinin yayılma hızını kontrol etmek için farklı sunucular kullanın:
dig @8.8.8.8 example.com A
dig @1.1.1.1 example.com A
Sonuçlar farklıysa, değişiklikler hala yayılıyor (Propagation) demektir.
Özet: Ağ incelemesi için eksiksiz bir iş akışı
Sistematik sorun giderme için şu sırayı izleyin:
- Önce ping atarak ana bilgisayarın erişilebilir olduğundan emin olun.
- Ardından DNS kayıtlarını
digile kontrol ederek IP'nin doğru olduğunu doğrulayın. - Bir sonraki adımda, kritik portları (80, 443, 22)
ncveyanmapile test edin. - Şimdi SSL sertifikasını
opensslile kontrol edin. - Son olarak, DNSSEC'i
dig +dnssecile doğrulayın.
Bu yöntem, sorunu mümkün olan en kısa sürede izole etmenize yardımcı olur. Herhangi bir adımda hata görürseniz, o katmanı daha derinlemesine inceleyin. Örneğin, port 443 kapalıysa sunucu güvenlik duvarını kontrol edin; DNSSEC hata veriyorsa, alan adı kontrol panelindeki DNS bölgesi ayarlarını gözden geçirin.
Bu testleri yapabileceğiniz bir altyapı arıyorsanız, ServerNet web barındırma ve bulut sunucu hizmetleri sunar; ağ incelemesi pratiği yapmak için bunu kullanabilirsiniz. Ancak barındırıcıdan bağımsız olarak, bu araçlara hakim olmak sizi, sorunları kullanıcıları etkilemeden önce tespit edip çözebilen bir sistem yöneticisine dönüştürür.