Linux Port Açma ve Kapatma Rehberi

Linux sunucularda port açma ve kapatma işlemleri, çalışan servislerin internet veya belirli ağlar üzerinden erişilebilir olmasını sağlamak için yapılır. Web sunucuları, SSH, DNS, veritabanı ve çeşitli uygulamalar belirli portlar üzerinden iletişim kurar.

Linux dağıtımına göre port yönetimi için UFW, Firewalld veya iptables gibi farklı araçlar kullanılabilir.

Linux'ta Port Nedir?

Portlar, sunucu üzerindeki servislerin ağ bağlantılarını yönetmesini sağlayan numaralardır.

En sık kullanılan bazı portlar şunlardır:

  • 22: SSH
  • 53: DNS
  • 80: HTTP
  • 443: HTTPS
  • 3306: MySQL / MariaDB
  • 5432: PostgreSQL
  • 8080: Alternatif web uygulamaları

Örneğin bir web sitesi HTTP üzerinden çalışıyorsa sunucunun 80 numaralı TCP portunun erişilebilir olması gerekir.

Ancak bir portun firewall üzerinden açılması, o portta mutlaka bir servisin çalıştığı anlamına gelmez. Öncelikle servisin ilgili portu dinlediğinden emin olmak gerekir.

Portları kontrol etmek için:

ss -lntup

Belirli bir portu kontrol etmek için:

ss -lntp | grep :8080

Linux Dağıtımlarında Hangi Firewall Kullanılır?

Linux dağıtımına göre kullanılan firewall yönetim aracı değişebilir.

Linux Dağıtımı Yaygın Firewall
Ubuntu UFW
Debian UFW / nftables
CentOS Firewalld
AlmaLinux Firewalld
Rocky Linux Firewalld
RHEL Firewalld
Fedora Firewalld

iptables ise farklı Linux sistemlerinde kullanılabilen daha düşük seviyeli bir firewall aracıdır. Modern Linux sistemlerinde nftables altyapısı da yaygın olarak kullanılmaktadır.

UFW ile Port Açma

UFW özellikle Ubuntu ve Debian tabanlı sistemlerde kolay firewall yönetimi sağlar.

UFW'nin aktif olup olmadığını kontrol etmek için:

ufw status

TCP Port Açma

Örneğin 8080 TCP portunu açmak:

ufw allow 8080/tcp

HTTP portunu açmak:

ufw allow 80/tcp

HTTPS portunu açmak:

ufw allow 443/tcp

UDP Port Açma

Örneğin 51820 UDP portunu açmak:

ufw allow 51820/udp

UFW ile Port Kapatma

Daha önce açılmış bir portu kapatmak için:

ufw delete allow 8080/tcp

Kuralları numaralarıyla görmek için:

ufw status numbered

Firewalld ile Port Açma

Firewalld, özellikle AlmaLinux, Rocky Linux, CentOS, RHEL ve Fedora sistemlerde yaygın olarak kullanılır.

Firewall durumunu kontrol etmek için:

firewall-cmd --state

TCP Port Açma

8080 TCP portunu açmak:

firewall-cmd --permanent --add-port=8080/tcp

Ardından değişiklikleri uygulayın:

firewall-cmd --reload

Açık portları görmek için:

firewall-cmd --list-ports

Firewalld ile Port Kapatma

8080 TCP portunu kapatmak:

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

Ardından:

firewall-cmd --reload

iptables ile Port Açma

iptables, Linux üzerinde daha ayrıntılı firewall kuralları oluşturmak için kullanılan bir araçtır.

Örneğin 8080 TCP portuna izin vermek:

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

80 portunu açmak:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

443 portunu açmak:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

iptables ile Port Kapatma

8080 portuna gelen bağlantıları engellemek:

iptables -A INPUT -p tcp --dport 8080 -j DROP

Mevcut kuralları görmek için:

iptables -L INPUT -n --line-numbers

iptables kullanırken kural sırası önemlidir. Önceden tanımlanmış bir ACCEPT kuralı varsa sonradan eklenen DROP kuralı beklediğiniz sonucu vermeyebilir.

Linux'ta Açılan Port Nasıl Test Edilir?

Portu firewall üzerinden açtıktan sonra gerçekten erişilebilir olup olmadığını kontrol etmek gerekir.

Başka bir Linux sunucusundan:

nc -zv SUNUCU_IP 8080

Web servisi için:

curl -I http://SUNUCU_IP:8080

Sunucunun kendi üzerinde ise portun dinlenip dinlenmediğini:

ss -lntp | grep :8080

komutuyla kontrol edebilirsiniz.

Port Açılmıyorsa Ne Kontrol Edilmeli?

Port açıldığı halde bağlantı sağlanamıyorsa birkaç farklı nokta kontrol edilmelidir.

1. Servis Çalışıyor mu?

systemctl status nginx

2. Port Dinleniyor mu?

ss -lntp | grep :8080

3. Firewall İzin Veriyor mu?

UFW:

ufw status

Firewalld:

firewall-cmd --list-ports

iptables:

iptables -L INPUT -n

4. Harici Firewall Var mı?

VDS veya bulut sunucularda işletim sistemi firewall'ına ek olarak sağlayıcının network firewall, security group veya DDoS koruma kuralları da bulunabilir. Bu katmanlarda port engelleniyorsa Linux üzerinde portu açmanız tek başına yeterli olmaz.

Linux Port Açarken Dikkat Edilmesi Gerekenler

Sunucuda kullanılmayan portları açık bırakmamak güvenlik açısından önemlidir.

Özellikle MySQL 3306, PostgreSQL 5432 ve Redis 6379 gibi servislerin internet üzerindeki herkese açılması çoğu durumda önerilmez.

Mümkünse erişimi belirli IP adresleriyle sınırlandırın.

Örneğin UFW ile yalnızca belirli bir IP'nin SSH erişimine izin vermek:

ufw allow from 203.0.113.10 to any port 22 proto tcp

Ayrıca firewall üzerinde değişiklik yaparken SSH portunu yanlışlıkla engellememeye dikkat edilmelidir. Aksi durumda uzak sunucuya erişiminizi kaybedebilirsiniz.

Sonuç

Linux'ta port açma ve kapatma işlemleri kullanılan firewall aracına göre farklı komutlarla yapılır. Ubuntu ve Debian sistemlerde UFW, AlmaLinux, Rocky Linux, CentOS ve RHEL gibi sistemlerde ise Firewalld yaygın olarak kullanılır. iptables ise daha düşük seviyeli ve ayrıntılı firewall kuralları için kullanılabilir.

Port açmadan önce servisin çalıştığını ve ilgili portu dinlediğini kontrol etmek, yalnızca gerekli portlara izin vermek ve mümkün olduğunda erişimi belirli IP adresleriyle sınırlandırmak Linux sunucu güvenliği açısından önemlidir.