13 intervijas jautājumi par Linux iptables ugunsmūri


Nishita Agarwal, bieža Tecmint apmeklētāja, dalījās ar mums pieredzē (jautājums un atbilde) par darba interviju, ko viņa tikko sniedza privātīpašumā esošajā hostinga uzņēmumā Punē, Indijā. Viņai tika uzdoti daudz jautājumu par dažādām tēmām, tomēr viņa ir iptables eksperte, un viņa vēlējās dalīties ar šiem jautājumiem un viņu atbildēm (kuras viņa deva) saistībā ar iptables citiem, kuri tuvākajā laikā varētu sniegt interviju.

Visi jautājumi un viņu atbildes tiek pārrakstītas, balstoties uz Nišitas Agarvalas piemiņu.

"Sveiki draugi! Mani sauc Nishita Agarwal. Esmu ieguvis bakalaura grādu tehnoloģijā. Mana specializācijas joma ir UNIX, un UNIX varianti (BSD, Linux) mani aizrauj kopš brīža, kad to dzirdēju. Man ir vairāk nekā 1 gadu pieredze krātuvē. Es meklēju darba maiņu, kas beidzās ar hostinga uzņēmumu Pune, Indijā. ”

Šeit ir apkopots tas, ko man jautāja intervijas laikā. Esmu dokumentējis tikai tos jautājumus un to atbildes, kas bija saistīti ar iptables, pamatojoties uz manu atmiņu. Ceru, ka tas jums palīdzēs izjaukt jūsu interviju.

Atbilde: Esmu lietojis iptables diezgan ilgu laiku, un es zinu gan iptables, gan ugunsmūri. Iptables ir lietojumprogramma, kas galvenokārt rakstīta C programmēšanas valodā un tiek izlaista ar GNU General Public License. Rakstīts sistēmas administrēšanas viedokļa. Jaunākais stabilais laidiens, ja iptables 1.4.21. iptables var tikt uzskatīts par ugunsmūri tādām UNIX operētājsistēmām kā precīzāk - iptables/netfilter. Administrators mijiedarbojas ar iptables, izmantojot konsoles/GUI priekšgala rīkus, lai iepriekš definētās tabulās pievienotu un definētu ugunsmūra kārtulas. Netfilter ir kodols, kas iebūvēts kodola iekšpusē un veic filtrēšanas darbu.

Firewalld ir jaunākā filtrēšanas kārtulu ieviešana RHEL/CentOS 7 (var tikt ieviesta citos izplatījumos, par kuriem es, iespējams, nezinu). Tas ir aizstājis iptables interfeisu un izveido savienojumu ar netfilter.

Atbilde: Lai gan iptables lietoju gan GUI balstītus priekšgala rīkus, piemēram, Webmin GUI, gan tiešu piekļuvi iptables, izmantojot konsoli. Un jāatzīst, ka tieša piekļuve iptables, izmantojot Linux konsoli, dod lietotāju milzīga jauda - lielāka elastība un labāka izpratne par fonā notiekošo, ja ne kas cits. GUI ir domāts iesācēju administratoram, savukārt konsole - pieredzējušam.

Atbilde: iptables un firewalld kalpo vienam un tam pašam mērķim (pakešu filtrēšana), bet ar atšķirīgu pieeju. iptables izmaina visus iestatītos noteikumus katru reizi, kad tiek veiktas izmaiņas atšķirībā no firewalld. Parasti iptables konfigurācijas atrašanās vieta ir “/ etc/sysconfig/iptables”, savukārt ugunsmūra konfigurācija atrodas “/ etc/firewalld /”, kas ir XML failu kopa. XML bāzes ugunsmūra konfigurēšana ir vieglāk salīdzinājumā ar iptables konfigurēšanu, tomēr to pašu uzdevumu var sasniegt, izmantojot gan pakešu filtrēšanas lietojumprogrammu, ti, iptables, gan firewalld. Firewalld zem pārsega palaiž iptables kopā ar savu komandrindas saskarni un konfigurācijas failu, kas ir balstīts uz XML un minēts iepriekš.

Atbilde: Esmu pazīstams ar iptables un tas darbojas, un, ja nekas neprasa ugunsmūra dinamisko aspektu, šķiet, ka nav pamata visu manu konfigurāciju migrēt no iptables uz firewalld. Vairumā gadījumu , līdz šim es nekad neesmu redzējis, ka iptables radītu problēmu. Arī vispārīgajā informācijas tehnoloģiju noteikumā ir teikts “kāpēc labot, ja tas nav salauzts” Tomēr šī ir mana personīgā doma, un man nekad nebūtu iebildumu pret ugunsmūra ieviešanu, ja Organizācija iptables aizstās ar firewalld.

Kādas ir iptables izmantotās tabulas? Sniedziet īsu iptables izmantoto tabulu un to atbalstīto ķēžu aprakstu.

Atbilde: Paldies par atzinību. Pārejot uz jautājumu daļu, iptables izmanto četras tabulas, proti, tās ir:

  1. Nat tabula
  2. Mangle tabula
  3. Filtrēšanas tabula
  4. Neapstrādāts galds

Nat tabula: Nat tabulu galvenokārt izmanto tīkla adrešu tulkošanai. Maskēto pakešu IP adrese tiek mainīta atbilstoši tabulas noteikumiem. Plūsmā esošās paketes šķērso Nat tabulu tikai vienu reizi. ti, ja tiek paklāts no pakešu strūklas, pārējie straumē esošie paketes vairs netiks šķērsoti šajā tabulā. Šajā tabulā ieteicams nefiltrēt. Ķēdes, kuras atbalsta NAT Table, ir PREROUTING Chain, POSTROUTING Chain un OUTPUT Chain.

