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.