Yetkisiz erişim ve sunuculara yönelik saldırılar ciddi tehditlerdir. Bu nedenle ağ güvenliğinizin bir parçası olarak mutlaka bir güvenlik duvarı kurmalısınız. Linux sistemlerinizdeki bu riskleri azaltmak için Iptables kurallarını nasıl kullanacağınızı bilmek büyük önem taşır. Bu kılavuz, iptables kurallarını listeleme ve silme gibi temel güvenlik duvarı kavramlarını öğrenmenize yardımcı olacak Ubuntu, bu işlemleri basit komutlarla gerçekleştirmenizi sağlayacak. iptables kurallarını listelemek veya silmek için gereken adımlara geçmeden önce, iptables kurallarının ne olduğunu ve neden kullandığımızı kısaca açıklayalım.
- Iptables Nedir?
- Ubuntu'de Iptables için kapsamlı kılavuz
- iptables kuralları nasıl silinir?
- Tüm Kurallar Nasıl Temizlenir, Tüm Zincirler Nasıl Silinir ve Tüm Trafiğe Nasıl İzin Verilir?
- Ubuntu'de iptables nasıl yapılandırılır?
- iptables ile firewalld arasındaki fark nedir?
- Son değerlendirme: iptables kurallarını listeleme
- SSS
Iptables Nedir?
iptables, aşağıdakiler aracılığıyla trafiğe izin veren ya da engelleyen bir komut satırı güvenlik duvarı aracıdır ilke zincirleri. Sisteminizde bir bağlantı kurulmaya çalışıldığında, iptables listedeki eşleşen bir kuralı arar ve ağ güvenliği konusunda size güvenilir bir yardımcı görevi görür. Eşleşen bir kural bulunamazsa varsayılan eylemi uygular.
iptables neredeyse her zaman herhangi bir Linux dağıtımı. Güncellemek veya yüklemek için aşağıdaki komutu kullanabilirsiniz:
sudo apt-get install iptables
Iptables neden kullanılır?
Bir Linux komut satırı güvenlik duvarı olan iptables, sistem yöneticilerinin yapılandırılabilir tablo kuralları aracılığıyla gelen ve giden trafiği yönetmesine olanak tanır. iptables, yerleşik veya kullanıcı tanımlı kurallar içeren zincirlerden oluşan tablolar kullanır.
Önceki bölümde de belirtildiği gibi, iptables çoğu Linux sisteminde ağ güvenliği açısından kritik bir rol oynar. Bu makalenin geri kalanı ağırlıklı olarak iptables kurallarının listelenmesini ele almaktadır; iptables kurallarını görüntüleme ve silme gibi konular da dahil olmak üzere.
Daha ayrıntılı olarak, bu makalede bazı temel iptables işlemleri ele alınacaktır: kuralları listeleme, paket ve bayt sayaçlarını sıfırlama, iptables kuralı silme, zincirleri temizleme ve tüm zincirleri silip tüm trafiği kabul etme.
Ubuntu'de Iptables için kapsamlı kılavuz
iptables kurallarını görüntülemeden önce, iptables komutunun yüklü olduğu bir Linux sunucusu kullanıyor olmanız gerektiğini unutmayın. Bunun yanı sıra sudo ayrıcalıklarına sahip olmak da zorunludur. Güvenlik duvarlarıyla çalışırken, SSH trafiğini (varsayılan olarak port:22) engelleyerek kendinizi sunucunuzdan kilitlememeye dikkat edin. Güvenlik duvarı ayarları nedeniyle erişiminizi kaybederseniz, sorunu çözmek için bant dışı bir konsol üzerinden bağlanmanız gerekebilir.
Ayrıca Okuyun: Linux'de SSH Portu Nasıl Değiştirilir | Adım Adım SSH Port Değiştirme Rehberi
Kurallara Göre Listeleme
Aktif iptables kurallarınızı görüntüleyebilirsiniz tablo şeklinde veya olarak kural tanımlarının listesi. Her iki yöntem de aynı bilgiyi farklı biçimlerde sunar. Aktif iptables kurallarını tanımlara göre listelemek için iptables komutunu -S seçeneği:
sudo iptables -S
Bu iptables kural görüntüleme komutunu çalıştırdıktan sonra şuna benzer bir çıktı göreceksiniz:

