Nmap ile kendi sunucunuzun internete hangi portları açtığını görmek için en temel komut nmap -sT SUNUCU_IP biçimindedir; -sV açık portlardaki servis ve sürüm bilgisini, -p ise taranacak portları belirler. Burada SUNUCU_IP, kendi sunucunuzun IP adresidir. Sonuçta açık görünen ama ihtiyaç duymadığınız portları kapatarak saldırı yüzeyini küçültürsünüz.

Bu yazı bir denetim rehberidir: yalnızca size ait sunucuyu veya localhost adresini tarar. Gizlenme, zamanlama oynamaları, sahte kaynak veya betik (NSE) tabanlı zafiyet taramaları kapsam dışıdır. Port taramanın genel mantığını açık port tarama nedir yazısında, Kali Linux'un genel yapısını ise Kali Linux rehberinde bulabilirsiniz.

Nmap hakkında kısa bilgi

Kali araç sayfasına göre nmap bir ağ keşif aracı ve güvenlik/port tarayıcıdır; sayfadaki sürüm 7.99'dur ve kali-linux-default metapackage'ının parçasıdır. Kurulu değilse:

bash
sudo apt install nmap

Kali kullanıcı politikası ve root olmayan kullanıcılar için hazırlanan belge önemli bir ayrıntıyı açıklar: root kullanıcı için varsayılan tarama SYN taramasıdır (-sS) ve ham soket gerektirir; root olmayan kullanıcı için varsayılan connect taramasıdır (-sT). Connect taraması TCP üçlü el sıkışmasını tamamlar, bu nedenle daha uzun sürer ve daha fazla paket kullanır; ama ek yetki gerektirmez ve sonuçları yorumlaması kolaydır. Bu yazıda bu nedenle -sT kullanıyoruz.

Taramadan önce: izin ve sağlayıcı kuralları

Taramadan önce: izin ve sağlayıcı kuralları: Yalnızca kendi sunucunuzu ya da yazılı izin aldığınız sistemleri tarayın., Barındırma sağlayıcıların kabul edilebilir kullanım...
  • Yalnızca kendi sunucunuzu ya da yazılı izin aldığınız sistemleri tarayın.
  • Barındırma sağlayıcıların kabul edilebilir kullanım politikaları (AUP), sunucularından başka sistemlerin taranmasını yasaklayabilir. Taramayı nereden başlattığınız da önemlidir; kendi bilgisayarınızdan kendi sunucunuza yapmak en temiz yoldur.
  • Taramayı tüm port aralığına yaymadan önce bildiğiniz portlarla başlayın; gereksiz trafik üretmeyin.

Adım 1: Önce sunucunun içinden bakın

Dışarıdan taramadan önce, sunucunuzda hangi süreçlerin hangi portu dinlediğini görmek iyi bir başlangıçtır. Kali temel kullanım rehberindeki komut, dinleyen portları ve süreçleri listeler:

bash
sudo ss -tulpn

Burada 127.0.0.1 üzerinde dinleyen bir servis yalnızca sunucunun kendisinden erişilebilir; 0.0.0.0 veya genel IP üzerinde dinleyen servis ise güvenlik duvarı izin verirse dışarıdan erişilebilir. Aynı makineyi yerel olarak taramak için:

bash
nmap -sT localhost

Adım 2: Kendi sunucunuzu dışarıdan tarayın

Adım 2: Kendi sunucunuzu dışarıdan tarayın

Aşağıdaki örneklerde SUNUCU_IP yerine kendi sunucunuzun IP adresini yazın. Önce varsayılan port listesiyle temel bir connect taraması:

bash
nmap -sT SUNUCU_IP

Yalnızca belirli portları denetlemek için -p kullanılır. Nmap yardım çıktısındaki örnekler -p22, -p1-65535 biçimindedir:

bash
nmap -sT -p 22,80,443 SUNUCU_IP

Açık portlarda hangi servisin ve sürümün çalıştığını görmek için -sV eklenir:

bash
nmap -sT -sV -p 22,80,443 SUNUCU_IP

Varsayılan liste dışında kalmış bir servis olup olmadığından emin olmak için kendi sunucunuzda tüm TCP port aralığını tarayabilirsiniz. Bu daha uzun sürer:

bash
nmap -sT -p1-65535 --open SUNUCU_IP

--open yalnızca açık (veya muhtemelen açık) portları gösterir. Bir portun neden o durumda göründüğünü görmek için --reason, sonucu dosyaya kaydetmek için -oN kullanılabilir:

