13 Interviewspørgsmål om Linux iptables Firewall


Nishita Agarwal, en hyppig Tecmint-besøgende, delte sin oplevelse (Spørgsmål og svar) med os om det jobsamtale, hun lige havde givet i et privatejet hostingfirma i Pune, Indien. Hun blev stillet mange spørgsmål om en række emner, men hun er ekspert på iptables, og hun ville dele disse spørgsmål og deres svar (hun gav) relateret til iptables til andre, der muligvis vil give interview i nær fremtid.

Alle spørgsmålene og deres svar omskrives baseret på mindet om Nishita Agarwal.

"Hej venner! Mit navn er Nishita Agarwal. Jeg har forfulgt en bachelorgrad i teknologi. Mit specialiseringsområde er UNIX, og varianter af UNIX (BSD, Linux) fascinerer mig siden jeg hørte det. Jeg har 1+ års erfaring med opbevaring. Jeg ledte efter et jobskifte, der sluttede med et hostingfirma i Pune, Indien. ”

Her er samlingen af, hvad jeg blev bedt om under interviewet. Jeg har kun dokumenteret de spørgsmål og deres svar, der var relateret til iptables baseret på min hukommelse. Håber dette vil hjælpe dig med at knække dit interview.

Svar: Jeg har brugt iptables i ganske lang tid, og jeg er opmærksom på både iptables og firewall. Iptables er et applikationsprogram, der hovedsagelig er skrevet på C-programmeringssprog og frigives under GNU General Public License. Skrevet for systemadministrationssynspunkt kan den seneste stabile udgivelse, hvis iptables 1.4.21. iptables betragtes som firewall til UNIX-lignende operativsystem, der kan kaldes som iptables/netfilter, mere præcist. Administratoren interagerer med iptables via konsol-/GUI-frontendværktøjer for at tilføje og definere firewallregler i foruddefinerede tabeller. Netfilter er et modul bygget inde i kernen, der gør jobbet med at filtrere.

Firewalld er den seneste implementering af filtreringsregler i RHEL/CentOS 7 (kan implementeres i andre distributioner, som jeg måske ikke er opmærksom på). Det har erstattet iptables-grænsefladen og opretter forbindelse til netfilter.

Svar: Selvom jeg har brugt både de GUI-baserede frontend-værktøjer til iptables som Webmin i GUI og direkte adgang til iptables via konsol. Og jeg må indrømme, at direkte adgang til iptables via Linux-konsol giver en bruger enorm magt i form af højere grad af fleksibilitet og bedre forståelse af, hvad der foregår i baggrunden, hvis ikke noget andet. GUI er for nybegynderadministratorer, mens konsol er for erfarne.

Svar: iptables og firewalld tjener det samme formål (Packet Filtering) men med en anden tilgang. iptables skyller hele de indstillede regler hver gang en ændring foretages i modsætning til firewalld. Placeringen af iptables-konfigurationen ligger typisk ved '/ etc/sysconfig/iptables', mens firewalld-konfigurationen ligger ved '/ etc/firewalld /', som er et sæt XML-filer. Konfiguration af en XML-baseret firewalld er nemmere sammenlignet med konfiguration af iptables, men samme opgave kan opnås ved hjælp af både pakkefiltreringsapplikationen, dvs. iptables og firewalld. Firewalld kører iptables under emhætten sammen med sin egen kommandolinjegrænseflade og konfigurationsfil, der er XML-baseret og nævnt ovenfor.

Svar: Jeg er fortrolig med iptables, og det fungerer, og hvis der ikke er noget, der kræver dynamisk aspekt af firewalld, synes der ingen grund til at migrere al min konfiguration fra iptables til firewalld. I de fleste tilfælde , indtil videre har jeg aldrig set iptables skabe et problem. Også den generelle regel for informationsteknologi siger "hvorfor rette, hvis den ikke er brudt". Dette er dog min personlige tanke, og jeg har ikke noget imod at implementere firewalld, hvis organisationen skal erstatte iptables med firewalld.

Hvad er tabellerne brugt i iptables? Giv en kort beskrivelse af de tabeller, der bruges i iptables, og de kæder, de understøtter.

Svar: Tak for anerkendelsen. Flytning til spørgsmålsdel: Der er fire tabeller, der bruges i iptables, nemlig:

  1. Nat-tabel
  2. Mangeltabel
  3. Filtertabel
  4. Råbord

Nat-tabel: Nat-tabel bruges primært til netværksadresseoversættelse. Masqueraded-pakker får deres IP-adresse ændret i henhold til reglerne i tabellen. Pakker i strømmen krydser kun Nat Table en gang. dvs. hvis en pakke fra en pakkestråle maskeres, vil de øvrige pakker i strømmen ikke krydse gennem denne tabel igen. Det anbefales ikke at filtrere i denne tabel. Kæder, der understøttes af NAT-tabellen, er PREROUTING Chain, POSTROUTING Chain og OUTPUT Chain.