Belirli Bir Zinciri Listeleme
iptables çıktısını INPUT, OUTPUT veya TCPgibi belirli bir zincirle sınırlandırmak istiyorsanız, zincir adını doğrudan -S seçeneğinden sonra belirtebilirsiniz. Örneğin, aşağıdaki iptables kural görüntüleme komutu TCP zincirini belirtmek için kullanılır:
sudo iptables -S TCP

Daha önce de belirttiğimiz gibi, iptables kurallarını görüntülemenin başka bir yolu daha vardır: kuralları tablo biçiminde görüntüleme. Bu yönteme göz atalım.
Kuralları Tablo Olarak Listeleme
iptables kurallarını tablo biçiminde görüntüleyen bir komut kullanmak, çeşitli kuralları karşılaştırmayı kolaylaştırır. Aktif kuralların tamamını tablo olarak almak için aşağıdaki iptables komutunu -L seçeneği ile çalıştırmanız gerekir:
sudo iptables -L
Bu komut, geçerli tüm kuralları zincirlere göre sıralanmış şekilde görüntüler. Çıktıyı INPUT, OUTPUT, TCP gibi belirli bir zincirle sınırlandırmak için zincir adını doğrudan -L seçeneğinden sonra belirtmeniz yeterlidir. Aşağıda iptables çıktısının INPUT zinciriyle sınırlandırılmasına ilişkin bir örnek yer almaktadır:
sudo iptables -L INPUT

Yukarıdaki çıktının ilk satırı zincir adını (bu örnekte INPUT) ve varsayılan politikayı (DROP) gösterir. Sonraki satır tablodaki her sütunun başlıklarını ve zincir kurallarını içerir. Hepsini öğrenmenize yardımcı olmak için her birini açıklayacağız:
- Target (Hedef): Bir paket kuralla eşleştiğinde ne yapılacağını hedef belirler. Paket kabul edilebilir, atılabilir, günlüğe kaydedilebilir ya da daha fazla kuralla karşılaştırılmak üzere başka bir zincire gönderilebilir.
- prot: Protokol (TCP, udp, ICMP veya all gibi)
- opt: IP seçeneklerini gösterir (nadiren kullanılır)
- source: Trafiğin kaynak IP adresini/alt ağını gösterir
- destination: trafiğin hedef IP adresini/alt ağını gösterir
Etiketsiz sütun, bir kuralın seçeneklerini temsil eder; önceki sütunlarda belirtilmemiş tüm kural bileşenlerini içerir. Bu bilgi, kaynak ve hedef portlardan paketin bağlantı durumuna kadar her şey olabilir.
Ayrıca Okuyun: VPS'a OpenVPN Kurulumu – OpenVPN İstemci Yapılandırması 🔑
Paket sayısı ve toplam boyut nasıl görüntülenir?
iptables kurallarını listelerken, her kuralla eşleşen paket sayısını ve bu paketlerin toplam boyutunu bayt cinsinden gösterebiliriz; bu, hangi kuralların paketlerle eşleştiğini anlamak için oldukça yararlıdır. Bunu yapmak için -L ve -v seçeneklerini birlikte kullanmanız gerekir bu.
Aşağıda, INPUT zincirini -v seçeneğiyle birlikte kullandığımız bir örnek verilmiştir:
sudo iptables -L INPUT -v