bash
nmap -sT -sV --reason -oN kendi-sunucum.txt SUNUCU_IP

Sonuçları yorumlama: open, closed, filtered

DurumAnlamıNe yapmalı
openPortta bağlantı kabul eden bir servis varServise gerçekten ihtiyaç var mı kontrol edin, gerekmiyorsa kapatın
closedPort erişilebilir ama dinleyen servis yokGenellikle sorun değildir, güvenlik duvarıyla tamamen engellenebilir
filteredYanıt gelmiyor, araya bir filtre (güvenlik duvarı) giriyorBilinçli bir kural ise beklenen durumdur
open|filtered vb.Nmap kesin karar verememiştir--reason ile nedenine bakın, sunucu içinden ss ile doğrulayın

Pratikte bakmanız gereken şey, open satırlarının listesinin sizin bilinçli olarak açtığınız servislerle birebir örtüşüp örtüşmediğidir. Örneğin yalnızca web sunucusu ve SSH çalıştıran bir makinede veritabanı portunun açık görünmesi, kapatılması gereken bir bulgudur. Port numaralarının hangi servise ait olduğunu bilinen port numaraları rehberinde bulabilirsiniz.

Adım 3: Gereksiz portları kapatın

Bir portu kapatmanın iki yolu vardır: servisi durdurmak ya da güvenlik duvarıyla erişimi engellemek. En temiz çözüm, ihtiyaç duymadığınız servisi kapatmaktır. Kali belgelerinde bir servisin açılışta başlamasını engellemek için systemctl disable kalıbı kullanılır; servis adını kendi sunucunuza göre değiştirin:

bash
sudo systemctl disable SERVIS_ADI

Servisin çalışması gerekiyor ama dışarıdan erişilmemesi gerekiyorsa güvenlik duvarı kuralı eklenir. Ubuntu tabanlı sunucularda yaygın olan ufw ile durumu görüp gereksiz bir kuralı kaldırmak ya da bir portu engellemek için örnekler:

bash
sudo ufw status numbered
sudo ufw delete allow 80
sudo ufw deny 23
sudo ufw status verbose

ufw kurulumunu, varsayılan politikaları ve SSH erişimini kilitlemeden kural yazmayı Ubuntu UFW güvenlik duvarı rehberinde ayrıntılı anlattık. Genel sıkılaştırma adımları için VPS güvenlik sıkılaştırma, SSH saldırılarına karşı Fail2ban yazılarına bakın.

Adım 4: Doğrulayın

Değişiklikten sonra aynı taramayı tekrar çalıştırın ve önceki raporla karşılaştırın:

bash
nmap -sT -sV -oN kendi-sunucum-sonra.txt SUNUCU_IP

Kapattığınız port artık closed ya da filtered görünmeli. Bu denetimi düzenli aralıklarla, özellikle yeni bir paket kurduktan sonra tekrarlamak iyi bir alışkanlıktır. Kali'nin kendisi de ağ servislerini varsayılan olarak açılışta başlatmayan bir politika izler; Kali'de bir servisi kalıcı yapmak için systemctl enable gerekir. Kali'de SSH servisini yönetmek için Kali SSH servisi ayarları yazısına bakabilirsiniz.

Sık Sorulan Sorular

Neden -sS yerine -sT kullanıyoruz?

Kali belgelerine göre -sS ham soket ve root yetkisi gerektirir, -sT ise el sıkışmayı tamamlar ve yetkisiz kullanıcı için varsayılandır. Kendi sunucunuzu denetlemek için -sT yeterli ve anlaşılırdır.

Filtered görünen port güvenli midir?

Filtered, araya bir filtrenin girdiğini gösterir. Bu çoğu zaman güvenlik duvarınızın çalıştığı anlamına gelir, ama arkada çalışan servisin gerekli olup olmadığını yine de sunucu içinden kontrol edin.

Kendi sunucumu bulut sağlayıcımın başka bir sunucusundan tarayabilir miyim?

Bu, sağlayıcının kullanım politikasına bağlıdır. Politikayı okuyun; en güvenli yol kendi bilgisayarınızdan kendi sunucunuza tarama yapmaktır.

Nmap çıktısını nasıl saklarım?

-oN normal metin, -oX XML, -oA ise üç ana biçimi birden kaydeder. Değişiklik öncesi ve sonrası raporlarını saklamak denetim geçmişi oluşturur.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: Kali Linux nedir · Açık port tarama nedir · Bilinen port numaraları · UFW güvenlik duvarı · VPS sıkılaştırma · Wireshark ile trafik analizi