Açık Portları Kapatma: Sunucu Hardening Rehberi
Açık portları kapatmak için net kontrol adımları: hangi portlar riskli, nasıl taranır, güvenli kapatma ve kalıcı hardening ayarları.
Sunucu güvenliğinde en hızlı kazanım çoğu zaman “karmaşık bir ürün” eklemek değil, gereksiz ağ erişimini kesmektir. Açık portlar; zafiyet taraması, brute-force denemeleri ve servis suistimali için doğrudan hedef alanı oluşturur. Bu rehberde; VDS/VPS/dedicated fark etmeksizin sunucunuzdaki açık portları tespit etmeyi, servisleri doğru kapatmayı ve değişikliklerin kalıcı kalmasını sağlayacak hardening adımlarını net bir sırayla öğreneceksiniz.
Aşağıdaki adımları uygularken amacınız “her şeyi kapatmak” değil; gerçekten ihtiyaç duyulan servisleri bırakmak, diğerlerini kapatmak ve yalnızca belirli kaynaklardan erişime izin vermektir. Son bölümde de günlük/aylık kontrol rutini için net bir aksiyon planı bulacaksınız.
1) Önce envanter çıkarın: Açık portları nasıl görünür hale getireceksiniz?
Hardening’in ilk adımı, sunucuda gerçekten hangi portların dinlediğini (listening) ölçmektir. Bunun için hem yerel (sunucu üzerinde) hem de dışarıdan (internet tarafından) kontrol yapmanız gerekir.
Yerel dinleme kontrolü (LISTEN durumu)
Linux sunucularda en pratik yöntemlerden biri ss komutudur.
- Dinleyen portları listeleme:
ss -lntup- Açıklama:
-ldinliyor-nisim çözümlemesi yok (hızlı)-tTCP-uisterseniz UDP için kullanılır-phangi süreç (process) dinliyor
Bu çıktıdaki örnek satır mantığı şudur: 0.0.0.0:22 ya da 127.0.0.1:5432 gibi. Burada hedefiniz şunları netleştirmek:
- Her açık portun karşılığında beklenen servis var mı?
- Port, gerçekten dışarıya mı açık (0.0.0.0 / ::), yoksa sadece localhost’a mı bağlı (127.0.0.1)?
- Dinleyen süreç adı doğru mu (ör. nginx, sshd, mysql)?
Dış erişim kontrolü (internet tarafından görünürlük)
Sunucunuzun dışarıdan erişilebilir portlarını görmek için servis sağlayıcınızın güvenlik ekleri (ör. güvenlik grubu) ve yerel firewall dışında, internet yönünden de kontrol yapılmalıdır.
- Basit test (dıştan): Bir port tarayıcıyla (ör.
nmap) hedef sunucuyu tarayın. - Kritik nokta: Testi hem TCP hem UDP açısından yapmanız gerekmez, ancak UDP’de servis kullanımı (DNS, bazı oyun uygulamaları) varsa değerlendirilmelidir.
Eğer dış taramada beklenmeyen portlar görünüyorsa sebep genellikle şudur:
- Firewall kuralı eksik
- Güvenlik grubu / bulut katmanı açık kalmış
- Servis yanlış arayüzde dinliyor (ör. 0.0.0.0 yerine 127.0.0.1 olmalı)
Güvenlik için temel kavram: “Dinliyor” ile “Erişilebilir” farklıdır
Sunucuda bir port “listening” durumda olabilir; ancak firewall bunu dışarıdan engelliyorsa dış dünyadan erişilemez. Hardening sürecinde iki hedef vardır: 1) Servisi kapat (uygunsa) 2) Servis çalışsa bile erişimi sınırla (firewall)
2) Port–servis haritası oluşturun: Hangi portlar genelde risklidir?
Her sunucu aynı değildir; ancak standart altyapılarda bazı portlar sıkça yanlış bırakılır. Aşağıdaki tablo “tek başına kapanması şart” listesinden ziyade risk sınıflandırma içindir.
| Port | Yaygın servis | Hardening yaklaşımı |
|---|---|---|
| 22 | SSH | Gerekliyse bırakın; erişimi kısıtlayın (IP whitelist), şifre girişini kapatın |
| 80 | HTTP | Web sunuyorsanız gerekli; otomatik redirect + WAF ile dengeleyin |
| 443 | HTTPS | Web için gerekli; sertifika/uygun TLS ayarlarını kontrol edin |
| 21 | FTP | Çoğu kurulumda gereksiz; pasif/şifreleme sorunları yüzünden kapatma tercih edin |
| 23 | Telnet | Her koşulda kapatma hedefi |
| 25 | SMTP | Sadece gerçek mail gönderimi varsa gerekli; değilse kapatın |
| 53/UDP | DNS | Sadece DNS rolü varsa gerekli; yoksa kapatın |
| 3306/3307 | MySQL | Uygulama dışına açmayın; sadece uygulama sunucusu/localhost üzerinden izin verin |
| 5432 | PostgreSQL | MySQL’e benzer; dışarıdan açmayın |
| 27017 | MongoDB | Varsayılan kurulumlar için sık hedef; dışarıya kapatın |
| 3389 | RDP (Windows) | Gereksizse kapatın; gerekiyorsa VPN veya IP kısıtı |
| 5900 | VNC | Uygulama yoksa kapatın; varsa VPN zorunlu |
| 2049 | NFS | İhtiyaç yoksa kapatın; ihtiyaç varsa sadece özel ağdan erişim |
Net karar kuralı:
- Sunucunuz “web” ise, 80/443 dışındaki geniş kapsamlı dış erişim hedeflemeyin.
- Sunucunuz “veritabanı” ise, DB portlarını tek başına internetten açmayın; sadece uygulama tarafı erişsin.
- SSH erişimi gerekiyorsa bile, dışarıdan tüm dünyaya açık bırakmayın.
3) Servisi kapatın: Kullanılmayan portun en güvenli cevabı “çalışmamasıdır”
Firewall doğru olsa bile, gereksiz servislerin çalışması risk üretir. Hardening’de ilk tercih servis kapatmadır.
Sistemde hangi servis hangi porta bağlı?
Yerel dinleme çıktılarını kullanarak portu dinleyen sürecin paket adını tespit edin. Pratik yaklaşım:
- ss -lntup ile portu bul
- Satırdaki `users:((
Hosting karşılaştırması yapmaya hazır mısın?
100+ firmanın fiyatlarını tek tıkla karşılaştır, en uygun paketi bul.
Hosting Karşılaştır →İlgili Yazılar
ModSecurity nedir, paylaşımlı hostingde aktif mi?
ModSecurity (WAF) nasıl çalışır, hangi saldırıları engeller ve paylaşımlı hostingde aktif edilip edilmediğini nasıl kontrol edeceğinizi öğrenin.
WordPress’te Redis/Memcached object cache mantıklı mı?
WordPress’te object cache (Redis/Memcached) ne kazandırır? Uyumsuzluk, ayar hataları ve ne zaman şart olduğu için net kontrol listesi.
Yavaş Database Sorguları Nasıl Bulunur? Net Optimizasyon Rehberi
Yavaş sorguları bulmak için MySQL/PostgreSQL’de doğru log ve metrikleri toplayın, problemli SQL’i tespit edip ölçülebilir şekilde optimize edin.
Snapshot yedekleme gerçek backup yerine geçer mi?
Snapshot (anlık görüntü) hızlı geri dönüş sağlar. Ancak gerçek backup değildir. Doğru strateji, süre/erişim ve test kriterlerini birlikte ele alır.