Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

iptables ile Temel Güvenlik Duvarı Kuralları Oluşturma: Gelen/Giden Trafik Filtreleme Örnekleri

✖ Kapat
Duyuru
✖ Kapat
Duyuru

stackor

Üye
Katılım
14 Mart 2026
Mesajlar
54
Merhaba arkadaşlar, bugün sizlere sunucu güvenliğinin olmazsa olmazı iptables ile nasıl temel ve etkili güvenlik duvarı kuralları oluşturacağımızı anlatacağım. Özellikle yeni kurduğunuz bir sunucuda ilk yapmanız gereken işlemlerden biridir. Doğru kurallarla hem gereksiz trafiği engeller, hem de sunucunuzu dış tehditlere karşı önemli ölçüde korursunuz. Benim de tüm sunucularımda uyguladığım bir yöntemi adım adım paylaşacağım.

🔧 iptables Nedir ve Neden Önemli?

İptables, Linux sistemlerde ağ trafiğini filtrelemek, yönlendirmek ve değiştirmek için kullanılan güçlü bir kullanıcı uzayı uygulamasıdır. Paket filtreleme tablolarını yönetir. Basitçe, sunucunuza kimlerin bağlanabileceğini, hangi portların açık olacağını ve hangi trafiğe izin verileceğini siz belirlersiniz. Varsayılan kurallar genellikle çok gevşektir, bu yüzden onları sıkılaştırmak sistem yöneticisinin ilk görevidir.

✅ Temel Politikaları ve Zincirleri Belirleme

İşe, varsayılan politikaları (policy) güvenli hale getirerek başlıyoruz. Bu, kural eşleşmeyen paketlere ne olacağını belirler. Genel prensibimiz: "İzin verilmeyen her şey yasaktır" olmalı. Önce mevcut kuralları temizleyip temel bir başlangıç yapalım.

Bash:
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X

Şimdi INPUT (gelen), FORWARD (yönlendirilen) ve OUTPUT (giden) zincirleri için varsayılan politikaları DROP (at) yapalım. Ancak OUTPUT zincirini DROP yapmak, sunucunuzun dış dünyayla iletişimini keser, bu yüzden onu ACCEPT (kabul et) bırakıp sadece INPUT'u sıkılaştıracağız.

Bash:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

🔐 Loopback ve Yerel Trafiğe İzin Verme

İlk kuralımız, sunucunun kendi iç iletişimi (localhost/127.0.0.1) için kullandığı loopback arayüzündeki tüm trafiğe izin vermek olacak. Bu, birçok yerel servis için kritiktir.

Bash:
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

🔄 ESTABLISHED ve RELATED Bağlantıları Koruma

Bu çok önemli bir kural. Sunucunuzdan başlattığınız bir bağlantının (örneğin apt update) cevap paketlerinin geri gelmesine izin verir. Ayrıca, pasif FTP veya bazı VPN protokolleri gibi, mevcut bir bağlantıyla ilgili (RELATED) yeni bağlantıları da kabul eder. Bunu eklemezseniz sunucunuz dış dünyayla sağlıklı iletişim kuramaz.

Bash:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

⚠️ SSH Portunu Güvenli Açma

Sunucunuza uzaktan bağlanmak için SSH portunu (varsayılan 22) açmalıyız. Ancak bunu tüm dünyaya açmak risklidir. Mümkünse sadece kendi IP adresinizden veya güvendiğiniz bir ağdan erişime izin verin. Örnekte standart olarak herkese açıyorum, ama siz -s 95.70.155.55 gibi bir kaynak IP belirleyerek kısıtlayabilirsiniz.

Bash:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

🌐 Web Trafiği (HTTP/HTTPS) için Kurallar

Eğer sunucunuzda web servisi (Nginx/Apache) çalıştırıyorsanız, 80 ve 443 portlarını açmanız gerekir.

Bash:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

📡 Ping (ICMP) İsteğine İzin Verme

Ağ sorunlarını gidermek için ping atabilmek faydalıdır. ICMP protokolüne izin verelim.

Bash:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

💾 Kuralları Kalıcı Yapma

Yazdığımız kurallar şu an sadece bellekte (RAM) aktif. Sunucu yeniden başlatıldığında hepsi silinecektir. Onları kalıcı hale getirmeliyiz. Dağıtımınıza göre aşağıdaki paketlerden birini kurup kaydedebilirsiniz.

Debian/Ubuntu için:
Bash:
sudo apt-get install iptables-persistent
Kurulum sırasında mevcut kuralları kaydetmek isteyip istemediğiniz sorulur. `Evet` deyin.

RedHat/CentOS/Fedora için:
Bash:
sudo yum install iptables-services
sudo systemctl enable iptables
sudo service iptables save

Kalıcı kurallar genellikle /etc/iptables/rules.v4 (veya /etc/sysconfig/iptables) dosyasına yazılır.

🔍 Mevcut Kuralları Görüntüleme ve Test

Kurallarınızı listelemek ve numaralarıyla görmek için aşağıdaki komutları kullanın. Kural numaraları, sonradan bir kuralı silmek (sudo iptables -D INPUT 3 gibi) veya araya eklemek için önemlidir.

Bash:
sudo iptables -L -v --line-numbers
sudo iptables -L -n

Son olarak, kendi IP'nizden telnet sunucu_ip 22 veya curl -I http://sunucu_ip gibi komutlarla servislerinizin erişilebilir olduğunu test edin.

Umarım bu temel rehber, sunucu güvenliğinizi sağlam temeller üzerine kurmanıza yardımcı olur. Kurallar ihtiyacınıza göre şekillendirilebilir (ör. MySQL portu 3306 için ek kural). Ben genelde yukarıdaki yapıyı temel alıp, gerektikçe özelleştiriyorum.

Peki siz sunucularınızda güvenlik duvarı kurallarınızı nasıl yönetiyorsunuz? UFW, firewalld gibi araçları mı tercih ediyorsunuz yoksa direkt iptables ile mi çalışıyorsunuz? Deneyimlerinizi ve eklemek istediklerinizi aşağıya yazabilirsiniz. Sorularınız için çekinmeyin, elimden geldiğince yardımcı olmaya çalışırım.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri