Linux iptables Güvenlik Duvarı Hakkında 13 Mülakat Sorusu


Sık sık Tecmint Ziyaretçisi olan Nishita Agarwal, Pune'da özel bir hosting şirketinde kısa süre önce verdiği iş görüşmesine ilişkin deneyimini (Soru-Cevap) bizimle paylaştı. , Hindistan. Kendisi iptables konusunda uzman olmasına rağmen kendisine çeşitli konularda birçok soru soruldu ve bu soruları ve iptables ile ilgili yanıtlarını (verdiği) başkalarıyla paylaşmak istedi. yakın gelecekte röportaj verin.

Tüm sorular ve Cevapları Nishita Agarwal'ın anısına dayanarak yeniden yazıldı.

"Merhaba arkadaşlar! Benim adım Nishita Agarwal. Teknoloji alanında lisans eğitimine devam ettim. Uzmanlık alanım UNIX ve UNIX'in Varyantları (BSD, Linux) duyduğumdan beri beni büyülüyor. Depolama alanında 1 yıldan fazla tecrübem var. Hindistan'ın Pune şehrinde bir hosting şirketiyle sonuçlanan bir iş değişikliği arıyordum. ”

İşte Mülakat sırasında bana sorulanların derlemesi. Sadece iptables ile ilgili soruları ve cevaplarını hafızama dayanarak belgeledim. Umarım bu, Röportajınızı kırmanıza yardımcı olur.

1. Linux'ta iptables ve güvenlik duvarını duydunuz mu? Ne oldukları ve ne için kullanıldığı hakkında bir fikriniz var mı?

Cevap: Uzun süredir iptables kullanıyorum ve hem iptables hem de güvenlik duvarının farkındayım. Iptables, çoğunlukla C Programlama Dili ile yazılmış ve GNU Genel Kamu Lisansı altında yayımlanan bir uygulama programıdır. Sistem yönetimi açısından yazılmış, iptables'ın en son kararlı sürümü 1.4.21.iptables, < olarak adlandırılabilecek UNIX benzeri işletim sistemi için güvenlik duvarı olarak düşünülebilir. Strong>iptables/netfilter, daha doğrusu. Yönetici, güvenlik duvarı kurallarını önceden tanımlanmış tablolara eklemek ve tanımlamak için konsol/GUI ön uç araçları aracılığıyla iptables ile etkileşime girer. Netfilter, çekirdeğin içine yerleştirilmiş ve filtreleme işini yapan bir modüldür.

Firewalld, RHEL/CentOS 7'deki filtreleme kurallarının en son uygulamasıdır (farkında olmadığım diğer dağıtımlarda da uygulanmış olabilir). İptables arayüzünün yerini aldı ve netfilter'a bağlanıyor.

2. iptables veya Linux Komut Satırı için bir tür GUI tabanlı ön uç aracı kullandınız mı?

Cevap: Gerçi GUI'de Webmin'in birleşiminde Shorewall gibi iptables için GUI tabanlı ön uç araçlarını ve konsol aracılığıyla iptables'a doğrudan erişimi kullandım.Ve bunu yapmalıyım. Linux konsolu aracılığıyla iptables'a doğrudan erişimin, kullanıcıya daha yüksek düzeyde esneklik ve arka planda olup bitenleri daha iyi anlama yoluyla muazzam bir güç sağladığını kabul edin. GUI acemi yöneticiler içindir, konsol ise deneyimliler içindir.

3. iptables ile güvenlik duvarı arasındaki temel farklar nelerdir?

Cevap: iptables ve firewalld aynı amaca hizmet eder (Paket Filtreleme), ancak farklı yaklaşımlarla. iptables, güvenlik duvarından farklı olarak her değişiklik yapıldığında belirlenen kuralların tamamını temizler. Tipik olarak iptables yapılandırmasının konumu '/etc/sysconfig/iptables' konumundayken, güvenlik duvarı yapılandırması bir XML dosyası kümesi olan '/etc/firewalld/' konumundadır .XML tabanlı bir güvenlik duvarı yapılandırmak, iptables yapılandırmasına kıyasla daha kolaydır, ancak aynı görev hem paket filtreleme uygulaması, yani iptables hem de güvenlik duvarı kullanılarak gerçekleştirilebilir. Firewalld, kendi komut satırı arayüzü ve XML tabanlı ve yukarıda bahsedilen yapılandırma dosyasıyla birlikte iptables'ı kendi başlığı altında çalıştırır.

4. Fırsat verilse tüm sunucularınızda iptables'ı güvenlik duvarı ile değiştirir misiniz?

