Linux'ta Iptables Netfilter Komutları Nasıl Kullanılır

İçindekiler

Güvenlik, her zaman yöneticilerin, yönetim ve destek personelinin ve genel olarak, ağda bulunan çoklu tehditler nedeniyle mevcut herhangi bir işletim sisteminin tüm kullanıcılarının çalışması gereken öncüllerden biri olmalıdır.

Linux dağıtımları söz konusu olduğunda, çoğu, yığının giriş, hareket, kontrol ve çıkışında ağ paket kontrol işleme düzeyinde ağ paketlerine bir filtre uygulamak için gelişmiş araçlara sahiptir. kullanılan sistemin çekirdeği içindeki ağlar bu nedenle, çekirdek 2.4 ile başlayarak, netfilter olarak da adlandırılan iptables tanıtıldı ve bunlar daha yüksek güvenlik düzeyine ve sistemin korunması için pratik işlevselliklere sahip.

iptables, IPv4 filtrelemeyi, ip6tables ise günümüzün ağlarında IPv6 filtrelemeyi gerçekleştirir.
Solvetic, iptables'ın nasıl çalıştığı ve ondan alabileceğimiz daha pratik komutlardan bazıları hakkında bir analiz yapacak.

1. Linux'ta paket filtreleme


Linux dağıtımlarının çekirdeği, paket filtreleme işlemini gerçekleştirmek için Netfilter aracını kullanır ve böylece onları alma veya durdurma görevlerini yerine getirir.

Netfilter'da yerleşik kurallarNetfilter, varsayılan olarak Linux çekirdeğine dahil edilmiştir ve bunun gibi entegre edilmiş üç tablo veya kural listesine sahiptir:

  • filtre: Paket yönetimi için tasarlanmış varsayılan tabloyu ifade eder.
  • nat: İşlevi, öncelikle NAT tarafından kullanılan yeni bir bağlantıda oluşturulan paketleri değiştirmektir.
  • mangle: Belirli ağ paketlerinin değiştirilmesi gerektiğinde kullanımı geçerlidir.

Şimdi, her tablonun netfilter tarafından gerçekleştirilebilecek eylemlerle ilgili bir grup yerleşik zincir vardır, bunlar:

Filtre tabloları için kurallarFiltre tablosu için yerleşik dizeler şunlardır:

  • GİRİŞ: Ana bilgisayara gönderilen paketlerle ilgilidir.
  • ÇIKIŞ: Bu, yerel olarak oluşturulmuş ağ paketleri üzerinde çalışır.
  • İLERİ: Ana ana bilgisayar aracılığıyla yönlendirilmiş paketleri ilişkilendirir.

Nat tabloları için kurallarnat tablosu için yerleşik dizeler şunlardır:

  • PREROUTING: İşlevi, ağ paketlerini gelir gelmez değiştirmektir.
  • ÇIKTI: Yerel olarak oluşturulan ve gönderilmeden önce etkinleştirilen ağ paketlerini değiştirmek için tasarlanmıştır.
  • POSTROUTING: Paketleri global olarak gönderilmeden önce değiştirmek için oluşturuldu.

Mangrov panoları için kurallarMangrov masası için yerleşik zincirler şunlardır:

  • GİRİŞ: Ana ana bilgisayar için hedeflenen ağ paketlerini değiştirmek için tasarlanmıştır.
  • ÇIKTI: Yerel olarak oluşturulan ağ paketlerini değiştirmek için oluşturulur ve gönderilmeden önce çalışır.
  • İLERİ: Ana ana bilgisayar üzerinden yönlendirilen paketleri değiştirir.
  • PREROUTING: Göreviniz, gelen paketleri yönlendirilmeden önce değiştirmek.
  • POSTROUTING: Gönderme işlemi gerçekleşmeden önce ağ paketlerini değiştirir.

Linux işletim sisteminden alınan veya gönderilen her ağ paketi her zaman en az bir tabloya bağlıdır. Şimdi iptables ile kullanabileceğimiz daha kullanışlı komutlardan bazılarını anlayalım.

2. Güvenlik duvarı durumunu göster

Aşama 1
Güvenlik duvarının mevcut durumunu bilmek için aşağıdaki satırı uygularız:

 sudo iptables -L -n -v 

BÜYÜT

Adım 2
Orada her zinciri ilgili yönetilen paket seviyeleriyle doğrulayabiliriz, bu komutta kullanılan parametreler şunlardır:

