Karakter boyutu :![]() ![]() ![]() ![]() | |
Linux "iptables" kullanımıLinux`ın hayatımıza girmesi ile özellikle uygulama sunucularındakiyapıların esnekleşmesi çoğu sistem yöneticisinin işinikolaylaştırmıştır. Özellikle güvenlik olgusunun önem kazanması ilemuhafaza edilmeyen, korunup takibi yapılmayan sistemler art niyetlikullanıcıların iştahını kabartıyor. Bu makalede Herhangi bir Linux sunucusunun IPTables ile nasıl temelgüvenlik yapılandırmasından geçirileceğini ve bu Esnek yönetim aracınınnasıl kullanılacağını inceleyeceğiz. Öncelikle IPTables`ı tanıyalım. IPTables Linux, Unix ve BSD sistemleriçin geliştirilen Nic üzerinden geçen trafiğin ve datalarınBaşlıklarına bakarak erişim denetimlerini sağlayan pratik bir araçtır.Hemen güncel Linux sürümü IPTables`ı bünyesinde barındırır. Bunun içinIPTables`ı kuruluma çoğu zaman ihtiyaç duymayız. Bu makaledeIPTables`ın kurulumundan çok kullanımını ve pratik yol ve yöntemleriniinceleyeceğiz. Sırası ile başlayalım. IPTables, daha öncede bahsettiğimiz gibi,Ethernet aygıtımız üzerinden geçen trafikdeki dataların başlıklarınabakarak erişim denetimlerini sağlar. Bu denetimleri IPTables komutu ileveririz. IPtables komutunun temel kullanım betikleri ve prosedürü şuşekildedir ; #iptables İŞLEM PROSEDÃR PROTOKOL HEDEF KAYNAK DENETİM Şeklindedir. Şimdi sırası ile inceleyelim. İşlem ; Bir diğer adıyla zincir. çoğu makalede Zincir olarak tanımlananbu ime biz daha anlaşılır olması için İşlem diyeceğiz. IPTables için entemel işlemler aşağıdaki gibidir. N - Yeni İşlem Ekleneceğini belirtir ( New ) X - Silme işlemini belirtir. ( Eks ) L - Listeleme İşlemini belirtir ( List ) F - Tüm Kuralların silineceğini belirtir ( Flush ) Z - Sayaçların sıfırlanacağını belirtir ( Zero ) A - Yeni Kural eklentileri için kullanılır ( Add ) I - Bir aralığa kural eklemek için kullanılır ( Insert ) D - Belirtilen kuralı silmek için kullanılır ( Delete ) R - Belirtilen kuralı değiştirmek için kullanılır ( Replace ) Burada Iptables ile herhangi bi işlem yaparken yapacağımız işlemintürünü belirtiriz. "#iptables -A" diycek olursak bu yeni bir işlemeklemek istediğimizi belirtir. Prosedür ; İşlemin yapılacağı prosedürü belirtir. Burası için üç temelProsedür vardır. "INPUT - OUTPUT - FORWARD" Bu prosedürler ne anlamagelir açıklayalım. Sistemimiz üzerinden geçecek tüm trafikler ya giriş,ya çıkış yada yönlendirmedir. Dışarıdan sistemimize gelecek paketleriçin "INPUT", sistemimizden dışarıya çıkacak paketler için "OUTPUT",başka bir sistemden, diğer bir sisteme gidecek ve bizim üzerimizdengeçecek paketler için "FORWARD" prosedürlerini kullanırız. Protokol ; Denetimi hangi protokol üzerinde yapacağımızı, "Tcp, Udp, Icmp, Igmp" bu betikte belirtiriz. Örneğin "-p tcp" Hedef ; Yapacağımız denetim işleminin hedefini belirtir. Örneğin "-d212.174.199.71" Burada 127.0.0.1 IP adresini hedef olarak belirtiyoruz.Bu IP adresi üzerindeki herhangi bi portuda "--dport" betiğiylebelirtebiliriz. Örneğin "-d 212.174.199.71 --sport 21" diyelim. Bubetik 212.174.199.71 Nolu istemcinin 21 nolu portunu gösterecektir. Kaynak ; Yapacağımız denetimin kaynağını belirtir. Örneğin "-s127.0.0.1" Burada 127.0.0.1 IP adresini kaynak olarak belirtiyoruz. BuIP adresi üzerindeki herhangi bi portuda "--sport" betiğiylebelirtebiliriz. Örneğin "-s 127.0.0.1 --sport 21" diyelim. Bu betik127.0.0.1 Adresimizin 21 nolu portunu gösterecektir. Denetim ; Yapacağımız denetimin türünü belirtir. Örneğin, yasaklamakistiyor isek "DROP", izin vermek istiyor isek "ACCEPT", kabul etmeyipred cevabını göndermek istiyor isek "REJECT", işlemin kaydını tutmakistiyor isek "LOG" seçenklerini kullanırız. IPtables komutunun temel kullanım betiklerini inceledik. Şimdi bu komutile bikaç örnek çalışma yapalım. Önce iki örnek senaryo hazırlayalım. 1. Sistemimizde HTTP, FTP, Pop3, Smtp servisleri çalışıyor olsun.Sistemimiz dışarıdan gelecek Ping`lere yanıt vermesin ve belirtilenservisler dışındaki hiçbir porta talep gönderilemesin. 2. Sistemimizde belirteceğimiz protokollere 212.175.211.19 nolu Bilgisayarın erişmesini engelliyoruz. Şimdi bu iki temel senaryoyu sırası ile gerçekleştirelim. 1. Nolu senaryo için sistemimize dışarıdan tüm erişimlere yasaklıyalım,ve yalnızca belirtilen portlarımıza erişimleri olanaklı kılalım. #iptables -F Prosedürleri Siliyoruz #iptables -A INPUT -p tcp -j DROP Girişleri Yasaklıyoruz #iptables -A INPUT -p ICMP -j DROP Ping`leri Yasaklıyoruz #iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT 80 Nolu Portu açıyoruz #iptables -A INPUT -p tcp -s 0/0 --dport 21 -j ACCEPT 21 Nolu Portu açıyoruz. #iptables -A INPUT -p tcp -s 0/0 --dport 25 -j ACCEPT 25 Nolu portu açıyoruz #iptables -A INPUT -p tcp -s 0/0 --dport 110 -j ACCEPT 110 Nolu portu açıyoruz Şimdi sırayla inceliyelim. Öncelikle daha önce girdiğimiz tüm betikleri temizliyoruz. ( Girmiş isek ) Daha sonra IPtables -A INPUT diyerek dışıradın gelen tapeler hakkındabir kayıt gireceğimiz belirterek protokolümüzü "-p tcp" diyerekseçiyoruz. Eğer kaynak ve hedef belirtmezsek tüm kaynak ve tümhedefleri kapsar yaptığımız işlem. Ozaman kaynak belirtmiyoruz ve "-jDROP" diyerek denetimlerimizi yasaklıyoruz. Böylelikle sistemimizedışarıdan hiç kimse ulaşamaz hale geliyor. Şimdi Dışarıdan sistemimize Ping atılmasını engelleyelim. Bunun içinyine "IPtables -A INPUT" diyoruz ve yeni bir işlem gireceğimizibelirtiyoruz. "-p ICMP" diyoruz ve üzerinde işlem yapacağımızprotokolün "ICMP" olduğunu gösteriyoruz. Akabinde "-j DROP" diyoruz vetüm kaynak ve hedefleri içine kapsayacak bir kural ile bu prosedüreengel kuyoyoruz. Şimdi sırayla kullanacağımız servisleri açalım. IPtables -A diyoruz, ve bir denetim gireceğimiz gösteriyoruz. "-p tcp"diyoruz ve işlemin hangi protokol üzerinde uygulanacağını belirtiyoruz."-s 0/0" diyoruz ve kaynağı tüm network olarak gösteriyoruz. Buradahiçbirşey belirtmeyebilirdikte. "-s" kullanımına örnek olması açısındangösteriyoruz. "-s 0/0" diyerek tüm IP aralıklarını içine kapsayacağınıgösteriyoruz. "--dport 80" diyerek sistemimizdeki 80 nolu portubelirtiyoruz ve "-j ACCEPT" diyerek bu porta erişimleri olanaklıkılıyoruz. Aynı işlemi 21, 25 ve 110 nolu portlar içinde yapıyoruz. Şimdi ikinci senaryo için örnek işlemler yapalım. #iptables -F #iptables -A INPUT -p tcp -s 212.175.211.29 --dport 80-j DROP #iptables -A INPUT -p ICMP -j DROP #iptables -A INPUT -p tcp -s 212.175.211.29 --dport 22 -j LOG Yukarıdada basit bikaç işlem yapıyoruz ve 212.175.211.29 IP adresliistemcinin 80 nolu porta erişimini engelliyerek, Ping atamamasınısağlıyoruz. Daha sonra 22 nolu porta giriş yapmaya çalışır ise butaleplerini Log`luyoruz. Görüldüğü gibi IPTables oldukça pratik ve esnek bir araç. Kullanımıdabir okadar geniş ve detaylı. IPtables ile ilgili senaryolar pekialagenişletilip çoğaltılabilir. Yukarıdaki örnek işlemlerden yola çıkarakkendi senaryolarınızı üretebilir, çok daha gelişmiş, komplike güvenlikyapılandırmalarını rahatlıkla yönetebilirsiniz. Not: Bu yazıyı internet ortamında bir sayfadan alıntı yaptım. Ama birden fazla sayfada karlılaştığım ve hiçbirinde kaynak bulamadığım için kaynak belirtemiyorum... | |
| 25 Ağustos 2008 Pazartesi - Linux Yazıları - Yorum Yaz/Oku (0)- # | |
Senin söyleyeceklerin varsa form aşağıda.





Linux "iptables" kullanımı
Kategoriler
Yazılarım
Linkler