Listemizde artık şu adlarla iki yeni sütun göründüğüne dikkat edin: pkts ve bytes. iptables ile tüm kuralları listelemenin çeşitli yollarını öğrendik; şimdi paket sayısını ve toplam boyutu sıfırlamanın nasıl yapıldığını ele alalım.
Paket sayısı ve toplam boyut nasıl sıfırlanır?
Kurallarınızdaki paket ve bayt sayaçlarını sıfırlamak istiyorsanız -Z seçeneğini kullanmanız gerekir. Sayaçlar, sunucu yeniden başlatıldığında da otomatik olarak sıfırlanır. Bu özellik, sunucunun mevcut kurallarınızla eşleşen yeni trafik alıp almadığını kontrol etmek istediğinizde işe yarar.
Tüm zincirler ve kurallardaki sayaçları temizlemek için şu komutu kullanabilirsiniz: -Z seçeneği kendi başına:
sudo iptables -Z
Belirli bir zincirdeki tüm kurallara ait sayaçları kaldırmak için -Z seçeneğini kullanarak ilgili zinciri belirtmeniz gerekir. Örneğin, INPUT zincirinin sayaçlarını temizlemek için şu komut kullanılır:
sudo iptables -Z INPUT
Belirli bir kurala ait sayaçları sıfırlamak istiyorsanız, zincir adını ve kural numarasını tam olarak belirtmeniz gerekir. Örneğin, INPUT zincirindeki ilk kuralın sayaçlarını sıfırlamak için şu komutu çalıştırabilirsiniz:
sudo iptables -Z INPUT 1
iptables ile tüm kuralları listeleme ve paket ile bayt sayaçlarını sıfırlama yöntemlerini bilmenin yanı sıra, iptables kurallarının nasıl kaldırılacağını da bilmek önemlidir.
Ayrıca Okuyun: VPS'nize PPTP VPN Sunucusu Nasıl Kurulur?
iptables kuralları nasıl silinir?
iptables kurallarını kaldırmak ya da bir zincirdeki tüm kuralları silmek için birden fazla yöntem kullanabilirsiniz. Bu yöntemleri aşağıda ele alacağız.
Kurallara Göre Silme
iptables kurallarını kaldırmanın yollarından biri, kural tanımını kullanmaktır. Bu yöntemle iptables komutunu -D seçeneği ve kural tanımıyla birlikte çalıştırırsınız. Bu tekniği kullanmak istiyorsanız, kural listesinin çıktısından (iptables -S) yararlanabilirsiniz.
Örneğin, geçersiz gelen paketleri düşüren kuralı (-A INPUT -m conntrack --ctstate INVALID -j DROP) silmek için şu komutu çalıştırabilirsiniz:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
-A seçeneğinin, kural oluşturulurken konumunu belirtmeye yaradığını ve bu komutta kullanılmaması gerektiğini unutmayın.
Zincir ve numaraya göre kural silme
iptables kurallarını kaldırmanın diğer yöntemi, zincir adı ve satır numarası kullanmaktır. Bir kuralın satır numarasını görmek için kuralları tablo biçiminde listeleyip --line-numbers seçeneği:
sudo iptables -L --line-numbers