Cevap: iptables'a aşinayım ve çalışıyor ve eğer güvenlik duvarının dinamik yönünü gerektiren bir şey yoksa, tüm yapılandırmamı iptables'tan güvenlik duvarına taşımam için bir neden yok gibi görünüyor.Çoğu durumda, şu ana kadar iptables'ın bir sorun yarattığını hiç görmedim. Ayrıca Bilgi teknolojisinin genel kuralı “bozuk değilse neden düzeltilsin” diyor. Ancak bu benim kişisel düşüncem ve eğer Organizasyon iptables'ı güvenlik duvarı ile değiştirecekse, güvenlik duvarını uygulamaktan asla çekinmem.

5. iptables konusunda kendinize güveniyorsunuz ve artı nokta, biz bile sunucumuzda iptables kullanıyoruz.

İptables'ta kullanılan tablolar nelerdir? İptables'da kullanılan tablolar ve destekledikleri zincirler hakkında kısa bir açıklama yapın.

Cevap: Tanındığınız için teşekkürler. Soru kısmına gelecek olursak, iptables'da kullanılan dört tablo vardır; bunlar:

  1. Nat Tablosu
  2. Mangle Tablosu
  3. Filtre Tablosu
  4. Ham Tablo

Nat Table : Nat tablosu öncelikle Ağ Adresi Çevirisi için kullanılır. Maskelenmiş paketlerin IP adresleri tablodaki kurallara göre değiştirilir. Akıştaki paketler Nat Table'dan yalnızca bir kez geçer. yani, bir Paket jetinden gelen bir paket maskelenirse, akıştaki geri kalan paketler bu tablodan tekrar geçmeyecektir. Bu tabloda filtreleme yapılmaması tavsiye edilir. NAT Tablosunun Desteklediği Zincirler PREROUTING Zinciri, POSTROUTING Zinciri ve OUTPUT Zinciridir.

Mangle Table : Adından da anlaşılacağı gibi bu tablo paketlerin yönetilmesine yarar. Özel paket değişikliğinde kullanılır. Farklı paketlerin içeriğini ve başlıklarını değiştirmek için kullanılabilir. Mangle masası Maskeleme için kullanılamaz. Desteklenen zincirler PREROUTING Zinciri, OUTPUT Zinciri, İleri Zincir, INPUT Zinciri, POSTROUTING Zinciridir.

Filtre Tablosu : Filtre Tablosu iptables'da kullanılan varsayılan tablodur. Paketleri filtrelemek için kullanılır. Herhangi bir kural tanımlanmamışsa Filtre Tablosu varsayılan tablo olarak alınır ve filtreleme bu tablo esas alınarak yapılır. Desteklenen Zincirler GİRİŞ Zinciri, ÇIKIŞ Zinciri, İLERİ Zincirdir.

Raw Table : Daha önce muaf tutulan paketleri yapılandırmak istediğimizde ham tablo devreye giriyor. PREROUTING Chain ve OUTPUT Chain'i destekler.

6. iptables'da hedef değerler (hedefte belirtilebilecek) nelerdir ve ne işe yararlar, kısaca!

Cevap: Aşağıda iptables'da target'ta belirtebileceğimiz hedef değerler yer almaktadır:

    1. KABUL : Paketleri Kabul Et
    2. QUEUE : Kullanıcı alanına (uygulama ve sürücülerin bulunduğu yer) Paas Paketi
    3. DROP : Paketleri Bırak
    4. RETURN : Denetimi çağıran zincire döndürür ve zincirdeki geçerli Paketler için sonraki kural kümesinin yürütülmesini durdurur.
7. İptables'ın teknik yönlerine geçelim, teknik derken pratik demek istiyorum.

CentOS'ta iptables yüklemek için gereken iptables rpm'yi nasıl kontrol edeceksiniz?

Cevap: iptables rpm standart CentOS kurulumuna dahildir ve ayrı olarak kurmamıza gerek yoktur. Devir sayısını şu şekilde kontrol edebiliriz:

rpm -qa iptables

iptables-1.4.21-13.el7.x86_64

Yüklemeniz gerekiyorsa, onu almak için yum yapabilirsiniz.

yum install iptables-services
8. iptables hizmetinin çalışıp çalışmadığı nasıl kontrol edilir ve güvence altına alınır?

Cevap: iptables'ın durumunu kontrol etmek için terminalde aşağıdaki komutu çalıştırabilirsiniz.

service iptables status			[On CentOS 6/5]
systemctl status iptables			[On CentOS 7]

Çalışmıyorsa aşağıdaki komut çalıştırılabilir.

---------------- On CentOS 6/5 ---------------- 
chkconfig --level 35 iptables on
service iptables start