Mangle tabula: Kā norāda nosaukums, šī tabula kalpo paku sagrābšanai. To lieto īpašai paketes pārveidošanai. To var izmantot, lai mainītu dažādu pakešu saturu un to galvenes. Mangle galdu nevar izmantot maskēšanai. Atbalstītās ķēdes ir PREROUTING Chain, OUTPUT Chain, Forward Chain, INPUT Chain, POSTROUTING Chain.

Filtrēšanas tabula: filtru tabula ir noklusējuma tabula, ko izmanto iptables. To izmanto pakešu filtrēšanai. Ja noteikumi nav definēti, filtru tabula tiek uzskatīta par noklusējuma tabulu, un filtrēšana tiek veikta, pamatojoties uz šo tabulu. Atbalstītās ķēdes ir INPUT Chain, OUTPUT Chain, FORWARD Chain.

Neapstrādāta tabula: Neapstrādāta tabula sāk darboties, kad mēs vēlamies konfigurēt paketes, kas tika atbrīvotas agrāk. Tas atbalsta PREROUTING ķēdi un OUTPUT ķēdi.

Atbilde: Tālāk ir norādītas mērķa vērtības, kuras mēs varam norādīt mērķī iptables:

    1. PIEŅEMT: Pieņemiet paketes
    2. Rinda: Paas pakotne lietotāja vietnei (vieta, kur atrodas lietojumprogramma un draiveri)
    3. DROP: nomest paketes
    4. RETURN: atgriezieties vadībā uz izsaukuma ķēdi un pārtrauciet izpildīt nākamo kārtulu kopu pašreizējām paketēm ķēdē.

    Kā jūs pārbaudīsit iptables apgr./min., Kas nepieciešams, lai instalētu iptables CentOS ?.

    Atbilde: iptables rpm ir iekļauti standarta CentOS instalācijā, un mums tas nav jāinstalē atsevišķi. Apgrozījumu mēs varam pārbaudīt šādi:

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

    Ja jums tas jāinstalē, varat to izdarīt, lai to iegūtu.

    # yum install iptables-services
    

    Atbilde: Lai pārbaudītu iptables statusu, jūs varat palaist šādu komandu terminālā.

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

    Ja tas nedarbojas, var izpildīt zemāk redzamo komandu.

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

    Mēs varam arī pārbaudīt, vai iptables modulis ir ielādēts vai nav, kā:

    # lsmod | grep ip_tables
    

    Atbilde: Pašreizējos iptables noteikumus var pārskatīt vienkārši:

    # iptables -L
    

    Izlaides paraugs

    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
    

    Atbilde: Lai izskalotu noteiktu iptables ķēdi, varat izmantot šādas komandas.

     
    # iptables --flush OUTPUT
    

    Lai izskalotu visus iptables noteikumus.

    # iptables --flush
    

    Atbilde: Iepriekš minēto scenāriju var sasniegt, vienkārši izpildot zemāk esošo komandu.

    # iptables -A INPUT -s 192.168.0.7 -j ACCEPT 
    

    Mēs varam iekļaut standarta slīpsvītru vai apakštīkla masku avotā kā:

    # 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
    

    Atbilde: Cerot, ka ssh darbojas 22. portā, kas ir arī ssh noklusējuma ports, iptables kārtulu varam pievienot šādi:

    PIEŅEMT TCP paketes ssh pakalpojumam (22. ports).

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

    Lai noraidītu TCP paketes ssh pakalpojumam (22. ports).

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

    Noliegt TCP paketes ssh pakalpojumam (22. ports).

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

    DROP TCP paketes ssh pakalpojumam (22. ports).

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

    Atbilde: Viss, kas man jāizmanto, ir opcija" multiport "ar iptables, kam seko bloķējami ostu numuri, un iepriekšminēto scenāriju var sasniegt ar vienu piegājienu.

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

    Uzrakstītos noteikumus var pārbaudīt, izmantojot zemāk esošo komandu.

    # 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
    

    Intervētājs: Tas ir viss, ko es gribēju jautāt. Jūs esat vērtīgs darbinieks, kura mums nepatīk garām. Es ieteikšu jūsu vārdu AP. Ja jums ir kādi jautājumi, varat man uzdot.

    Kā kandidāts es nevēlējos nogalināt sarunu, tāpēc turpinu vaicāt par projektiem, kurus es vadītu, ja tiktu izvēlēts, un kādas ir citas iespējas uzņēmumā. Nemaz nerunājot par HR kārtu nebija grūti uzlauzt, un es saņēmu iespēju.

    Es arī vēlos pateikties Avishek un Ravi (kurus es jau ilgu laiku esmu draugs) par laika intervijas dokumentēšanu.

    Draugi! Ja jūs būtu sniedzis šādu interviju un vēlaties dalīties savā intervijas pieredzē ar miljoniem Tecmint lasītāju visā pasaulē? pēc tam nosūtiet savus jautājumus un atbildes uz [email , vai arī varat iesniegt intervijas pieredzi, izmantojot šādu veidlapu.

    Paldies! Uzturēt savienojumu. Paziņojiet man arī, vai es būtu varējis atbildēt uz jautājumu pareizāk nekā tas, ko izdarīju.