Bu komut çalıştırıldıktan sonra, tüm iptables kuralları num başlığıyla gösterilen satır numaralarına sahip olur.
Silmek istediğiniz kuralı belirledikten sonra, zincir adını ve satır numarasını not edin. Ardından iptables -D komutunu zincir adı ve kural numarasıyla birlikte kullanmanız gerekir. Örneğin, geçersiz paketleri düşüren INPUT kuralını silmek istiyorsanız, bunun INPUT zincirinin 3. kuralı olduğunu görebilirsiniz. Şu komutu çalıştırın:
sudo iptables -D INPUT 3
Zincirler nasıl temizlenir?
Bir zincirdeki tüm iptables kurallarını kaldırmanın bir yolu daha vardır; buna zinciri temizleme. Bu bölümde bunu yapmanın çeşitli yöntemlerini ele alacağız. Devam etmeden önce, varsayılan ilkesi drop veya deny olan bir zinciri temizlerken SSH üzerinden sunucudan kilitlenmemeye dikkat edin. Aksi takdirde erişiminizi düzeltmek için konsol üzerinden bağlanmanız gerekebilir.
Tek Bir Zinciri Temizleme
Belirli bir zinciri temizlemek, yani o zincirdeki tüm kuralları silmek için -F veya dengi --flush seçeneği komutunu ve seçilen zincirin adını kullanabilirsiniz. Örneğin INPUT zincirindeki tüm kuralları kaldırmak istiyorsanız ne yapmanız gerekir? Basit; şu komutu çalıştırın:
sudo iptables -F INPUT
Tüm Zincirleri Temizleme
Tüm zincirleri temizlemek için -F seçeneğini ya da eşdeğeri olan –flush seçeneğini tek başına kullanabilirsiniz:
sudo iptables -F
Tüm Kurallar Nasıl Temizlenir, Tüm Zincirler Nasıl Silinir ve Tüm Trafiğe Nasıl İzin Verilir?
Bu adımda tüm güvenlik duvarı kurallarını, tablolarını ve zincirlerini temizlemeyi ve tüm ağ trafiğine izin vermeyi anlatacağız. Bu işlemin güvenlik duvarını tamamen devre dışı bıraktığını unutmayın. Dolayısıyla bu bölümü yalnızca güvenlik duvarı yapılandırmanıza sıfırdan başlamak istiyorsanız uygulayın.
Önce yerleşik zincirlerin her birinin varsayılan ilkesini ACCEPT olarak ayarlamanız gerekir. Bunu yapmanın temel nedeni, SSH ile sunucudan kilitlenmemenizi sağlamaktır:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Ardından nat ve mangle tablolarını temizlemeniz, tüm zincirleri temizlemeniz (-F)ve varsayılan olmayan tüm zincirleri silmeniz gerekir (-X) böyle:
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
Önceki komutları çalıştırdıktan sonra güvenlik duvarı tüm ağ trafiğine izin verecektir. Kurallarınızı bu noktada listelediğinizde hiçbirini göremezsiniz; yalnızca INPUT, FORWARD ve OUTPUT olmak üzere üç varsayılan zincir kalır.
Ubuntu'de iptables nasıl yapılandırılır?
Temel güvenlik duvarı davranışında olduğu gibi, iptables kuralları her zincirde listelendikleri sıraya göre okunur. Bu nedenle kuralları doğru sırayla tanımlamanız gerekir. Yeni kurallar eklediğinizde bunlar kural listesinin sonuna eklenir. Belirli bir konuma kural eklemek için iptables -I <index> -command. Bu <index> komutunu kullanarak kural ekleyebilirsiniz. Bu komuttaki <index>, kuralı hangi sıraya eklemek istediğinizi belirtir. Hangi indeks numarasını kullanacağınızı öğrenmek için şu komutu çalıştırabilirsiniz:
sudo iptables -L --line-numbers
Her kural satırının başındaki numara, zincirdeki konumu gösterir. Mevcut bir kuralın üstüne yeni bir kural eklemek için o kuralın indeks numarasını kullanmanız gerekir. Örneğin zincirin en başına kural eklemek istiyorsanız 1 indeks numarasıyla şu komutu kullanmalısınız:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
iptables ile firewalld arasındaki fark nedir?
Hem iptables hem de firewalld, paket filtreleme (statik filtreleme) için tasarlanmış çeşitli Linux sistemlerinde güvenlik duvarı yönetiminde kullanılan pratik araçlardır. Paket filtreleme, kullanıcıların gelen ve giden veri paketlerini yöneterek belirli bir ağa erişimi denetlemesini sağlayan bir güvenlik duvarı stratejisidir. Paketler, kaynak ve hedef protokolleri, portlar ve IP adresleri hakkında önceden tanımlanmış kurallara göre ya geçirilir ya da engellenir. Bu kurallar, sistem LAN'ının (Yerel Alan Ağı) dışından yönlendirilen cihazlara karşı etkili bir savunma mekanizması oluşturur.
firewalld'nin başlangıçta kullanıcıların iptables'ta gezinmesini kolaylaştırmak amacıyla iptables'ı yönetmeye yönelik bir yazılım olarak tanıtıldığını belirtmek gerekir. firewalld ve iptables'a bu kısa girişin ardından, ikisini daha ayrıntılı biçimde karşılaştıralım.
iptables - firewalld: Sistem yapılandırması
firewalld ve iptables farklı yapılandırma ve varsayılan depolama ayarları kullanır. iptables'ta her değişiklik, tüm eski kuralların temizlenerek yenilerinin yüklenmesini gerektirir; bu nedenle sistemin yeniden başlatılması gerekir. firewalld'de ise kurallar yeniden oluşturulmaz; yalnızca yapılan değişiklikler mevcut kurallara uygulanır ve bu değişiklikler çalışma zamanında hemen etkili olur.
iptables - firewalld: Kullanıcı arayüzü
firewalld grafik kullanıcı arayüzü (GUI) kullanırken iptables komut satırı arayüzü (CLI) kullanır. Bazı kullanıcılar için iptables aracılığıyla Linux çekirdeği güvenlik duvarı kurallarına erişmek zorlaşabilir; bu da firewalld'yi daha kullanışlı bir seçenek haline getirir. Öte yandan iptables, kısa komutlar kullandığından daha hızlı yanıt süresi sunar. Her iki aracın da farklı kullanım senaryoları bulunduğundan, daha rahat çalıştığınızı tercih edin.
Son değerlendirme: iptables kurallarını listeleme
iptables, Linux işletim sistemleri için özel olarak geliştirilmiş esnek bir güvenlik duvarı yardımcı programıdır. Linux ile yeni tanışıyor olun ya da deneyimli bir sistem yöneticisi olun, iptables kurallarının işinize yarayacağı mutlaka bir durum vardır. Bu makalede iptables'ın temel komutları ele alındı; iptables kurallarını listeleme ve silme dahil olmak üzere Linux yeteneklerine kısa bir genel bakış sunuldu. Bunun yanı sıra Linux VPS barındırma çözümlerimizi kullanarak bu güçlü işletim sisteminden tam anlamıyla yararlanabilirsiniz. Cloudzy olarak web barındırma, web uygulaması dağıtımı ya da kod geliştirme, test etme ve otomasyon ortamı kurma gibi farklı kullanım senaryolarına uygun çeşitli KVM tabanlı Linux VPS planları sunuyoruz.
SSS
Linux iptables kuralları kurallara göre nasıl listelenir?
Aktif iptables kurallarını belirtimleri veya işlevlerine göre listelemek istiyorsanız iptables komutunun ardından -S bayrağıseçeneğini kullanabilirsiniz. Bu durumda sudo anahtar sözcüğünü kullandığınızdan emin olun:
sudo iptables -S
iptables kuralları nasıl silinir?
Belirli bir zinciri kaldırmak için (bu işlem zincirdeki tüm kuralları siler), şunları yapmalısınız: Zincirin adıyla birlikte -F veya --flush seçeneğini kullanın. OUTPUT zincirindeki tüm kuralları silmek istediğimizi varsayalım. Ne yapmalıyız? Şu komutu çalıştırmanız gerekiyor:
sudo iptables -F OUTPUT
Ubuntu'de iptables nasıl çalışır?
iptables güvenlik duvarı, ağ trafiğini bir dizi kuralla karşılaştırır. iptables kuralları, eşleşme ölçütlerini ve eşleşme durumunda hangi işlemin uygulanacağını belirler. Belirli bir kuralla hangi paketlerin eşleşeceğini tanımlamak için pek çok farklı seçenek mevcuttur.
iptables kuralları anında devreye girer mi? Neden?
Evet, iptables kuralları anında etkinleşir. Betiğiniz INPUT ve OUTPUT zincirlerine kural eklediğinden, yeni kurallar bu zincirlerin sonuna eklenir.