-LListe kurallarını görüntüleyin.

-vArayüz adı, artı kural seçenekleri, artı paket ve bayt sayaçları gibi ayrıntılı bilgiler üretir ve sırasıyla 1000, 1.000.000 ve 1.000.000.000 seçenekleri için 'K', 'M' veya 'G' son ekiyle birlikte listelenir.

-nIP adresini ve bağlantı noktasını sayısal biçimde görüntüler.

Aşama 3
Dilerseniz satır sayısı ile bu sonuca bakın, aşağıdaki işlemleri yapabiliriz:

 iptables -n -L -v --satır numaraları 

BÜYÜT

3. Linux'ta iptables'ı durdurun, yeniden başlatın veya başlatın

Aşama 1
Başlangıç ​​veya bitiş düzeyinde iptables görevlerini yönetmek için ana komutlar şunlardır:

 hizmet iptables hizmeti durdur iptables hizmeti başlat iptables yeniden başlat
Adım 2
Güvenlik duvarını durdurmak ve aşağıdaki gibi tüm kuralları ortadan kaldırmak için iptables komutunu kullanmak da mümkün olacaktır:
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Aşama 3
Tanımlanan parametreler şunlardır:

-FTüm kuralları kaldırın.

-XBir dizeyi silin.

-Ttablo_adı: Tabloyu seçin (nat veya mangle olarak adlandırılır) ve kuralları silin veya atın.

-PDROP, REJECT veya ACCEPT gibi varsayılan politikayı ayarlayın.

4. Linux'ta yeni güvenlik duvarı kuralları ekleyin

Aşama 1
iptables'ın en pratik görevlerinden biri, paketlerin doğru yönetimi için belirli kurallar oluşturmaktır, seçilen zincire bir veya daha fazla kural eklemek için satır numaralarının ilk keşfedilmesi gereken aşağıdaki sözdizimini kullanacağız:

 iptables -L GİRİŞ -n -- satır numaraları 
Adım 2
örneğin, aşağıdaki kuralı ekleyelim:
 iptables -I GİRİŞ 2 -s 192.168.0.50 -j DROP 
Aşama 3
Daha sonra yukarıdaki komutu kullanarak kuralları göreceğiz. Orada oluşturulan kuralın belirtildiği gibi 3. satıra eklendiğini görüyoruz.

BÜYÜT

5. Linux'ta bir güvenlik duvarı kuralını silin

Aşama 1
Öncelikle tam olarak hangisinin elenmesi gerektiğini belirlemek için oluşturulan kuralları göstermeliyiz, bu bilgiyi elde etmek için aşağıdaki seçeneklere sahibiz:

 iptables -L GİRDİ -n --satır-numaralar iptables -L ÇIKIŞ -n --satır-numaralar iptables -L ÇIKIŞ -n --satır-numaralar | az
Adım 2
Şimdi, daha önce oluşturulan 3. kuralı silmek için aşağıdakileri uygulayacağız:
 iptables -D GİRİŞİ 3 

BÜYÜT

6. Linux'ta iptables kurallarını depolayın ve geri yükleyin

Aşama 1
iptables kurallarında her değişiklik yaptığımızda bu değişiklikleri kaydetmeye devam etmeliyiz, bunun için aşağıdaki satırı çalıştırmamız yeterlidir:

 hizmet iptables bilir 
Adım 2
Aşağıdakileri yürüterek sakladığımız bu kuralları basitçe geri yükleyebiliriz:
 hizmet iptables yeniden başlat 

7. Linux'ta varsayılan kuralları ayarlayın


iptables ile tüm sisteme uygulanması gereken varsayılan kurallara aşağıdaki şekilde izin vermek veya reddetmek mümkün olacaktır.

Aşama 1
Yürüttüğümüz tüm trafiği ortadan kaldırmak için:

 iptables -P GİRİŞ DROP iptables -P ÇIKIŞ DROP iptables -P İLERİ DROP
Adım 2
Tüm gelen trafiği kaldırmak için:
 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m durumu - YENİ, KURULDU -j KABUL

BÜYÜT

8. Linux'ta bir IP adresini engelle

iptables ile sisteme ağ paketi erişimini engellemek için belirli bir IP adresini engellemek mümkün olacaktır. Bu görev için aşağıdaki seçeneklere sahibiz:

 iptables -A INPUT -s 192.168.0.14 -j DROP (Belirli IP) iptables -A INPUT -s 192.168.0.0/24 -j DROP (Adres aralığı)

