13 haastattelukysymystä Linux iptables -palomuurista


Nishita Agarwal, usein Tecmintin vierailija, jakoi meille kokemuksensa (kysymys ja vastaus) työhaastattelusta, jonka hän oli juuri antanut yksityisessä omistuksessa olevassa hosting-yrityksessä Punessa. , Intia. Häneltä kysyttiin paljon kysymyksiä useista eri aiheista, mutta hän on iptablesin asiantuntija ja hän halusi jakaa nämä iptablesiin liittyvät kysymykset ja vastaukset (hänen antoi) muille, jotka saattavat olla menossa antaa haastattelun lähiaikoina.

Kaikki kysymykset ja niiden vastaukset on kirjoitettu uudelleen Nishita Agarwalin muiston perusteella.

"Hei ystävät! Nimeni on Nishita Agarwal. Olen suorittanut tekniikan kandidaatin tutkinnon. Erikoisalani on UNIX, ja UNIX-variantit (BSD, Linux) kiehtovat minua siitä lähtien, kun kuulin sen. Minulla on 1+ vuoden kokemus varastoinnista. Etsin työnvaihtoa, joka päättyi hosting-yritykseen Punessa, Intiassa. ”

Tässä on kokoelma, mitä minulta kysyttiin haastattelun aikana. Olen dokumentoinut vain ne kysymykset ja niiden vastaukset, jotka muistini perusteella liittyivät iptablesiin. Toivottavasti tämä auttaa sinua haastattelusi purkamisessa.

1. Oletko kuullut iptablesista ja palomuurista Linuxissa? Onko tietoa mitä ne ovat ja mihin niitä käytetään?

Vastaus : Olen käyttänyt iptablesia melko pitkään ja olen tietoinen sekä iptablesista että palomuurista. Iptables on sovellusohjelma, joka on kirjoitettu enimmäkseen C-ohjelmointikielellä ja se on julkaistu GNU General Public License -lisenssillä. Kirjoitettu järjestelmänhallinnan näkökulmasta, uusin vakaa julkaisu, jos iptables 1.4.21.iptablesia voidaan pitää UNIXin kaltaisen käyttöjärjestelmän palomuurina, jota voidaan kutsua nimellä iptables/netfilter tarkemmin. Järjestelmänvalvoja on vuorovaikutuksessa iptablesin kanssa konsoli/GUI-käyttöliittymätyökalujen kautta lisätäkseen ja määrittääkseen palomuurisääntöjä ennalta määritettyihin taulukoihin. Netfilter on ytimen sisään rakennettu moduuli, joka suorittaa suodatustyön.

Palomuuri on uusin suodatussääntöjen toteutus RHEL/CentOS 7 -versiossa (voi olla käytössä muissa jakeluissa, joista en ehkä ole tietoinen). Se on korvannut iptables-liitännän ja muodostaa yhteyden netfilteriin.

2. Oletko käyttänyt jotain GUI-pohjaista käyttöliittymätyökalua iptablesille tai Linuxin komentoriville?

Vastaus : Vaikka olen käyttänyt sekä GUI-pohjaisia käyttöliittymätyökaluja iptablesille, kuten Shorewallille, Webminin konjugaatiossa graafisessa käyttöliittymässä ja suoraa pääsyä iptablesiin konsolin kautta.Ja minun on pakko. myöntää, että suora pääsy iptablesiin Linux-konsolin kautta antaa käyttäjälle valtavan vallan, koska se lisää joustavuutta ja ymmärtää paremmin mitä taustalla tapahtuu, ellei mitään muuta. GUI on aloitteleville järjestelmänvalvojille, kun taas konsoli on kokeneille.

3. Mitkä ovat peruserot iptablesin ja palomuurin välillä?

Vastaus : iptables ja palomuuri palvelevat samaa tarkoitusta (Pakettisuodatus), mutta eri lähestymistavalla. iptables huuhtelee kaikki säännöt joka kerta, kun muutos tehdään toisin kuin palomuuri. Tyypillisesti iptables-määritysten sijainti on /etc/sysconfig/iptables, kun taas palomuuriasetukset ovat osoitteessa /etc/firewalld/, joka on joukko XML-tiedostoja. .XML-pohjaisen palomuurin määrittäminen on helpompaa kuin iptablesin määrittäminen, mutta sama tehtävä voidaan suorittaa käyttämällä sekä pakettisuodatussovellusta eli iptablesia että palomuuria. Firewalld käyttää iptablesia konepellin alla sekä oman komentorivikäyttöliittymänsä ja konfiguraatiotiedostonsa, joka on XML-pohjainen ja edellä mainittiin.

