Port Tarayıcı rehberi
XGM Port Tarayıcı bir sunucudaki TCP portlarını nasıl test eder, açık, kapalı ve filtrelenmiş ne demektir, hangi portlar risklidir ve nasıl kapatılır.
Port Tarayıcı ne yapar
TCP portu, bir hizmetin bağlantıları dinlediği yerdir: HTTPS için 443, sunucular arası e-posta için 25, SSH için 22. Bir porta internetten erişilip erişilemeyeceği hizmete, sunucu güvenlik duvarına, bulut güvenlik gruplarına ve aradaki ağ güvenlik duvarlarına bağlıdır. Kendi ağınızın içinden yapılan bir test, dışarıdakilerin nereye ulaşabildiği hakkında pek bir şey söylemez. Aynı sunucu, ofisten bakıldığında bambaşka bir yüzey gösterebilir. Bu yüzden dışa açıklığı her zaman ağın dışından ölçmek gerekir.
Port Tarayıcı, XGM sunucusundan seçtiğiniz sunucuya ve portlara tıpkı dışarıdaki herhangi bir istemci gibi bağlanır. Yalnızca listelediğiniz portları, tek seferde en fazla 200 tanesini dener; İlk 100 hazır listesi en sık açık bulunan portları kapsar. Açık bir portta SSH, SMTP, FTP, POP3, IMAP ve MySQL sunucularının kendiliğinden gönderdiği karşılama iletisini okur, HTTP ve HTTPS portlarına ise tek bir HEAD isteği gönderir. Oturum açmaz ve güvenlik açığı taraması yapmaz; amaç yalnızca dışarıdan neyin görünür olduğunu ortaya koymaktır.
Port Tarayıcı nasıl kullanılır
- Port Tarayıcı aracını açın ve sorumlu olduğunuz, herkese açık bir sunucu adı ya da IP adresi girin.
- Portları virgülle ayrılmış liste ya da aralık olarak girin; örneğin
80, 443, 8000-8005. İsterseniz hazır bir liste seçin: Web, E-posta, Uzaktan erişim, Veritabanları ya da Yaygın 20. - Kontrolü çalıştırın ve her port için sonucu okuyun: gecikmesiyle birlikte açık, kapalı ya da filtrelenmiş.
- Her açık portun altındaki açıklamayı okuyun: portun bu sunucuda beklenen bir port olup olmadığını, dışa açık olmasının ne anlama geldiğini ve bu konuda ne yapılması gerektiğini.
| Hazır liste | Portlar |
|---|---|
| Web | 80, 443, 8080, 8443 |
| E-posta | 25, 465, 587, 110, 143, 993, 995 |
| Uzaktan erişim | 22, 23, 3389, 5900 |
| Veritabanları | 3306, 5432, 6379, 27017, 1433, 9200 |
| Yaygın 20 | 21, 22, 23, 25, 53, 80, 110, 143, 443, 445, 465, 587, 993, 995, 1433, 3306, 3389, 5432, 6379, 8080 |
Yalnızca sorumlu olduğunuz sunucuları test edin
Port açıklığı raporu
Port Tarayıcı'nın Tam rapor sekmesi port açıklığı raporunu çalıştırır: yaygın hizmet portlarından oluşan sabit ve güvenli bir liste (80, 443, 22, 25, 53, 8080 ve 8443) ile birlikte bir puan, bulgular ve öneriler. Seçtiğiniz portlar için Hızlı kontrol'ü, karşılaştırdığınız her sunucu için aynı temel ölçümü istediğinizde ise raporu kullanın. Rapor eskiden /tools/port-exposure-report adresinde ayrı bir sayfaydı; bu adres artık bu sekmeyi açar. Aynı listeyi her sunucuda çalıştırmak, sonuçları filoya yayılmış biçimde karşılaştırmayı kolaylaştırır. Böylece tek tek portlara değil, genel eğilime bakabilirsiniz.
Açık, kapalı ve filtrelenmiş
| Durum | Ne oldu | Genellikle ne anlama gelir |
|---|---|---|
| Açık | TCP el sıkışması tamamlandı | Bir hizmet dinliyor ve güvenlik duvarı bağlantıya izin veriyor |
| Kapalı | Sunucu bir reset ile yanıt verdi | Sunucuya erişilebiliyor, o portu dinleyen bir şey yok |
| Filtrelenmiş (yanıt yok) | 1,5 saniye içinde yanıt gelmedi | Bir güvenlik duvarı paketleri düşürüyor ya da sunucu kapalı veya çok yavaş |
Bir sonuç sizi şaşırttıysa kontrolü iki kez çalıştırın. Tek bir zaman aşımı geçici bir ağ sorunu olabilir. Aynı sonucu iki farklı zamanda görmek, bulguyu çok daha güvenilir kılar.
Kullanmadığınız portlar için en iyi durum filtrelenmiştir, çünkü en az bilgi sızdıran durum budur. Kapalı da sorun değildir. Açık bir port yalnızca arkasındaki hizmet herkese açık olmaması gerektiğinde ya da açık olması gerekirken yetersiz korunduğunda sorundur. Bu yüzden listedeki her açık portun neden orada olduğunu tek tek gerekçelendirmek en sağlıklı yaklaşımdır.
Sonuçlar tek bir konumdan ve tek bir andan alınmıştır. Güvenlik duvarları bazı kaynak adreslerine izin verip diğerlerine vermeyebilir, bulut yük dengeleyicileri arka ucun sunmadığı portlarda yanıt verebilir ve hız sınırlaması tekrarlanan testlerden sonra açık bir portu zaman aşımına dönüştürebilir. Bu nedenle beklenmedik bir sonucu tek bir çalıştırmaya dayanarak yorumlamayın.
Herkese açık olmaması gereken portlar
| Port | Hizmet | Neden riskli |
|---|---|---|
| 21 | FTP | Kimlik bilgileri düz metin olarak gönderilir |
| 23 | Telnet | Parolalar dahil her şey düz metin olarak gönderilir |
| 445 | SMB | Dışa açıldığında yaygın bir fidye yazılımı giriş noktasıdır |
| 1433, 3306, 5432 | SQL Server, MySQL, PostgreSQL | Veritabanlarına internetten asla erişilebilmemelidir |
| 3389 | Uzak Masaüstü | Yoğun biçimde kaba kuvvet saldırısına uğrar; VPN arkasına alın |
| 5900 | VNC | Çoğu zaman zayıf kimlik doğrulamayla kullanılır |
| 6379 | Redis | Varsayılan olarak kimlik doğrulaması yoktur; sık istismar edilir |
| 9200 | Elasticsearch | Dışa açık kümeler sıklıkla veri sızdırır |
| 27017 | MongoDB | Dışa açık örnekler sıklıkla veri sızdırır |
Dışa açık veritabanları ve uzaktan erişim hizmetleri, veri ihlallerinin ve fidye yazılımı olaylarının büyük bir bölümünün arkasındadır. Otomatik tarayıcılar, internete yeni çıkan açık örnekleri saatler içinde bulur. Bu portlardan herhangi biri açık görünüyorsa bunu acil bir bulgu olarak ele alın. İnternete açık bir veritabanının keşfedilmesi için kimsenin sizi özel olarak hedeflemesi gerekmez.
Portları kapatmak ya da kısıtlamak
En temiz çözüm, hizmetin yalnızca özel bir arabirimi dinlemesini sağlamaktır; böylece dışarıdan ulaşılacak bir şey kalmaz. Hizmetin uzak bağlantı kabul etmesi zorunluysa kaynak adresleri bir güvenlik duvarında ya da bulut güvenlik grubunda kısıtlayın, yönetim erişimini de bir VPN ya da atlama sunucusu arkasına alın. Böylece bir hizmetin herkese açık olması gerekip gerekmediği sorusu, her port için bilinçli bir karara dönüşür. Kaynak adresle kısıtlama, parola ya da anahtar doğrulamasının yerini tutmaz; ikisini birlikte kullanın.
# PostgreSQL: listen only on localhost and the private network (postgresql.conf)
listen_addresses = 'localhost,10.0.0.5'
# Redis: bind to localhost and require a password (redis.conf)
bind 127.0.0.1 ::1
requirepass use-a-long-random-secret
# ufw: allow SSH only from an office address
ufw allow from 203.0.113.10 to any port 22 proto tcp
ufw deny 22/tcp- Bulutta yalnızca sunucu güvenlik duvarını değil, güvenlik gruplarını ve ağ ACL'lerini de kontrol edin.
- Konteynerler portları varsayılan olarak tüm arabirimlerde yayımlayabilir; yalnızca yerel bir ara sunucunun ihtiyaç duyduğu portları
127.0.0.1üzerinde yayımlayın. - Bir değişiklikten sonra portun gerçekten kapandığını ya da filtrelendiğini doğrulamak için Port Tarayıcı'yı dışarıdan yeniden çalıştırın.
- Her sunucunun hangi portları dışa açması gerektiğini belgeleyin ki zamanla oluşan sapmalar fark edilsin.
Posta ve web sunucularını kontrol etmek
Bir posta sunucusunda, diğer sunuculardan e-posta alabilmek için 25 numaralı portun açık olması gerekir; kullanıcılarınızın kimlik doğrulamayla e-posta göndermesi için de 465 ya da 587. IMAP (993) ve POP3 (995) posta istemcileri içindir. TLS'siz düz IMAP (143) ve POP3 (110), istemciler şifreli portları destekliyorsa kapatılmalıdır. Bu üç kümeyi birbirinden ayırmak, hangi portun gerçekten gerekli olduğunu görmeyi kolaylaştırır.
Bir web sitesinde 80 ve 443 beklenen portlardır. 8080 ya da 8443 gibi portlar çoğu zaman yönetim panellerine, geliştirme sunucularına veya bir ara sunucunun arkasında durması amaçlanmış uygulama sunucularına aittir. Bunlardan biri açıksa orada neyin yanıt verdiğini ve herkese açık olması gerekip gerekmediğini kontrol edin, ardından sertifikayı TLS Kontrolü ile doğrulayın. Unutulmuş bir hazırlık ortamı ya da yönetim arabirimi, bu şekilde gün yüzüne çıkar.
SSS
Bu bir port tarayıcı mı?
Hedefli bir kontroldür. Yalnızca listelediğiniz portları, en fazla 200 tanesini dener. Açık portlardan banner istenir (HTTP portlarında bir HEAD isteğiyle, diğerlerinde yalnızca dinleyerek); hiçbir zaman oturum açmaz ve güvenlik açığı taraması yapmaz. Ardından her açık port, taramanın zaten bildiklerinden - port numarası, banner ve ters DNS - yola çıkılarak açıklanır; böylece 80 ve 443 üzerindeki bir web sunucusu olağan görünürken bir veritabanı, bir yönetim portu ya da bir yönetim arabirimi için dışa açık olmanın ne anlama geldiğini ve ne yapılması gerektiğini anlatan bir cümle eklenir.
Hizmet çalışırken bir port neden filtrelenmiş görünüyor?
Bir güvenlik duvarı, güvenlik grubu ya da sağlayıcı ağı dışarıdan gelen bağlantıları düşürüyordur veya hizmet yalnızca özel bir arabirimi dinliyordur. Bu çoğu zaman bilinçli bir tercihtir.
UDP portlarını kontrol edebilir miyim?
Hayır. Araç yalnızca TCP bağlantılarını test eder. DNS ya da VPN gibi UDP hizmetleri, protokole özgü testler gerektirir.
Özel bir IP adresini test edebilir miyim?
Hayır. XGM kontrolleri herkese açık bir sunucudan çalıştırdığı ve iç ağlara ulaşmaması gerektiği için özel, geri döngü ve iç ağ adresleri reddedilir.
Gecikme neden çalıştırmalar arasında değişti?
Bağlantı süresi o andaki ağ yollarına ve sunucu yüküne bağlıdır. Küçük dalgalanmalar normaldir ve tek başına bir sorun işareti değildir.
Bulut sunucumda 25 numaralı port neden filtrelenmiş?
Birçok bulut sağlayıcısı istenmeyen e-postayı önlemek için 25 numaralı portu varsayılan olarak engeller. E-postayı bir e-posta hizmeti üzerinden gönderin ya da posta sunucusu işletiyorsanız sağlayıcınızın engel kaldırma sürecini başlatın.
Web sitesi olmayan bir IP'de 443 numaralı port neden açık görünüyor?
Yük dengeleyiciler, CDN'ler ve bazı barındırma platformları paylaşılan adreslerde birçok müşteri için bağlantı kabul eder. Portun açık olması orada bir şeyin TCP kabul ettiğini söyler, sitenizin yapılandırıldığını değil.
Açık bir port hacklendiğim anlamına mı gelir?
Hayır. Yalnızca bir hizmete erişilebildiği anlamına gelir. Bunun sorun olup olmadığı hizmete, kimlik doğrulamasına ve herkese açık olması gerekip gerekmediğine bağlıdır.