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:
- Nat Table
- Mangle Table
- Tabela filtera
- 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:
- ACCEPT : Prihvatite pakete
- RED : Paas paket u korisnički prostor (mjesto gdje se nalaze aplikacija i drajveri)
- DROP : Ispustite pakete
- 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.