4. Korvaisitko iptablesin palomuurilla kaikilla palvelimillasi, jos se olisi mahdollista?

Vastaus : Olen perehtynyt iptablesiin ja se toimii, ja jos mikään ei vaadi palomuurin dynaamista osuutta, ei näytä olevan mitään syytä siirtää kaikkia määrityksiäni iptablesista palomuuriin.Useimmissa tapauksissa en ole toistaiseksi nähnyt iptablesin aiheuttavan ongelmia. Myös tietotekniikan yleinen sääntö sanoo "miksi korjata, jos se ei ole rikki". Tämä on kuitenkin henkilökohtainen ajatukseni, enkä koskaan välitä palomuurin käyttöönotosta, jos organisaatio aikoo korvata iptablesin palomuurilla.

5. Vaikutat luottavaiselta iptablesin kanssa, ja plussa on se, että käytämme iptablesia palvelimellamme.

Mitä taulukoita käytetään iptablesissa? Anna lyhyt kuvaus iptablesissa käytetyistä taulukoista ja niiden tukemista ketjuista.

Vastaus : Kiitos tunnustuksesta. Siirrymme kysymysosaan, iptablesissa käytetään neljää taulukkoa, nimittäin:

  1. Nat-taulukko
  2. Mangle pöytä
  3. Suodatintaulukko
  4. Raaka taulukko

Nat-taulukko: Nat-taulukkoa käytetään ensisijaisesti verkko-osoitteiden kääntämiseen. Naamioitujen pakettien IP-osoite muutetaan taulukon sääntöjen mukaisesti. Virran paketit kulkevat Nat-taulukon läpi vain kerran. eli jos pakettisuihkusta peräisin oleva paketti on naamioitu, ne muut virran paketit eivät kulje tämän taulukon läpi uudelleen. On suositeltavaa olla suodattamatta tässä taulukossa. NAT-taulukon tukemat ketjut ovat PREROUTING-ketju, POSTROUTING-ketju ja OUTPUT-ketju.

Mangle Table : Kuten nimestä voi päätellä, tätä taulukkoa käytetään pakettien käsittelemiseen. Sitä käytetään erikoispakettien muuttamiseen. Sen avulla voidaan muuttaa eri pakettien sisältöä ja niiden otsikoita. Mangle-pöytää ei voi käyttää naamiointiin. Tuetut ketjut ovat PREROUTING Chain, OUTPUT Chain, Forward Chain, INPUT Chain, POSTROUTING Chain.

Suodatintaulukko : Suodatintaulukko on oletustaulukko, jota käytetään iptablesissa. Sitä käytetään pakettien suodattamiseen. Jos sääntöjä ei ole määritetty, Filter Table otetaan oletustaulukoksi ja suodatus suoritetaan tämän taulukon perusteella. Tuetut ketjut ovat INPUT Chain, OUTPUT Chain, FORWARD Chain.

Raakataulukko : Raakataulukko otetaan käyttöön, kun haluamme määrittää paketteja, jotka on vapautettu aiemmin. Se tukee PREROUTING-ketjua ja OUTPUT Chain -toimintoa.

6. Mitkä ovat tavoitearvot (jotka voidaan määrittää targetissa) iptablesissa ja mitä ne tekevät, ole lyhyt!

Vastaus : Seuraavat kohdearvot, jotka voimme määrittää targetissa iptablesissa:

    1. Hyväksy: Hyväksy paketit
    2. JONO : Paas-paketti käyttäjätilaan (paikka, jossa sovellus ja ajurit sijaitsevat)
    3. DROP: Pudota paketit
    4. PALAA: Palauta ohjaus kutsuketjuun ja lopeta seuraavan säännöstön suorittaminen ketjun nykyisille paketeille.
7. Siirrytään iptablesin teknisiin puoliin, teknisellä tarkoitan käytännöllistä.

Kuinka tarkistat iptablesin rpm:n, joka tarvitaan iptablesin asentamiseen CentOS:ään?.