9. Linux'ta gelen bağlantı noktası isteklerini engelle

Aşama 1
Diğer bir tipik güvenlik görevi, paket erişimini belirli bir bağlantı noktası üzerinden kısıtlamaktır, iptables ile aşağıdaki seçeneklere sahibiz:

Tüm işlemleri engelleAşağıdakileri yürüterek belirli bir bağlantı noktası için tüm eylemleri engelleyin:

 iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Bir bağlantı noktasını engelleBelirli bir IP adresi için bir bağlantı noktasını engelleyin:

 iptables -A INPUT -p tcp -s 192.168.0.14 --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp -s 192.168.0.1/24 --dport 80 -j DROP

Giden IP adresini engelle
Belirli bir ana bilgisayara veya etki alanına giden trafiği engellemek mümkündür, örneğin Solvetic.com, bunun için aşağıdakileri uygularız:

 host -t - solventtic.com'a 

BÜYÜT

Adım 2
Şimdi, bu IP adresiyle engellemeye devam ediyoruz:

 iptables -A ÇIKIŞ -d 178.33.118.246 -j DROP 
Aşama 3
Tüm etki alanını şu şekilde engellemek de mümkün olacaktır:
 iptables -A OUTPUT -p tcp -d www.solvetic.com -j DROP 

10. Linux'ta MAC adresini kullanarak ağ trafiğine izin verilip verilmeyeceği

Başka bir kullanım olasılığı, seçilen aygıtın MAC adresine dayalı olarak paketlerin kullanımına kısıtlamak veya izin vermektir. Bunun için aşağıdaki seçeneklerden birini kullanacağız:

 iptables -A INPUT -m mac --mac-source 00: 2F: EF: 85: 04: 09 -j DROP (Seçili MAC adresinden gelen trafiği reddet) iptables -A INPUT -p tcp --destination-port 22 - m mac --mac-source 00: 2F: EF: 85: 04: 09 -j KABUL (Yalnızca bağlantı noktası 22 tarafından belirtilen adresten gelen paketleri destekler)

11. Linux'ta ICMP isteklerini engelleyin veya izin verin


ICMP protokolü (İnternet Kontrol Mesaj Protokolü), yerel ağ bilgisayarlarındaki hatalarla ilgili bilgileri yönetmek için geliştirilmiş bir protokoldür, böylece bu protokol ile bir ekibin kullanılabilirliğini doğrulamak için uzaktan istekler yapılabilir ve bu güvenlik açısından hassas olabilir. .

Aşama 1
Linux'ta ICMP isteklerinden kaçınmak için aşağıdaki satırları çalıştırabiliriz:

 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Adım 2
Ping yanıtları ayrıca aşağıdaki gibi belirli ağlarla veya ana bilgisayarlarla sınırlandırılabilir:
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp-type echo-request -j KABUL 
Aşama 3
Bunun gibi yalnızca sınırlı türde ICMP isteklerini kabul edebileceğiz:
 iptables -A INPUT -p icmp --icmp-type echo-reply -j iptables KABUL -A INPUT -p icmp --icmp-type target-unreachable -j KABUL iptables -A INPUT -p icmp --icmp-type time- aşıldı -j KABUL

12. Linux'ta bir dizi bağlantı noktası ve IP adresi açın

Aşama 1
Bu, yönetim veya program yürütme eylemlerini gerçekleştirmek için tanımlanmış bir bağlantı noktası aralığını etkinleştirmemiz gerektiğinde yararlıdır:

 iptables -A INPUT -m durum --state YENİ -m tcp -p tcp --dport 9000: 9020 -j KABUL 
Böylece TCP bağlantıları için 9000 ila 9020 port aralığını açtık.

Adım 2
Başka bir alternatif, bunun gibi belirli bir bağlantı noktası ayarlayarak bir dizi IP adresini etkinleştirmektir. Orada bu aralığı 80 numaralı bağlantı noktasını kullanması için yetkilendirdik.

 iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.0.70-192.168.0.80 -j KABUL 

13. Linux'ta istemci IP'si ile bir sunucuya paralel bağlantı sayısını kısıtlayın

Aşama 1
Bu kısıtlamaları tanımlamak için connlimit modülünü kullanabiliriz, örneğin, istemci başına 5 ssh bağlantısına izin vermek için aşağıdakileri giriyoruz:

 iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT 

BÜYÜT

