WordPress, yazılım ve IT üzerine notlar
Anasayfa » Ağ & DNS » Port nedir, nasıl açılır? firewalld ve ufw ile güvenlik duvarı yönetimi

Port nedir, nasıl açılır? firewalld ve ufw ile güvenlik duvarı yönetimi

İçindekiler
  1. Sık kullanılan portlar
  2. Hangi servis hangi portu dinliyor?
  3. firewalld (RHEL, AlmaLinux, Rocky, Fedora)
  4. ufw (Ubuntu, Debian)
  5. Docker uyarısı
  6. Dışarıdan kontrol edin
  7. Bulut sağlayıcılarında ikinci katman
  8. Kısa kural

Bir sunucunun IP adresini bir apartmanın adresi gibi düşünürseniz, portlar da o apartmandaki dairelerin kapı numaralarıdır. Web sunucusu 80 ve 443 numaralı kapıda, SSH 22'de, MySQL 3306'da bekler. Güvenlik duvarı ise hangi kapının kime açılacağına karar veren kapıcıdır.

Sık kullanılan portlar

22     SSH
25     SMTP (sunucular arası e-posta)
53     DNS
80     HTTP
443    HTTPS
465    SMTPS (şifreli e-posta gönderimi)
587    Submission (e-posta istemcilerinden gönderim)
993    IMAPS
3306   MySQL / MariaDB
6379   Redis

Hangi servis hangi portu dinliyor?

Güvenlik duvarına dokunmadan önce sunucuda gerçekte neyin çalıştığına bakın:

ss -tulpn
Netid State  Local Address:Port   Process
tcp   LISTEN 0.0.0.0:22           users:(("sshd",pid=812))
tcp   LISTEN 0.0.0.0:443          users:(("httpd",pid=1022))
tcp   LISTEN 127.0.0.1:3306       users:(("mariadbd",pid=930))
tcp   LISTEN 0.0.0.0:6379         users:(("redis-server",pid=1188))

Burada önemli olan Local Address sütunudur:

  • 127.0.0.1:3306 → MariaDB yalnızca sunucunun kendisinden gelen bağlantıları kabul ediyor. Dışarıdan erişilemez. Doğru olan budur.
  • 0.0.0.0:6379 → Redis bütün ağ arayüzlerinde dinliyor. Güvenlik duvarı da engellemiyorsa internetten erişilebilir. Şifresiz bir Redis'in internete açık olması, sunucuların ele geçirilmesinin bilinen yollarından biridir.

İlk savunma hattı güvenlik duvarı değil, servisin yalnızca ihtiyaç duyduğu adreste dinlemesidir. Veritabanı ve önbellek servislerini 127.0.0.1 adresine bağlayın.

firewalld (RHEL, AlmaLinux, Rocky, Fedora)

firewalld, bölge (zone) kavramıyla çalışır. Sunucuların çoğunda tek bir bölge, genellikle public, kullanılır.

firewall-cmd --state
firewall-cmd --list-all

Bir servisi ya da portu açmak:

firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload

Burada --permanent parametresine dikkat edin. Bu parametre olmadan yapılan değişiklikler hemen uygulanır ama bir sonraki reload ya da yeniden başlatmada kaybolur. Parametreyle yapılanlar ise kalıcıdır ama --reload çalıştırılana kadar etkinleşmez. İkisini karıştırmak "açtım ama açılmadı" ya da "açılmıştı, kapandı" sürprizlerinin kaynağıdır.

Bir portu kapatmak:

firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload

Yalnızca belirli bir IP'ye izin vermek (örneğin yönetim paneli ya da veritabanı için):

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="198.51.100.7" port port="3306" protocol="tcp" accept'
firewall-cmd --reload

ufw (Ubuntu, Debian)

ufw, adından da anlaşılacağı gibi (Uncomplicated Firewall) daha sade bir arayüz sunar.

ufw status verbose

Etkinleştirmeden önce SSH'ye izin verin. Aksi hâlde uzaktaki sunucuyla bağlantınızı kesebilirsiniz:

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Belirli bir IP'ye izin vermek:

ufw allow from 198.51.100.7 to any port 3306 proto tcp

Kuralları numaralarıyla listeleyip silmek:

ufw status numbered
ufw delete 4

Docker uyarısı

Docker, konteynerlerin portlarını yayınlarken güvenlik duvarı kurallarını kendi yönetir. Bu kurallar ufw ve firewalld'nin kurallarından önce uygulanabilir. Yani ufw deny 3306 kuralınız olsa bile -p 3306:3306 ile başlatılmış bir konteyner internetten erişilebilir olabilir. Konteyner portlarını yalnızca yerel ağda yayınlamak için -p 127.0.0.1:3306:3306 biçimini kullanın.

Dışarıdan kontrol edin

Kuralları yazdıktan sonra sunucunun dışındaki bir makineden kontrol edin:

nc -vz sunucu-ip 3306
nmap -Pn -p 22,80,443,3306,6379 sunucu-ip

Yalnızca açık olmasını istediğiniz portları görmelisiniz. nmap komutunu yalnızca kendi sunucularınızda çalıştırın; başkasının sistemini izinsiz taramak pek çok ülkede suçtur.

Bulut sağlayıcılarında ikinci katman

AWS, Google Cloud, Hetzner ve benzeri sağlayıcıların çoğunda sunucunun önünde ayrı bir güvenlik duvarı (security group, cloud firewall) bulunur. Port, sunucunun güvenlik duvarında açık olsa bile bu katmanda kapalıysa erişim olmaz. "Her şeyi açtım, yine bağlanamıyorum" diyorsanız sağlayıcınızın panelindeki ağ ayarlarına bakın.

Kısa kural

Varsayılan olarak her şeyi kapatın. Yalnızca gerçekten ihtiyaç duyduğunuz portları açın. Yönetim amaçlı portları (veritabanı, panel, önbellek) internetin tamamına değil, yalnızca bildiğiniz IP adreslerine açın. Ve her değişiklikten sonra dışarıdan kontrol edin.

Tezcan Kabakçı
Hosting teknik destek uzmanı ve WordPress uzmanı. 2024'ten beri bir hosting şirketinde teknik destek bölümünde çalışıyor; WordPress, DNS ve e-posta sorunlarını her gün yakından görüyor. YouTube kanalı.
Bu yazı 19 Eylül 2026 tarihinde Ağ & DNS kategorisinde yayınlandı.
Yeni yazılar e-postanıza gelsin

Ayda birkaç e-posta; istediğiniz an tek tıkla ayrılabilirsiniz.

Videolu anlatımlar YouTube'da
Sunucu ve WordPress sorunlarını kısa videolarla anlattığım kanala abone olabilirsiniz. ▶ Kanala abone ol

Yorumlar

Henüz yorum yok. İlk yorumu siz yazın.

Yorum yazın

Yorumlar onaylandıktan sonra yayımlanır. Bağlantı içeren yorumlar spam olarak değerlendirilebilir.