Mangle Table: Som navnet antyder, tjener denne tabel til at blande pakkerne. Det bruges til speciel pakkeændring. Det kan bruges til at ændre indholdet af forskellige pakker og deres overskrifter. Mangle bord kan ikke bruges til maskering. Understøttede kæder er PREROUTING Chain, OUTPUT Chain, Forward Chain, INPUT Chain, POSTROUTING Chain.

Filtertabel: Filtertabel er standardtabellen, der bruges i iptables. Det bruges til filtrering af pakker. Hvis der ikke er defineret nogen regler, tages filtertabellen som standardtabel, og filtreringen udføres på baggrund af denne tabel. Understøttede kæder er INPUT Chain, OUTPUT Chain, FORWARD Chain.

Rå tabel: Rå tabel kommer til handling, når vi vil konfigurere pakker, der var undtaget tidligere. Det understøtter PREROUTING Chain og OUTPUT Chain.

Svar: Følgende er de målværdier, som vi kan specificere i target i iptables:

    1. ACCEPT: Accepter pakker
    2. KØ: Paas-pakke til brugerplads (sted, hvor applikation og drivere befinder sig)
    3. DROP: Drop-pakker
    4. RETURN: Retur kontrol til opkaldskæde og stop med at udføre næste sæt regler for de aktuelle pakker i kæden.

    Hvordan vil du kontrollere iptables rpm, der kræves for at installere iptables i CentOS ?.

    Svar: iptables rpm er inkluderet i standard CentOS-installation, og vi behøver ikke at installere det separat. Vi kan kontrollere omdrejningstallet som:

    # rpm -qa iptables
    
    iptables-1.4.21-13.el7.x86_64
    

    Hvis du har brug for at installere det, kan du gøre det for at få det.

    # yum install iptables-services
    

    Svar: For at kontrollere status for iptables kan du køre følgende kommando på terminalen.

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

    Hvis den ikke kører, kan nedenstående kommando muligvis udføres.

    ---------------- On CentOS 6/5 ---------------- 
    # chkconfig --level 35 iptables on
    # service iptables start
    
    ---------------- On CentOS 7 ---------------- 
    # systemctl enable iptables 
    # systemctl start iptables 
    

    Vi kan også kontrollere, om iptables-modulet er indlæst eller ej, som:

    # lsmod | grep ip_tables
    

    Svar: De nuværende regler i iptables kan gennemgås så enkle som:

    # iptables -L
    

    Eksempel på output

    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
    

    Svar: For at skylle en bestemt iptables-kæde, kan du bruge følgende kommandoer.

     
    # iptables --flush OUTPUT
    

    At skylle alle iptables-reglerne.

    # iptables --flush
    

    Svar: Ovenstående scenario kan opnås ved blot at køre nedenstående kommando.

    # iptables -A INPUT -s 192.168.0.7 -j ACCEPT 
    

    Vi kan inkludere standard skråstreg eller undernetmaske i kilden som:

    # 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
    

    At ACCEPTE tcp-pakker til ssh-service (port 22).

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

    At AFVISE tcp-pakker til ssh-service (port 22).

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

    Til DENY tcp-pakker til ssh-service (port 22).

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

    Til DROP tcp-pakker til ssh-service (port 22).

     
    # iptables -A INPUT -s -p tcp --dport 22 -j DROP
    

    Svar: Nå, alt hvad jeg behøver at bruge er muligheden 'multiport' med iptables efterfulgt af portnumre, der skal blokeres, og ovenstående scenarie kan opnås på en gang.

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

    De skriftlige regler kan kontrolleres ved hjælp af nedenstående kommando.

    # 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
    

    Interviewer: Det er alt, hvad jeg ville spørge. Du er en værdifuld medarbejder, som vi ikke vil gå glip af. Jeg vil anbefale dit navn til HR. Hvis du har spørgsmål, kan du stille mig.

    Som kandidat ville jeg ikke dræbe samtalen, og derfor fortsætte med at spørge om de projekter, jeg ville håndtere, hvis jeg valgte, og hvad er de andre åbninger i virksomheden. For ikke at nævne HR-runde var ikke svært at knække, og jeg fik muligheden.

    Jeg vil også gerne takke Avishek og Ravi (som jeg er en ven siden længe) for at de tog sig tid til at dokumentere mit interview.

    Venner! Hvis du havde givet et sådant interview, og du gerne vil dele din interviewoplevelse til millioner af Tecmint-læsere over hele kloden? send derefter dine spørgsmål og svar til [email , eller du kan sende din interviewoplevelse ved hjælp af nedenstående formular.

    Tak skal du have! Hold forbindelsen. Lad mig også vide, om jeg kunne have besvaret et spørgsmål mere korrekt end hvad jeg gjorde.