13 Pitanja za intervju o Linux iptables Firewall-u


Nishita Agarwal, česti Tecmint posjetitelj podijelila je s nama svoje iskustvo (pitanje i odgovor) u vezi sa intervjuom za posao koji je upravo dala u privatnoj hosting kompaniji u Puneu , Indija. Postavljali su joj mnoga pitanja o raznim temama, međutim ona je stručnjakinja za iptables i željela je podijeliti ta pitanja i njihov odgovor (koji je dala) u vezi s iptablesom drugima koji će možda ići na dati intervju u bliskoj budućnosti.

Sva pitanja i njihovi odgovori su prepisani na osnovu sjećanja na Nishita Agarwal.

“Zdravo prijatelji! Moje ime je Nishita Agarwal. Stekao sam diplomu iz tehnologije. Moja oblast specijalizacije je UNIX i Varijante UNIX-a (BSD, Linux) me fasciniraju od trenutka kada sam to čuo. Imam 1+ godina iskustva u skladištu. Tražio sam promjenu posla koja je završila sa hosting kompanijom u Puneu, Indija. ”

Evo zbirke onoga što su me pitali tokom intervjua. Dokumentirao sam samo ona pitanja i njihove odgovore koja su se odnosila na iptables na osnovu mog sjećanja. Nadam se da će vam ovo pomoći u probijanju intervjua.

1. Jeste li čuli za iptables i firewall u Linuxu? Imaš li ideju šta su i za šta se koristi?

Odgovor : Koristim iptables dosta dugo i znam za iptables i firewall. Iptables je aplikativni program uglavnom napisan u programskom jeziku C i objavljen je pod GNU Općom javnom licencom. Napisano sa stanovišta sistemske administracije, najnovije stabilno izdanje if iptables 1.4.21.iptables se može smatrati zaštitnim zidom za operativni sistem poput UNIX-a koji se može nazvati kao iptables/netfilter, tačnije. Administrator stupa u interakciju sa iptables preko konzolnih/GUI front end alata kako bi dodao i definirao pravila zaštitnog zida u unaprijed definirane tabele. Netfilter je modul ugrađen unutar kernela koji obavlja posao filtriranja.

Firewalld je najnovija implementacija pravila filtriranja u RHEL/CentOS 7 (može biti implementirana u drugim distribucijama kojih možda nisam svjestan). Zamijenio je iptables interfejs i povezuje se na netfilter.

2. Da li ste koristili neku vrstu GUI baziranog prednjeg alata za iptables ili Linux Command Line?

Odgovor : Iako sam koristio i GUI bazirane front end alate za iptables kao što je Shorewall u konjugaciji Webmin-a u GUI-u i direktan pristup iptables-u preko konzole.I moram. priznati da direktan pristup iptables-u preko Linux konzole daje korisniku ogromnu moć u vidu većeg stepena fleksibilnosti i boljeg razumijevanja onoga što se dešava u pozadini, ako ne i bilo čega drugog. GUI je za administratora početnika, dok je konzola za iskusne.

3. Koje su osnovne razlike između iptables i firewalld?

Odgovor : iptables i firewalld služe istoj svrsi (Filtriranje paketa), ali sa drugačijim pristupom. iptables isprazni kompletna pravila svaki put kada se napravi promjena za razliku od firewalld-a. Obično se lokacija iptables konfiguracije nalazi na '/etc/sysconfig/iptables' dok se konfiguracija firewalld-a nalazi na '/etc/firewalld/', što je skup XML datoteka .Konfiguracija firewalld baziranog na XML-u je lakša u poređenju sa konfiguracijom iptables, međutim isti zadatak se može postići korištenjem aplikacije za filtriranje paketa, tj. iptables i firewalld. Firewalld pokreće iptables ispod svoje haube zajedno sa svojim sučeljem komandne linije i konfiguracijskim fajlom koji je baziran na XML-u i gore rečeno.

4. Da li biste zamenili iptables sa firewalld na svim vašim serverima, ako biste imali priliku?

Odgovor : Upoznat sam sa iptablesom i radi i ako ne postoji ništa što bi zahtijevalo dinamički aspekt firewalld-a, čini se da nema razloga da migriram svu svoju konfiguraciju sa iptablesa na firewalld.U većini slučajeva, do sada nikada nisam vidio da iptables stvara problem. Također, opće pravilo informatičke tehnologije kaže “zašto popraviti ako nije pokvareno”. Međutim, ovo je moje lično mišljenje i nikada ne bih imao ništa protiv implementacije firewalld-a ako će Organizacija zamijeniti iptables sa firewalld-om.

5. Čini se da ste sigurni u iptables, a plus je što čak i mi koristimo iptables na našem serveru.

Koje se tabele koriste u iptables? Dajte kratak opis tabela koje se koriste u iptables i lanaca koje oni podržavaju.

Odgovor : Hvala na priznanju. Prelazimo na dio pitanja, postoje četiri tabele koje se koriste u iptables-u, a to su:

  1. Nat Table
  2. Mangle Table
  3. Tabela filtera
  4. Raw Table

Nat tabela : Nat tabela se prvenstveno koristi za prevođenje mrežnih adresa. Maskirani paketi dobijaju svoju IP adresu izmijenjenu prema pravilima u tabeli. Paketi u toku prelaze Nat Table samo jednom. tj., ako je paket iz mlaza paketa maskiran, ostali paketi u toku neće ponovo proći kroz ovu tabelu. Preporučuje se da se ne filtrira u ovoj tabeli. Lanci koje podržava NAT tabela su lanac PREROUTING, POSTROUTING lanac i OUTPUT lanac.