Adım 2
HTTP erişimini 10 ile kısıtlamak için:

 iptables -p tcp --syn --dport 80 -m conlimit --connlimit-above 10 --connlimit-mask 24 -j DROP 
Aşama 3
Aşağıdakileri belirtmiştik:
  • --connlimit-above 5: Mevcut bağlantıların sayısı 5'ten büyükse eşleşir.
  • --connlimit-mask 24: Bunlar, önek uzunluğunu kullanan grup ana bilgisayarlarıdır. IPv4 için (dahil) 0 ile 32 arasında bir sayı olmalıdır.

14. Linux'ta istemci IP'si ile bir sunucuya paralel bağlantı sayısını kısıtlayın

Aşama 1
NAT (Ağ Adresi Çevirisi), ağ adreslerini çeviren ve böylece navigasyonu kolaylaştıran bir sistemdir. Bunları listelemek için aşağıdakileri uygulayacağız:

 iptables -t nat -L -n -v 

BÜYÜT

Adım 2
Bu sonucu aşağıdaki gibi ilgili satırlarla görmek mümkün olacaktır:

 iptables -t nat -v -L -n --satır numarası 

15. Linux'ta NAT kurallarını temizle


Aşama 1
Oluşturulan NAT kurallarını silmek istiyorsak aşağıdakileri uygulayacağız:
 iptables -t nat -v -L -n --satır-numarası iptables -t nat -v -L ÖN YÖNLENDİRME -n --satır-numarası iptables -t nat -v -L POSTROUTING -n --satır-numara
Adım 2
Tüm "PREROUTING" kurallarını silmek için aşağıdaki sözdizimini uygularız:
 iptables -t nat -D PREROUTING {Kural numarası} 
Aşama 3
Yürüttüğümüz tüm "POSTROUTING" kurallarını silmek için:
 iptables -t nat -D POSTROUTING {kural numarası} 

16. Linux'ta paket sayaçlarını sıfırla


Öncelikle sayaçları listelemek için daha önce gördüğümüz "iptables -L -n -v" komutunu çalıştırmalıyız.

Aşama 1
Bu sayaçları temizlemek için aşağıdakileri çalıştırmanız yeterlidir:

 iptables -Z 
Adım 2
Yalnızca erişim sayaçlarını sıfırlamak için yürüttüğümüz:
 iptables -Z GİRİŞİ 

17. Linux'ta güvenlik duvarını doğrulayın

Aşama 1
Öncelikle aşağıdaki komutla portların açık olup olmadığını doğrulamamız gerekiyor:

 netstat -tulpn 

BÜYÜT

Adım 2
Belirli bir bağlantı noktasını doğrulamak için şunu yürütürüz:

 netstat -tulpn | grep: 80 

BÜYÜT

Aşama 3
Bağlantı noktasının açık olmaması durumunda şunu yürütürüz:

 hizmet httpd başlangıcı 
4. Adım
O zaman iptables'ın bu bağlantı noktasından erişimi olduğundan emin olmalıyız:
 iptables -L GİRİŞ -v -n | grep 80 

18. Linux'ta iptables ile döngü erişimine izin ver

Erişimi IP 127.0.0.1'den olan geri döngü erişimi önemlidir ve yönetim ve ağ yönetimi görevleri için her zaman etkin bırakılmalıdır. İptables'da etkinleştirmek için aşağıdakileri yürütmeniz yeterlidir.

 iptables -A GİRDİ -i lo -j KABUL ET iptables -A ÇIKIŞ -o lo -j KABUL

19. Linux'ta yeni iptables dizeleri tanımlayın


Aşama 1
iptables ile kendi zincirimizi tanımlama ve içinde özel kuralları saklama olanağına sahibiz. Bir zincir tanımlamak için aşağıdakileri uygularız:
 iptables -N "Dize adı" 
Adım 2
Ardından iptables dizelerini listelemek için "iptables -L" komutunu çalıştırırız:

BÜYÜT

Aşama 3
Sonuç olarak oluşturduğumuz zinciri göreceğiz:

BÜYÜT

20. Linux'ta iptables güvenlik duvarı zincirlerini veya kurallarını temizleyin

Bu silme işlemini gerçekleştirmek için aşağıdakileri gerçekleştirmeliyiz:

 iptables -F 
Gördüğümüz gibi iptables, gizlilikle ilgili her konuda iyileştirmeler elde etmek için Linux dağıtımlarındaki çeşitli güvenlik yönlerini merkezi olarak yönetmek için kapsamlı bir çözümdür.

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave