{"id":39173,"date":"2026-02-16T00:40:41","date_gmt":"2026-02-15T21:40:41","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=39173"},"modified":"2026-02-16T00:40:41","modified_gmt":"2026-02-15T21:40:41","slug":"iptables-guvenlik-duvari-nasil-calisir","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/","title":{"rendered":"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?"},"content":{"rendered":"<p><body><\/p>\n<h2>Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/h2>\n<p>Linux i\u015fletim sistemlerinde a\u011f trafi\u011fini y\u00f6netmek ve filtrelemek i\u00e7in kullan\u0131lan en g\u00fc\u00e7l\u00fc ve esnek ara\u00e7lardan biri Iptables&#8217;t\u0131r. Bir\u00e7ok Linux da\u011f\u0131t\u0131m\u0131nda varsay\u0131lan g\u00fcvenlik duvar\u0131 aray\u00fcz\u00fc olarak g\u00f6rev yapan Iptables, sistem y\u00f6neticilerine gelen ve giden paketler \u00fczerinde detayl\u0131 kontrol imkan\u0131 sunar. Bu makalede, Iptables&#8217;\u0131n temel \u00e7al\u0131\u015fma prensiplerini, mimarisini, ana bile\u015fenlerini ve pratik kullan\u0131m senaryolar\u0131n\u0131 ayr\u0131nt\u0131l\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h3>Giri\u015f: Iptables ve Netfilter \u00c7er\u00e7evesi<\/h3>\n<p>Iptables, asl\u0131nda Linux \u00e7ekirde\u011finde yer alan Netfilter adl\u0131 bir paketin kullan\u0131c\u0131 alan\u0131 aray\u00fcz\u00fcd\u00fcr. Netfilter, a\u011f paketlerinin \u00e7ekirdek i\u00e7inde belirli noktalarda yakalanmas\u0131n\u0131 ve \u00fczerinde i\u015flemler yap\u0131lmas\u0131n\u0131 sa\u011flayan bir \u00e7er\u00e7evedir. Iptables ise bu \u00e7er\u00e7eveyi kullanarak kurallar tan\u0131mlamam\u0131z\u0131 ve bu kurallar\u0131 y\u00f6netmemizi sa\u011flayan komut sat\u0131r\u0131 arac\u0131d\u0131r. Ba\u015fka bir deyi\u015fle, Netfilter, paketin nerede durdurulaca\u011f\u0131n\u0131 ve ne i\u015flem yap\u0131laca\u011f\u0131n\u0131 belirleyen altyap\u0131y\u0131 sa\u011flarken, Iptables bu altyap\u0131y\u0131 kullanarak &#8220;\u015fu kaynaktan gelen, \u015fu porta giden paketi engelle&#8221; gibi talimatlar\u0131 \u00e7ekirde\u011fe iletir.<\/p>\n<p>Iptables&#8217;\u0131n temel amac\u0131, bir a\u011f aray\u00fcz\u00fcnden ge\u00e7en her IP paketini analiz etmek ve tan\u0131mlanm\u0131\u015f kurallar setine g\u00f6re bu paketler \u00fczerinde belirli eylemleri ger\u00e7ekle\u015ftirmektir. Bu eylemler paketin kabul edilmesi (ACCEPT), reddedilmesi (DROP\/REJECT), ba\u015fka bir adrese y\u00f6nlendirilmesi (NAT) veya g\u00fcnl\u00fc\u011fe kaydedilmesi (LOG) gibi \u00e7e\u015fitli i\u015flemler olabilir.<\/p>\n<h3>Iptables&#8217;\u0131n Temel Bile\u015fenleri<\/h3>\n<p>Iptables&#8217;\u0131n \u00e7al\u0131\u015fma mant\u0131\u011f\u0131n\u0131 anlamak i\u00e7in \u00fc\u00e7 anahtar bile\u015feni kavramak \u00f6nemlidir: Tablolar (Tables), Zincirler (Chains) ve Hedefler (Targets) veya Eylemler (Actions).<\/p>\n<h4>Tablolar (Tables)<\/h4>\n<p>Tablolar, belirli bir amaca y\u00f6nelik kurallar\u0131n grupland\u0131r\u0131ld\u0131\u011f\u0131 yap\u0131lard\u0131r. Her tablo, farkl\u0131 t\u00fcrde paket i\u015fleme g\u00f6revlerini yerine getirir. Iptables&#8217;ta be\u015f ana tablo bulunur:<\/p>\n<p>*   <strong>filter Tablosu:<\/strong> Bu tablo, ad\u0131ndan da anla\u015f\u0131laca\u011f\u0131 gibi, paket filtreleme (yani gelen, giden veya y\u00f6nlendirilen paketleri engelleme veya izin verme) i\u00e7in kullan\u0131l\u0131r. En s\u0131k kullan\u0131lan tablodur ve varsay\u0131lan tablodur. E\u011fer <code>-t<\/code> parametresi belirtilmezse, Iptables otomatik olarak <code>filter<\/code> tablosunu kullan\u0131r.<br \/>\n*   <strong>nat Tablosu:<\/strong> A\u011f Adresi \u00c7evirisi (Network Address Translation &#8211; NAT) i\u015flemleri i\u00e7in kullan\u0131l\u0131r. Bu tablo, paketlerin kaynak veya hedef adreslerini\/portlar\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7in idealdir. \u00d6rne\u011fin, bir i\u00e7 a\u011fdaki birden fazla bilgisayar\u0131n tek bir genel IP adresi \u00fczerinden internete \u00e7\u0131kmas\u0131 (masquerading) veya d\u0131\u015far\u0131dan gelen bir iste\u011fin i\u00e7 a\u011fdaki belirli bir sunucuya y\u00f6nlendirilmesi (port y\u00f6nlendirme) gibi senaryolarda kullan\u0131l\u0131r.<br \/>\n*   <strong>mangle Tablosu:<\/strong> Paket ba\u015fl\u0131klar\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r. Bu tablo, paketlerin Hizmet Kalitesi (Quality of Service &#8211; QoS) veya di\u011fer geli\u015fmi\u015f y\u00f6nlendirme senaryolar\u0131 i\u00e7in i\u015faretlenmesi gibi daha \u00f6zel durumlar i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, belirli bir t\u00fcr trafi\u011fe \u00f6ncelik vermek i\u00e7in paketlerin ToS (Type of Service) bitlerini de\u011fi\u015ftirebilir.<br \/>\n*   <strong>raw Tablosu:<\/strong> Ba\u011flant\u0131 takibi (connection tracking) mekanizmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakmak veya paketleri bu mekanizma taraf\u0131ndan i\u015flenmeden \u00f6nce manip\u00fcle etmek i\u00e7in kullan\u0131l\u0131r. Genellikle \u00e7ok \u00f6zel ve performans odakl\u0131 senaryolarda tercih edilir. \u00d6rne\u011fin, SYN paketlerini ba\u011flant\u0131 takibi taraf\u0131ndan i\u015flenmeden \u00f6nce d\u00fc\u015f\u00fcrmek isteyebilirsiniz.<br \/>\n*   <strong>security Tablosu:<\/strong> SELinux gibi g\u00fcvenlik mekanizmalar\u0131yla entegre \u00e7al\u0131\u015f\u0131r ve paketlere g\u00fcvenlik ba\u011flam\u0131 etiketi ekler. Daha \u00e7ok geli\u015fmi\u015f g\u00fcvenlik politikalar\u0131 uygulayan sistemlerde kullan\u0131l\u0131r.<\/p>\n<h4>Zincirler (Chains)<\/h4>\n<p>Her tablo, paketlerin belirli noktalarda i\u015flenmesini sa\u011flayan \u00f6nceden tan\u0131mlanm\u0131\u015f veya kullan\u0131c\u0131 tan\u0131ml\u0131 zincirlerden olu\u015fur. Bir paket, a\u011f aray\u00fcz\u00fcne ula\u015ft\u0131\u011f\u0131nda veya bir uygulamadan ayr\u0131ld\u0131\u011f\u0131nda, belirli bir s\u0131rayla bu zincirlerden ge\u00e7er.<\/p>\n<p>\u00d6nceden Tan\u0131mlanm\u0131\u015f Zincirler (Built-in Chains):<\/p>\n<p>*   <strong>PREROUTING:<\/strong> Bir paket sisteme ula\u015ft\u0131\u011f\u0131nda, ancak y\u00f6nlendirme karar\u0131 verilmeden hemen \u00f6nce <code>nat<\/code>, <code>raw<\/code> ve <code>mangle<\/code> tablolar\u0131nda bu zincire u\u011frar. \u00d6zellikle hedef NAT (DNAT) i\u015flemleri burada yap\u0131l\u0131r.<br \/>\n*   <strong>INPUT:<\/strong> Paketin yerel sisteme (yani g\u00fcvenlik duvar\u0131n\u0131n kendisine) y\u00f6nelik oldu\u011fu durumlarda <code>filter<\/code> ve <code>security<\/code> tablolar\u0131nda bu zincire u\u011frar.<br \/>\n*   <strong>FORWARD:<\/strong> Paketin yerel sistemden ge\u00e7ip ba\u015fka bir hedefe y\u00f6nlendirildi\u011fi durumlarda <code>filter<\/code> ve <code>security<\/code> tablolar\u0131nda bu zincire u\u011frar. Router veya a\u011f ge\u00e7idi g\u00f6revi g\u00f6ren sistemlerde kritik \u00f6neme sahiptir.<br \/>\n*   <strong>OUTPUT:<\/strong> Yerel sistem taraf\u0131ndan olu\u015fturulan (yani g\u00fcvenlik duvar\u0131ndan \u00e7\u0131kan) paketler i\u00e7in <code>raw<\/code>, <code>mangle<\/code>, <code>nat<\/code>, <code>filter<\/code> ve <code>security<\/code> tablolar\u0131nda bu zincire u\u011frar. \u00d6zellikle kaynak NAT (SNAT) i\u015flemleri burada yap\u0131l\u0131r.<br \/>\n*   <strong>POSTROUTING:<\/strong> Y\u00f6nlendirme karar\u0131 verildikten ve paket sistemden ayr\u0131lmadan hemen \u00f6nce <code>nat<\/code> ve <code>mangle<\/code> tablolar\u0131nda bu zincire u\u011frar. \u00d6zellikle kaynak NAT (SNAT) ve Masquerading i\u015flemleri burada yap\u0131l\u0131r.<\/p>\n<p>Bir paketin sistem i\u00e7indeki ak\u0131\u015f\u0131 \u015fu \u015fekildedir:<br \/>\n1.  <strong>Gelen Paket:<\/strong> <code>PREROUTING<\/code> -> (Y\u00f6nlendirme Karar\u0131) -> E\u011fer hedef yerel sistem ise -> <code>INPUT<\/code> -> Yerel \u0130\u015flem.<br \/>\n2.  <strong>Gelen Paket:<\/strong> <code>PREROUTING<\/code> -> (Y\u00f6nlendirme Karar\u0131) -> E\u011fer hedef ba\u015fka bir sistem ise -> <code>FORWARD<\/code> -> <code>POSTROUTING<\/code> -> A\u011fdan \u00c7\u0131k\u0131\u015f.<br \/>\n3.  <strong>Yerel Olu\u015fturulan Paket:<\/strong> <code>OUTPUT<\/code> -> <code>POSTROUTING<\/code> -> A\u011fdan \u00c7\u0131k\u0131\u015f.<\/p>\n<p>Her zincir, bir dizi kural i\u00e7erir. Bir paket bir zincire girdi\u011finde, zincirdeki kurallar s\u0131ras\u0131yla kontrol edilir. Bir kural paketle e\u015fle\u015firse, ilgili hedef (action) uygulan\u0131r ve genellikle paketin zincirdeki di\u011fer kurallar\u0131 kontrol etmesi durdurulur.<\/p>\n<h4>Hedefler (Targets) \/ Eylemler (Actions)<\/h4>\n<p>Bir kural bir paketle e\u015fle\u015fti\u011finde ne yap\u0131laca\u011f\u0131n\u0131 belirleyen k\u0131s\u0131md\u0131r.<\/p>\n<p>*   <strong>ACCEPT:<\/strong> Paketin ge\u00e7mesine izin verir. Paket, bir sonraki a\u015famaya ge\u00e7er veya hedefine ula\u015f\u0131r.<br \/>\n*   <strong>DROP:<\/strong> Paketi sessizce d\u00fc\u015f\u00fcr\u00fcr. G\u00f6ndericiye herhangi bir yan\u0131t g\u00f6nderilmez, bu da paketin kayboldu\u011fu izlenimini verir. G\u00fcvenlik a\u00e7\u0131s\u0131ndan genellikle <code>REJECT<\/code>&#8216;ten daha iyidir \u00e7\u00fcnk\u00fc sald\u0131rgan\u0131n portun a\u00e7\u0131k olup olmad\u0131\u011f\u0131n\u0131 anlamas\u0131n\u0131 zorla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>REJECT:<\/strong> Paketi d\u00fc\u015f\u00fcr\u00fcr ancak g\u00f6ndericiye bir hata mesaj\u0131 (\u00f6rne\u011fin, &#8220;Hedefe ula\u015f\u0131lam\u0131yor&#8221; veya &#8220;Ba\u011flant\u0131 reddedildi&#8221;) geri g\u00f6nderir. Bu, ba\u011flant\u0131 denemelerinin daha h\u0131zl\u0131 ba\u015far\u0131s\u0131z olmas\u0131na yard\u0131mc\u0131 olabilir ancak portun kapal\u0131 oldu\u011funu belli eder.<br \/>\n*   <strong>LOG:<\/strong> Paketi sistem g\u00fcnl\u00fc\u011f\u00fcne (syslog) kaydeder. Bu genellikle bir paketi d\u00fc\u015f\u00fcrmeden veya kabul etmeden \u00f6nce izleme ve hata ay\u0131klama amac\u0131yla kullan\u0131l\u0131r.<br \/>\n*   <strong>SNAT (Source Network Address Translation):<\/strong> Giden paketlerin kaynak IP adresini de\u011fi\u015ftirir. Genellikle <code>POSTROUTING<\/code> zincirinde kullan\u0131l\u0131r.<br \/>\n*   <strong>DNAT (Destination Network Address Translation):<\/strong> Gelen paketlerin hedef IP adresini de\u011fi\u015ftirir. Genellikle <code>PREROUTING<\/code> zincirinde kullan\u0131l\u0131r.<br \/>\n*   <strong>MASQUERADE:<\/strong> SNAT&#8217;\u0131n \u00f6zel bir bi\u00e7imidir. Kaynak IP adresi, giden aray\u00fcz\u00fcn mevcut IP adresiyle otomatik olarak de\u011fi\u015ftirilir. Dinamik IP adresleri olan ba\u011flant\u0131lar i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. <code>POSTROUTING<\/code> zincirinde kullan\u0131l\u0131r.<br \/>\n*   <strong>RETURN:<\/strong> Paketin mevcut zincirden \u00e7\u0131k\u0131p, paketi \u00e7a\u011f\u0131ran zincirdeki bir sonraki kurala d\u00f6nmesini sa\u011flar. Kullan\u0131c\u0131 tan\u0131ml\u0131 zincirlerde yayg\u0131n olarak kullan\u0131l\u0131r.<br \/>\n*   <strong>JUMP (Kullan\u0131c\u0131 Tan\u0131ml\u0131 Zincirlere Atlama):<\/strong> Paketi belirli bir kullan\u0131c\u0131 tan\u0131ml\u0131 zincire y\u00f6nlendirir. Bu, karma\u015f\u0131k kural setlerini mod\u00fcler hale getirmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h3>Iptables Komut Yap\u0131s\u0131<\/h3>\n<p>Iptables kurallar\u0131, belirli bir s\u00f6zdizimi kullan\u0131larak komut sat\u0131r\u0131ndan y\u00f6netilir. Genel s\u00f6zdizimi \u015f\u00f6yledir:<br \/>\n<code>iptables [-t tablo] komut [zincir] [e\u015fle\u015fme] [-j hedef]<\/code><\/p>\n<p>*   <code>-t tablo<\/code>: Kural\u0131n uygulanaca\u011f\u0131 tabloyu belirtir (\u00f6rn. <code>filter<\/code>, <code>nat<\/code>). Belirtilmezse <code>filter<\/code> varsay\u0131land\u0131r.<br \/>\n*   <code>komut<\/code>: Kural \u00fczerinde yap\u0131lacak i\u015flemi belirtir.<br \/>\n*   <code>zincir<\/code>: Kural\u0131n hangi zincire uygulanaca\u011f\u0131n\u0131 belirtir (\u00f6rn. <code>INPUT<\/code>, <code>OUTPUT<\/code>, <code>FORWARD<\/code>).<br \/>\n*   <code>e\u015fle\u015fme<\/code>: Paketin hangi \u00f6zelliklere sahip olmas\u0131 gerekti\u011fini belirtir (\u00f6rn. kaynak IP, hedef port, protokol).<br \/>\n*   <code>-j hedef<\/code>: Paket e\u015fle\u015fti\u011finde yap\u0131lacak eylemi belirtir.<\/p>\n<h4>Yayg\u0131n Iptables Komutlar\u0131<\/h4>\n<p>*   <strong><code>-A<\/code> (Append):<\/strong> Bir kural\u0131 zincirin sonuna ekler.<br \/>\n    <code>iptables -A INPUT -p tcp --dport 22 -j ACCEPT<\/code> (SSH portuna gelen ba\u011flant\u0131lara izin ver)<br \/>\n*   <strong><code>-I<\/code> (Insert):<\/strong> Bir kural\u0131 zincirin belirtilen pozisyonuna (varsay\u0131lan olarak ba\u015f\u0131na) ekler.<br \/>\n    <code>iptables -I INPUT 1 -s 192.168.1.100 -j ACCEPT<\/code> (Belirli bir IP&#8217;den gelen trafi\u011fe ilk kural olarak izin ver)<br \/>\n*   <strong><code>-D<\/code> (Delete):<\/strong> Bir kural\u0131 siler. Kural numaras\u0131 veya kural\u0131n tam tan\u0131m\u0131 ile silinebilir.<br \/>\n    <code>iptables -D INPUT -p tcp --dport 22 -j ACCEPT<\/code> veya <code>iptables -D INPUT 1<\/code><br \/>\n*   <strong><code>-R<\/code> (Replace):<\/strong> Bir kural\u0131 ba\u015fka bir kural ile de\u011fi\u015ftirir.<br \/>\n    <code>iptables -R INPUT 1 -p tcp --dport 80 -j ACCEPT<\/code> (Zincirdeki 1 numaral\u0131 kural\u0131 HTTP portuna izin veren kural ile de\u011fi\u015ftir)<br \/>\n*   <strong><code>-L<\/code> (List):<\/strong> Kurallar\u0131 listeler.<br \/>\n    <code>iptables -L<\/code> (T\u00fcm filter tablosundaki kurallar\u0131 listeler)<br \/>\n    <code>iptables -L -n -v<\/code> (IP adreslerini \u00e7\u00f6zmeden, detayl\u0131 ve paket\/bayt say\u0131mlar\u0131yla listeler)<br \/>\n    <code>iptables -t nat -L<\/code> (nat tablosundaki kurallar\u0131 listeler)<br \/>\n*   <strong><code>-F<\/code> (Flush):<\/strong> Bir zincirdeki t\u00fcm kurallar\u0131 siler.<br \/>\n    <code>iptables -F<\/code> (T\u00fcm filter zincirlerindeki kurallar\u0131 siler)<br \/>\n    <code>iptables -F INPUT<\/code> (Sadece INPUT zincirindeki kurallar\u0131 siler)<br \/>\n*   <strong><code>-Z<\/code> (Zero):<\/strong> Zincirlerdeki ve kurallardaki paket\/bayt saya\u00e7lar\u0131n\u0131 s\u0131f\u0131rlar.<br \/>\n    <code>iptables -Z<\/code><br \/>\n*   <strong><code>-N<\/code> (New chain):<\/strong> Yeni bir kullan\u0131c\u0131 tan\u0131ml\u0131 zincir olu\u015fturur.<br \/>\n    <code>iptables -N HTTP_LOG<\/code><br \/>\n*   <strong><code>-X<\/code> (Delete chain):<\/strong> Bo\u015f bir kullan\u0131c\u0131 tan\u0131ml\u0131 zinciri siler.<br \/>\n    <code>iptables -X HTTP_LOG<\/code><br \/>\n*   <strong><code>-P<\/code> (Policy):<\/strong> Zincirin varsay\u0131lan politikas\u0131n\u0131 ayarlar (ACCEPT, DROP, REJECT). Bu, hi\u00e7bir kural e\u015fle\u015fmedi\u011finde ne yap\u0131laca\u011f\u0131n\u0131 belirler.<br \/>\n    <code>iptables -P INPUT DROP<\/code> (Gelen trafi\u011fi varsay\u0131lan olarak d\u00fc\u015f\u00fcr)<\/p>\n<h4>E\u015fle\u015fme Kriterleri (Matches)<\/h4>\n<p>Kurallar\u0131n hangi paketlere uygulanaca\u011f\u0131n\u0131 belirlemek i\u00e7in \u00e7e\u015fitli e\u015fle\u015fme kriterleri kullan\u0131l\u0131r.<\/p>\n<p>*   <strong>Genel E\u015fle\u015fmeler:<\/strong><br \/>\n    *   <code>-p protokol<\/code>: Protokol\u00fc belirtir (\u00f6rn. <code>tcp<\/code>, <code>udp<\/code>, <code>icmp<\/code>, <code>all<\/code>).<br \/>\n    *   <code>-s kaynak_ip<\/code>: Kaynak IP adresini veya a\u011f\u0131n\u0131 belirtir (\u00f6rn. <code>192.168.1.0\/24<\/code>, <code>www.example.com<\/code>).<br \/>\n    *   <code>-d hedef_ip<\/code>: Hedef IP adresini veya a\u011f\u0131n\u0131 belirtir.<br \/>\n    *   <code>-i giri\u015f_aray\u00fcz\u00fc<\/code>: Paketin hangi a\u011f aray\u00fcz\u00fcnden geldi\u011fini belirtir (\u00f6rn. <code>eth0<\/code>, <code>lo<\/code>).<br \/>\n    *   <code>-o \u00e7\u0131k\u0131\u015f_aray\u00fcz\u00fc<\/code>: Paketin hangi a\u011f aray\u00fcz\u00fcnden \u00e7\u0131kt\u0131\u011f\u0131n\u0131 belirtir.<br \/>\n*   <strong>Ek E\u015fle\u015fme Mod\u00fclleri (Extension Matches):<\/strong><br \/>\n    *   <code>--sport port<\/code>: TCP\/UDP kaynak portu.<br \/>\n    *   <code>--dport port<\/code>: TCP\/UDP hedef portu.<br \/>\n    *   <code>--tcp-flags SYN,ACK,FIN,RST SYN<\/code>: Belirli TCP bayraklar\u0131n\u0131 kontrol eder (\u00f6rn. sadece SYN bayra\u011f\u0131 set edilmi\u015f paketler).<br \/>\n    *   <code>--icmp-type tip<\/code>: ICMP mesaj tipini belirtir (\u00f6rn. <code>echo-request<\/code> ping i\u00e7in).<br \/>\n    *   <code>--state durum<\/code>: Ba\u011flant\u0131 takibi durumuna g\u00f6re e\u015fle\u015fir.<br \/>\n        *   <code>NEW<\/code>: Yeni bir ba\u011flant\u0131n\u0131n ilk paketi.<br \/>\n        *   <code>ESTABLISHED<\/code>: Mevcut bir ba\u011flant\u0131ya ait paket.<br \/>\n        *   <code>RELATED<\/code>: Mevcut bir ba\u011flant\u0131yla ili\u015fkili yeni bir ba\u011flant\u0131 (\u00f6rn. FTP veri ba\u011flant\u0131s\u0131).<br \/>\n        *   <code>INVALID<\/code>: Ge\u00e7ersiz veya tan\u0131nmayan paket.<br \/>\n    *   <code>--mac-source MAC_adresi<\/code>: Kaynak MAC adresine g\u00f6re e\u015fle\u015fir.<br \/>\n    *   <code>--limit oran<\/code>: Belirli bir oran\u0131n \u00fczerindeki ba\u011flant\u0131 denemelerini s\u0131n\u0131rlar (DDoS korumas\u0131 i\u00e7in basit bir y\u00f6ntem).<br \/>\n    *   <code>--multiport --dports port1,port2<\/code>: Birden fazla hedef portu belirtir.<\/p>\n<h3>Pratik Uygulamalar ve \u00d6rnekler<\/h3>\n<p>Iptables&#8217;\u0131n g\u00fcc\u00fcn\u00fc anlamak i\u00e7in baz\u0131 pratik senaryolar\u0131 inceleyelim.<\/p>\n<h4>Temel G\u00fcvenlik Duvar\u0131 Kurulumu<\/h4>\n<p>Bir sunucuyu d\u0131\u015f d\u00fcnyaya kar\u015f\u0131 korumak i\u00e7in genellikle a\u015fa\u011f\u0131daki ad\u0131mlar izlenir:<\/p>\n<p>1.  <strong>Mevcut Kurallar\u0131 Temizle ve Saya\u00e7lar\u0131 S\u0131f\u0131rla:<\/strong><br \/>\n    <code>iptables -F<\/code><br \/>\n    <code>iptables -X<\/code><br \/>\n    <code>iptables -Z<\/code><br \/>\n    <code>iptables -t nat -F<\/code><br \/>\n    <code>iptables -t nat -X<\/code><br \/>\n    <code>iptables -t mangle -F<\/code><br \/>\n    <code>iptables -t mangle -X<\/code><br \/>\n    <code>iptables -t raw -F<\/code><br \/>\n    <code>iptables -t raw -X<\/code><\/p>\n<p>2.  <strong>Varsay\u0131lan Politikalar\u0131 Belirle:<\/strong> G\u00fcvenli bir duru\u015f i\u00e7in varsay\u0131lan olarak her \u015feyi reddetmek ve sadece izin verilen trafi\u011fe ge\u00e7it vermek en iyi yakla\u015f\u0131md\u0131r.<br \/>\n    <code>iptables -P INPUT DROP<\/code><br \/>\n    <code>iptables -P FORWARD DROP<\/code><br \/>\n    <code>iptables -P OUTPUT ACCEPT<\/code> (Sunucunun d\u0131\u015far\u0131ya do\u011fru ba\u011flant\u0131 kurmas\u0131na genellikle izin verilir, ancak daha s\u0131k\u0131 g\u00fcvenlik i\u00e7in bu da DROP yap\u0131labilir.)<\/p>\n<p>3.  <strong>Loopback Aray\u00fcz\u00fcne \u0130zin Ver:<\/strong> Yerel uygulamalar\u0131n kendi aralar\u0131nda ileti\u015fim kurabilmesi i\u00e7in gereklidir.<br \/>\n    <code>iptables -A INPUT -i lo -j ACCEPT<\/code><br \/>\n    <code>iptables -A OUTPUT -o lo -j ACCEPT<\/code><\/p>\n<p>4.  <strong>Mevcut ve \u0130li\u015fkili Ba\u011flant\u0131lara \u0130zin Ver:<\/strong> Daha \u00f6nce ba\u015flat\u0131lm\u0131\u015f veya ili\u015fkili olan ba\u011flant\u0131lar\u0131n devam etmesini sa\u011flar. Bu kural, <code>OUTPUT<\/code> politikas\u0131 <code>DROP<\/code> olarak ayarland\u0131\u011f\u0131nda da gereklidir.<br \/>\n    <code>iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT<\/code><\/p>\n<p>5.  <strong>Belirli Servislere Gelen Ba\u011flant\u0131lara \u0130zin Ver:<\/strong><br \/>\n    *   <strong>SSH (Port 22):<\/strong> Uzaktan y\u00f6netime izin vermek i\u00e7in.<br \/>\n        <code>iptables -A INPUT -p tcp --dport 22 -j ACCEPT<\/code><br \/>\n    *   <strong>HTTP\/HTTPS (Port 80\/443):<\/strong> Bir web sunucusu i\u00e7in.<br \/>\n        <code>iptables -A INPUT -p tcp --dport 80 -j ACCEPT<\/code><br \/>\n        <code>iptables -A INPUT -p tcp --dport 443 -j ACCEPT<\/code><br \/>\n    *   <strong>ICMP (Ping):<\/strong> Sunucunun eri\u015filebilirli\u011fini kontrol etmek i\u00e7in (iste\u011fe ba\u011fl\u0131, g\u00fcvenlik nedeniyle kapat\u0131labilir).<br \/>\n        <code>iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT<\/code><\/p>\n<h4>NAT Uygulamalar\u0131 (A\u011f Adresi \u00c7evirisi)<\/h4>\n<p>Bir Linux makinesini a\u011f ge\u00e7idi olarak kullanmak i\u00e7in NAT kurallar\u0131 gereklidir.<\/p>\n<p>*   <strong>Masquerading (Dinamik SNAT):<\/strong> \u0130\u00e7 a\u011fdaki bilgisayarlar\u0131n tek bir genel IP adresi \u00fczerinden internete \u00e7\u0131kmas\u0131n\u0131 sa\u011flar.<br \/>\n    <code>iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<\/code><br \/>\n    (Burada <code>eth0<\/code> genel internete ba\u011fl\u0131 aray\u00fczd\u00fcr. Ayr\u0131ca, \u00e7ekirdek IP y\u00f6nlendirmesinin etkinle\u015ftirilmesi gerekir: <code>sysctl -w net.ipv4.ip_forward=1<\/code>)<\/p>\n<p>*   <strong>Port Y\u00f6nlendirme (DNAT):<\/strong> D\u0131\u015far\u0131dan gelen bir iste\u011fi i\u00e7 a\u011fdaki belirli bir sunucuya y\u00f6nlendirir. \u00d6rne\u011fin, d\u0131\u015far\u0131dan gelen port 80 iste\u011fini i\u00e7 IP <code>192.168.1.100<\/code> \u00fczerindeki port 80&#8217;e y\u00f6nlendirme:<br \/>\n    <code>iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to-destination 192.168.1.100:80<\/code><br \/>\n    (Burada <code>eth0<\/code> genel internete ba\u011fl\u0131 aray\u00fczd\u00fcr. Ayr\u0131ca <code>FORWARD<\/code> zincirinde bu trafi\u011fe izin veren bir kural olmas\u0131 gerekir.)<br \/>\n    <code>iptables -A FORWARD -p tcp -d 192.168.1.100 --dport 80 -j ACCEPT<\/code><\/p>\n<h4>DDoS Korumas\u0131 ve Limit Kurallar\u0131<\/h4>\n<p>Basit bir DDoS korumas\u0131 i\u00e7in belirli bir s\u00fcre i\u00e7inde ayn\u0131 kaynaktan gelen ba\u011flant\u0131 denemelerini s\u0131n\u0131rlayabiliriz.<br \/>\n<code>iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 5\/minute --limit-burst 5 -j ACCEPT<\/code><br \/>\n<code>iptables -A INPUT -p tcp --dport 22 -j DROP<\/code><br \/>\nBu kurallar, SSH portuna dakikada en fazla 5 yeni ba\u011flant\u0131 denemesine izin verir. \u0130lk 5 deneme kabul edilir, sonraki denemeler 1 dakika boyunca d\u00fc\u015f\u00fcr\u00fcl\u00fcr.<\/p>\n<h4>Kullan\u0131c\u0131 Tan\u0131ml\u0131 Zincirler<\/h4>\n<p>Karma\u015f\u0131k kural setlerini daha okunabilir ve y\u00f6netilebilir hale getirmek i\u00e7in kullan\u0131c\u0131 tan\u0131ml\u0131 zincirler olu\u015fturulabilir.<br \/>\n<code>iptables -N WEB_SERVISLERI<\/code> (Yeni zincir olu\u015ftur)<br \/>\n<code>iptables -A WEB_SERVISLERI -p tcp --dport 80 -j ACCEPT<\/code><br \/>\n<code>iptables -A WEB_SERVISLERI -p tcp --dport 443 -j ACCEPT<\/code><br \/>\n<code>iptables -A WEB_SERVISLERI -j RETURN<\/code> (\u0130\u015flem bitti\u011finde \u00e7a\u011f\u0131ran zincire d\u00f6n)<br \/>\n<code>iptables -A INPUT -j WEB_SERVISLERI<\/code> (INPUT zincirinden WEB_SERVISLERI zincirine atla)<\/p>\n<h3>Iptables Kurallar\u0131n\u0131n Kal\u0131c\u0131l\u0131\u011f\u0131<\/h3>\n<p>Iptables ile ayarlanan kurallar, varsay\u0131lan olarak ge\u00e7icidir ve sistem yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda kaybolur. Kurallar\u0131n kal\u0131c\u0131 olmas\u0131 i\u00e7in kaydedilmesi ve sistem ba\u015flang\u0131c\u0131nda geri y\u00fcklenmesi gerekir.<\/p>\n<p>*   <strong><code>iptables-save<\/code> ve <code>iptables-restore<\/code>:<\/strong><br \/>\n    Kurallar\u0131 kaydetmek: <code>iptables-save > \/etc\/iptables\/rules.v4<\/code> (IPv4 i\u00e7in)<br \/>\n    <code>ip6tables-save > \/etc\/iptables\/rules.v6<\/code> (IPv6 i\u00e7in)<br \/>\n    Kurallar\u0131 geri y\u00fcklemek: <code>iptables-restore < \/etc\/iptables\/rules.v4<\/code><br \/>\n    Bu komutlar genellikle <code>\/etc\/rc.local<\/code> gibi bir ba\u015flang\u0131\u00e7 beti\u011fine veya da\u011f\u0131t\u0131ma \u00f6zg\u00fc bir servis arac\u0131l\u0131\u011f\u0131yla entegre edilir.<\/p>\n<p>*   <strong><code>netfilter-persistent<\/code> (Debian\/Ubuntu) veya <code>iptables-persistent<\/code>:<\/strong><br \/>\n    Bu paketler, Iptables kurallar\u0131n\u0131n kal\u0131c\u0131l\u0131\u011f\u0131n\u0131 kolayla\u015ft\u0131ran servislerdir. Y\u00fckledikten sonra <code>iptables-save<\/code> komutunu otomatik olarak \u00e7al\u0131\u015ft\u0131r\u0131r ve kurallar\u0131 belirli dosyalara kaydeder. Sistem yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda, bu servisler kurallar\u0131 otomatik olarak geri y\u00fckler.<br \/>\n    <code>sudo apt-get install iptables-persistent<\/code><br \/>\n    Kurallar\u0131 kaydetmek i\u00e7in: <code>sudo netfilter-persistent save<\/code><\/p>\n<p>*   <strong><code>firewalld<\/code> (CentOS\/RHEL):<\/strong><br \/>\n    Red Hat tabanl\u0131 sistemlerde <code>firewalld<\/code> varsay\u0131lan g\u00fcvenlik duvar\u0131 y\u00f6neticisidir ve Iptables'\u0131n \u00fczerinde soyut bir katman sa\u011flar. <code>firewalld<\/code> kullan\u0131l\u0131yorsa, do\u011frudan <code>iptables<\/code> komutlar\u0131yla kal\u0131c\u0131 de\u011fi\u015fiklik yapmak yerine <code>firewall-cmd<\/code> komutlar\u0131 kullan\u0131lmal\u0131 veya <code>firewalld<\/code> devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131p Iptables do\u011frudan y\u00f6netilmelidir.<\/p>\n<h3>Iptables Y\u00f6netimi ve Hata Ay\u0131klama<\/h3>\n<p>Iptables kurallar\u0131n\u0131 y\u00f6netirken veya sorun giderirken baz\u0131 ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>S\u0131ralama \u00d6nemlidir:<\/strong> Kurallar zincirde yukar\u0131dan a\u015fa\u011f\u0131ya do\u011fru i\u015flenir. Bir paketle e\u015fle\u015fen ilk kural uygulan\u0131r ve genellikle i\u015flem durur. Bu nedenle, daha spesifik kurallar genellikle daha genel kurallardan \u00f6nce gelmelidir. \u00d6rne\u011fin, belirli bir IP'den gelen trafi\u011fi kabul eden bir kural, t\u00fcm gelen trafi\u011fi d\u00fc\u015f\u00fcren bir kuraldan \u00f6nce gelmelidir.<br \/>\n*   <strong><code>iptables -L -n -v<\/code>:<\/strong> Bu komut, kurallar\u0131 say\u0131sal IP adresleriyle (isim \u00e7\u00f6z\u00fcmlemesi yapmadan), ayr\u0131nt\u0131l\u0131 olarak (aray\u00fcz, bayraklar vb.) ve her kuraldan ge\u00e7en paket\/bayt say\u0131lar\u0131yla birlikte listeler. Bu, hangi kurallar\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve ne kadar trafik i\u015fledi\u011fini anlamak i\u00e7in \u00e7ok faydal\u0131d\u0131r.<br \/>\n*   <strong><code>LOG<\/code> Hedefi Kullan\u0131m\u0131:<\/strong> \u015e\u00fcpheli veya beklenmedik trafi\u011fi izlemek i\u00e7in <code>LOG<\/code> hedefini kullan\u0131n.<br \/>\n    <code>iptables -A INPUT -j LOG --log-prefix \"GELEN_PAKET: \" --log-level info<\/code><br \/>\n    <code>iptables -A INPUT -j DROP<\/code><br \/>\n    Bu, d\u00fc\u015f\u00fcr\u00fclen paketleri g\u00fcnl\u00fck dosyas\u0131na kaydetmenizi sa\u011flar (<code>\/var\/log\/syslog<\/code> veya <code>\/var\/log\/messages<\/code>).<br \/>\n*   <strong>Test Etme:<\/strong> Yeni kurallar eklerken, \u00f6zellikle uzaktan eri\u015fim sa\u011fl\u0131yorsan\u0131z, kendinizi sistemden kilitlememeye dikkat edin. Genellikle bir <code>ACCEPT<\/code> kural\u0131 ekleyip sonra <code>DROP<\/code> kural\u0131n\u0131 eklemek veya kurallar\u0131 test etmeden \u00f6nce bir <code>cron<\/code> i\u015fi ile kurallar\u0131 belirli bir s\u00fcre sonra s\u0131f\u0131rlayacak bir komut planlamak iyi bir uygulamad\u0131r.<\/p>\n<h3>Iptables Alternatifleri ve Gelece\u011fi<\/h3>\n<p>Iptables, Linux'ta g\u00fcvenlik duvar\u0131 y\u00f6netiminin temelini olu\u015ftursa da, daha modern veya kullan\u0131c\u0131 dostu aray\u00fczler de geli\u015ftirilmi\u015ftir:<\/p>\n<p>*   <strong><code>ufw<\/code> (Uncomplicated Firewall):<\/strong> \u00d6zellikle Ubuntu gibi Debian tabanl\u0131 sistemlerde pop\u00fcler olan, Iptables i\u00e7in basitle\u015ftirilmi\u015f bir aray\u00fcze sahiptir. Daha az komutla yayg\u0131n g\u00fcvenlik duvar\u0131 g\u00f6revlerini yerine getirmenizi sa\u011flar.<br \/>\n*   <strong><code>firewalld<\/code>:<\/strong> CentOS\/RHEL gibi Red Hat tabanl\u0131 sistemlerde varsay\u0131lan olarak gelir. B\u00f6lge (zone) tabanl\u0131 bir yakla\u015f\u0131mla \u00e7al\u0131\u015f\u0131r ve Iptables'\u0131n \u00fczerinde dinamik bir katman sa\u011flar. \u00c7al\u0131\u015fma zaman\u0131nda kurallar\u0131 de\u011fi\u015ftirmeyi kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong><code>nftables<\/code>:<\/strong> Iptables'\u0131n resmi halefidir ve Linux \u00e7ekirde\u011finin Netfilter \u00e7er\u00e7evesinin daha yeni bir s\u00fcr\u00fcm\u00fcn\u00fc kullan\u0131r. Daha modern bir s\u00f6zdizimine, daha iyi performansa ve daha esnek kural setlerine olanak tan\u0131r. <code>nftables<\/code>, Iptables'\u0131n tablolar, zincirler ve hedefler gibi temel kavramlar\u0131n\u0131 korurken, bunlar\u0131 daha birle\u015fik ve g\u00fc\u00e7l\u00fc bir \u015fekilde sunar. \u00c7o\u011fu modern Linux da\u011f\u0131t\u0131m\u0131 art\u0131k <code>nftables<\/code>'\u0131 varsay\u0131lan olarak kullanmaya ba\u015flam\u0131\u015ft\u0131r veya ge\u00e7i\u015f s\u00fcrecindedir. Iptables komutlar\u0131, <code>nftables<\/code> arka ucunu kullanarak \u00e7al\u0131\u015facak \u015fekilde uyarlanm\u0131\u015ft\u0131r, bu da eski komutlar\u0131n hala i\u015flevsel oldu\u011fu anlam\u0131na gelir. Ancak yeni projelerde <code>nftables<\/code>'\u0131n kendi s\u00f6zdizimini kullanmak daha do\u011fru bir yakla\u015f\u0131m olacakt\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Iptables, Linux \u00e7ekirde\u011finin Netfilter \u00e7er\u00e7evesiyle birlikte \u00e7al\u0131\u015farak, a\u011f trafi\u011fini derinlemesine kontrol etme yetene\u011fi sunan g\u00fc\u00e7l\u00fc ve esnek bir g\u00fcvenlik duvar\u0131 arac\u0131d\u0131r. Tablolar, zincirler ve hedeflerden olu\u015fan mod\u00fcler yap\u0131s\u0131 sayesinde, basit paket filtrelemeden karma\u015f\u0131k a\u011f adresi \u00e7evirisi ve geli\u015fmi\u015f g\u00fcvenlik politikalar\u0131na kadar geni\u015f bir yelpazede g\u00f6revleri yerine getirebilir. Her ne kadar <code>nftables<\/code> gibi daha yeni teknolojiler ortaya \u00e7\u0131ksa da, Iptables'\u0131n temel prensiplerini anlamak, Linux sistem y\u00f6neticileri i\u00e7in vazge\u00e7ilmez bir beceri olmaya devam etmektedir. G\u00fcvenli ve kararl\u0131 a\u011f ortamlar\u0131 olu\u015fturmak i\u00e7in Iptables'\u0131n do\u011fru bir \u015fekilde yap\u0131land\u0131r\u0131lmas\u0131 ve y\u00f6netilmesi kritik \u00f6neme sahiptir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?\nLinux i\u015fletim sistemlerinde a\u011f trafi\u011fini y\u00f6netmek ve filtrelemek i\u00e7in kullan\u0131lan en g\u00fc\u00e7l\u00fc ve","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-39173","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?\" \/>\n<meta property=\"og:description\" content=\"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r? Linux i\u015fletim sistemlerinde a\u011f trafi\u011fini y\u00f6netmek ve filtrelemek i\u00e7in kullan\u0131lan en g\u00fc\u00e7l\u00fc ve\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-15T21:40:41+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?\",\"datePublished\":\"2026-02-15T21:40:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/\"},\"wordCount\":2764,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/\",\"name\":\"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-15T21:40:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/","og_locale":"tr_TR","og_type":"article","og_title":"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?","og_description":"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r? Linux i\u015fletim sistemlerinde a\u011f trafi\u011fini y\u00f6netmek ve filtrelemek i\u00e7in kullan\u0131lan en g\u00fc\u00e7l\u00fc ve","og_url":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-15T21:40:41+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?","datePublished":"2026-02-15T21:40:41+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/"},"wordCount":2764,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/","url":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/","name":"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-15T21:40:41+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/iptables-guvenlik-duvari-nasil-calisir\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Iptables G\u00fcvenlik Duvar\u0131 Nas\u0131l \u00c7al\u0131\u015f\u0131r?"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=39173"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39173\/revisions"}],"predecessor-version":[{"id":39174,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/39173\/revisions\/39174"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=39173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=39173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=39173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}