Mangle Table : Kao što ime sugerira, ova tablica služi za mangliranje paketa. Koristi se za posebne izmjene paketa. Može se koristiti za promjenu sadržaja različitih paketa i njihovih zaglavlja. Mangle stol se ne može koristiti za maskiranje. Podržani lanci su PREROUTING lanac, OUTPUT lanac, prednji lanac, INPUT lanac, POSTROUTING lanac.

Tabela filtera : Tabela filtera je zadana tablica koja se koristi u iptables. Koristi se za filtriranje paketa. Ako nema definisanih pravila, tabela filtera se uzima kao podrazumevana tabela i filtriranje se vrši na osnovu ove tabele. Podržani lanci su INPUT Chain, OUTPUT Chain, FORWARD Chain.

Raw Table : Sirova tabela dolazi u akciju kada želimo konfigurirati pakete koji su ranije bili izuzeti. Podržava lanac PREROUTING i OUTPUT Chain.

6. Koje su ciljne vrijednosti (koje se mogu specificirati u target) u iptables-u i šta rade, budite kratki!

Odgovor : Slijede ciljne vrijednosti koje možemo navesti u target u iptables:

    1. ACCEPT : Prihvatite pakete
    2. RED : Paas paket u korisnički prostor (mjesto gdje se nalaze aplikacija i drajveri)
    3. DROP : Ispustite pakete
    4. POVRATAK : Vratite kontrolu u lanac poziva i zaustavite izvršavanje sljedećeg skupa pravila za trenutne pakete u lancu.
7. Pređimo na tehničke aspekte iptablesa, pod tehničkim znači praktičnim.

Kako ćete provjeriti iptables rpm koji je potreban za instaliranje iptablesa u CentOS?.

Odgovor : iptables rpm uključeni su u standardnu instalaciju CentOS-a i ne moramo je zasebno instalirati. Broj obrtaja možemo provjeriti kao:

rpm -qa iptables

iptables-1.4.21-13.el7.x86_64

Ako trebate da ga instalirate, možete učiniti yum da ga nabavite.

yum install iptables-services
8. Kako provjeriti i osigurati da li iptables servis radi?

Odgovor : Da biste provjerili status iptables, možete pokrenuti sljedeću naredbu na terminalu.

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

Ako ne radi, može se izvršiti donja naredba.

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

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

Također možemo provjeriti da li je iptables modul učitan ili ne, kao:

lsmod | grep ip_tables
9. Kako ćete pregledati trenutna pravila definisana u iptables?

Odgovor : Trenutna pravila u iptables mogu se pregledati na jednostavan način:

iptables -L

Uzorak izlaza

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. Kako ćete izbrisati sva iptables pravila ili određeni lanac?

Odgovor : Da ispraznite određeni iptables lanac, možete koristiti sljedeće komande.

 
iptables --flush OUTPUT

Za brisanje svih pravila iptablesa.

iptables --flush
11. Dodajte pravilo u iptables za prihvatanje paketa sa pouzdane IP adrese (recimo 192.168.0.7)

Odgovor : Navedeni scenario se može postići jednostavnim pokretanjem naredbe ispod.

iptables -A INPUT -s 192.168.0.7 -j ACCEPT 

Možemo uključiti standardnu kosu crtu ili masku podmreže u izvor kao:

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. Kako dodati pravila u ACCEPT, REJECT, DENY i DROP ssh servis u iptables.

Odgovor : Nadajući se da ssh radi na portu 22, koji je također zadani port za ssh, možemo dodati pravilo u iptables kao:

Za PRIHVATANJE tcp paketa za ssh uslugu (port 22).

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

Da ODBIJETE tcp pakete za ssh uslugu (port 22).

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

Za ODbiti tcp pakete za ssh uslugu (port 22).

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

Za DROP tcp pakete za ssh uslugu (port 22).

 
iptables -A INPUT -s -p tcp --dport 22 -j DROP
13. Dozvolite mi da vam dam scenario. Recimo da postoji mašina čija je lokalna IP adresa 192.168.0.6. Morate blokirati veze na portu 21, 22, 23 i 80 na vašoj mašini. Šta ćeš uraditi?

Odgovor : Pa, sve što trebam da koristim je 'multiport' opcija sa iptables praćenim brojevima portova koje treba blokirati i gornji scenario se može postići u jednom potezu kao .

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

Napisana pravila mogu se provjeriti korištenjem donje naredbe.

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

Anketar : To je sve što sam htio pitati. Vi ste vrijedan zaposlenik kojeg nećemo voljeti propustiti. Vaše ime ću preporučiti HR-u. Ako imate bilo kakvo pitanje, možete me pitati.

Kao kandidat, nisam želio da ubijam razgovor pa se stalno pitam o projektima kojima bih se bavio ako budem izabran i koja su druga radna mjesta u kompaniji. Da ne spominjem HR rundu nije bilo teško probiti i dobio sam priliku.

Takođe bih želeo da se zahvalim Avisheku i Ravi (kojima sam prijatelj od davnina) što su odvojili vreme da dokumentuju moj intervju.

Prijatelji! Da ste dali bilo kakav takav intervju i želite da svoje iskustvo intervjua podijelite s milionima Tecmint čitatelja širom svijeta? zatim pošaljite svoja pitanja i odgovore na [email zaštićen] ili možete poslati svoje iskustvo intervjua koristeći sljedeći obrazac.

Hvala ti! Ostanite povezani. Takođe me obavestite da li sam mogao tačnije odgovoriti na pitanje od onoga što sam uradio.