Vastaus : iptables rpm sisältyvät vakio CentOS-asennukseen, eikä meidän tarvitse asentaa sitä erikseen. Voimme tarkistaa kierrosluvun seuraavasti:

rpm -qa iptables

iptables-1.4.21-13.el7.x86_64

Jos sinun on asennettava se, voit hankkia sen helposti.

yum install iptables-services
8. Kuinka tarkistaa ja varmistaa, että iptables-palvelu on käynnissä?

Vastaus : Jos haluat tarkistaa iptablesin tilan, voit suorittaa seuraavan komennon päätteessä.

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

Jos se ei ole käynnissä, alla oleva komento voidaan suorittaa.

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

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

Voimme myös tarkistaa, onko iptables-moduuli ladattu vai ei, kuten:

lsmod | grep ip_tables
9. Kuinka aiot tarkastella nykyisiä iptablesissa määritettyjä sääntöjä?

Vastaus : iptablesin nykyiset säännöt voidaan tarkistaa näin yksinkertaisesti:

iptables -L

Näytelähtö

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. Kuinka tyhjennät kaikki iptables-säännöt tai tietyn ketjun?

Vastaus : Tyhjennä tietty iptables-ketju käyttämällä seuraavia komentoja.

 
iptables --flush OUTPUT

Tyhjennä kaikki iptablesin säännöt.

iptables --flush
11. Lisää iptablesissa sääntö pakettien hyväksymiseksi luotetusta IP-osoitteesta (esim. 192.168.0.7)

Vastaus : Yllä oleva skenaario voidaan saavuttaa yksinkertaisesti suorittamalla alla oleva komento.

iptables -A INPUT -s 192.168.0.7 -j ACCEPT 

Voimme sisällyttää lähteeseen tavallisen vinoviivan tai aliverkon peitteen seuraavasti:

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. Sääntöjen lisääminen ACCEPT, REJECT, DENY ja DROP ssh-palveluun iptablesissa.

Vastaus : Toivottavasti ssh toimii portissa 22, joka on myös ssh:n oletusportti, voimme lisätä iptablesiin säännön seuraavasti:

HYVÄKSY tcp-paketit ssh-palvelua varten (portti 22).

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

ssh-palvelun tcp-pakettien hylkääminen (portti 22).

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

SSH-palvelun (portti 22) tcp-pakettien KIELTÄMINEN.

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

PUDOTA tcp-paketteja ssh-palvelua varten (portti 22).

 
iptables -A INPUT -s -p tcp --dport 22 -j DROP
13. Annan sinulle skenaarion. Oletetaan, että on kone, jonka paikallinen IP-osoite on 192.168.0.6. Sinun on estettävä yhteydet koneellesi porttien 21, 22, 23 ja 80 kautta. Mitä aiot tehdä?

Vastaus : Minun tarvitsee vain multiport-vaihtoehto, jossa iptables ja porttinumerot estetään. Yllä oleva skenaario voidaan saavuttaa yhdellä kertaa .

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

Kirjalliset säännöt voidaan tarkistaa alla olevalla komennolla.

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

Haastattelija : Siinä kaikki, mitä halusin kysyä. Olet arvokas työntekijä, jota emme halua missata. Suosittelen nimeäsi HR:lle. Jos sinulla on kysyttävää, voit kysyä minulta.

Ehdokkaana en halunnut lopettaa keskustelua, joten kyselen jatkuvasti projekteista, joita käsittäisin valituksi tullessani ja mitä muita avoimia paikkoja yrityksessä on. Puhumattakaan HR-kierroksesta ei ollut vaikea murtaa ja sain mahdollisuuden.

Haluan myös kiittää Avishekia ja Ravia (jonka olen ollut ystävä pitkään) siitä, että käyttivät aikaa haastatteluni dokumentoimiseen.

Ystävät! Jos olisit antanut tällaisen haastattelun ja haluaisit jakaa haastattelukokemuksesi miljoonille Tecmintin lukijoille ympäri maailmaa? Lähetä sitten kysymyksesi ja vastauksesi osoitteeseen [sähköpostisuojattu] tai voit lähettää haastattelukokemuksesi seuraavalla lomakkeella.

Kiitos! Pidä yhteyttä. Kerro myös, olisinko voinut vastata kysymykseen oikein.