---------------- On CentOS 7 ---------------- 
systemctl enable iptables 
systemctl start iptables 

Ayrıca iptables modülünün yüklü olup olmadığını da şu şekilde kontrol edebiliriz:

lsmod | grep ip_tables
9. iptables'da tanımlanan mevcut Kuralları nasıl inceleyeceksiniz?

Cevap: iptables'taki mevcut kurallar şu kadar basit bir şekilde incelenebilir:

iptables -L

Örnek Çıktı

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
10. Tüm iptables kurallarını veya belirli bir zinciri nasıl temizleyeceksiniz?

Cevap: Belirli bir iptables zincirini temizlemek için aşağıdaki komutları kullanabilirsiniz.

 
iptables --flush OUTPUT

Tüm iptables kurallarını temizlemek için.

iptables --flush
11. Güvenilir bir IP Adresinden gelen paketleri kabul etmek için iptables'a bir kural ekleyin (örneğin 192.168.0.7)

Cevap: Yukarıdaki senaryo yalnızca aşağıdaki komutu çalıştırarak gerçekleştirilebilir.

iptables -A INPUT -s 192.168.0.7 -j ACCEPT 

Standart eğik çizgiyi veya alt ağ maskesini kaynağa şu şekilde ekleyebiliriz:

iptables -A INPUT -s 192.168.0.7/24 -j ACCEPT 
iptables -A INPUT -s 192.168.0.7/255.255.255.0 -j ACCEPT
12. iptables'da ACCEPT, REJECT, DENY ve DROP ssh servisine kurallar nasıl eklenir.

Cevap: Ssh'nin aynı zamanda ssh için varsayılan bağlantı noktası olan 22 numaralı bağlantı noktasında çalıştığını umarak iptables'a şu şekilde kural ekleyebiliriz:

Ssh hizmeti (bağlantı noktası 22) için tcp paketlerini KABUL ETMEK.

iptables -A INPUT -s -p tcp --dport 22 -j ACCEPT 

Ssh hizmeti (bağlantı noktası 22) için tcp paketlerini REDDEtmek.

iptables -A INPUT -s -p tcp --dport 22 -j REJECT

Ssh hizmeti (bağlantı noktası 22) için tcp paketlerini REDDEDER.

 
iptables -A INPUT -s -p tcp --dport 22 -j DENY

Ssh hizmeti (bağlantı noktası 22) için tcp paketlerini DROP'a göndermek.

 
iptables -A INPUT -s -p tcp --dport 22 -j DROP
13. Size bir senaryo vereyim. Yerel ip adresi 192.168.0.6 olan bir makine olduğunu varsayalım. Makinenize giden 21, 22, 23 ve 80 numaralı bağlantı noktalarındaki bağlantıları engellemeniz gerekir. Ne yapacaksın?

Cevap: Kullanmam gereken tek şey, iptables ve ardından engellenecek bağlantı noktası numaralarının yer aldığı 'çoklu bağlantı noktası' seçeneği ve yukarıdaki senaryo tek seferde gerçekleştirilebilir: .

iptables -A INPUT -s 192.168.0.6 -p tcp -m multiport --dport 21,22,23,80 -j DROP

Yazılı kurallar aşağıdaki komut kullanılarak kontrol edilebilir.

iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
DROP       tcp  --  192.168.0.6          anywhere             multiport dports ssh,telnet,http,webcache

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Görüşmeci : Sormak istediğim tek şey buydu. Siz kaçırmayı istemeyeceğimiz değerli bir çalışansınız. İsminizi İK'ya tavsiye edeceğim. Herhangi bir sorunuz varsa bana sorabilirsiniz.

Bir aday olarak sohbeti bölmek istemiyorum, bu nedenle seçilirsem üstleneceğim projeler ve şirketteki diğer açık pozisyonlar hakkında sorular sormaya devam edin. İK turunu aşmanın zor olmadığından bahsetmiyorum bile ve bu fırsatı yakaladım.

Ayrıca röportajımı belgelemeye zaman ayırdıkları için Avishek ve Ravi'ye (uzun zamandır arkadaşım) teşekkür etmek isterim.

Arkadaşlar! Böyle bir röportaj vermiş olsaydınız ve röportaj deneyiminizi dünya çapındaki milyonlarca Tecmint okuyucusuyla paylaşmak ister miydiniz? daha sonra sorularınızı ve yanıtlarınızı [e-posta korumalı] adresine gönderin veya aşağıdaki formu kullanarak röportaj deneyiminizi gönderebilirsiniz.

Teşekkür ederim! Bağlantıda Kalın. Ayrıca bir soruyu yaptığımdan daha doğru cevaplayabilir miydim, bana bildirin.