25 Gagnlegar IPtable eldveggsreglur sem allir Linux stjórnendur ættu að vita


stilla eldvegginn á þann hátt að hann uppfylli kröfur kerfisins og notenda fyrir bæði komandi og útleiðandi tengingar, án þess að skilja kerfið eftir viðkvæmt fyrir árásum.

Þetta er þar sem iptables koma sér vel. Iptables er Linux skipanalínu eldveggur sem gerir kerfisstjórum kleift að stjórna komandi og útleiðandi umferð með settum stillanlegum töflureglum.

Iptables notar sett af töflum sem hafa keðjur sem innihalda sett af innbyggðum eða notendaskilgreindum reglum. Þökk sé þeim getur kerfisstjóri síað netumferð kerfisins á réttan hátt.

Samkvæmt handbók iptables eru nú 3 tegundir af töflum:

    1. SÍA – þetta er sjálfgefin tafla, sem inniheldur innbyggðu keðjurnar fyrir:
      1. INPUT  – pakkar ætlaðir fyrir staðbundnar innstungur
      2. ÁFRAM – pakkar fluttir í gegnum kerfið
      3. OUTPUT – pakkar búnir til á staðnum

      1. PREROUTING – notað til að breyta pakka um leið og hann er móttekinn
      2. OUTPUT – notað til að breyta staðbundnum pökkum
      3. POSTROUTING – notað til að breyta pökkum þegar þeir eru að fara að fara út

      1. FYRIROUTING – til að breyta komandi tengingum
      2. OUTPUT – til að breyta staðbundnum  pökkum
      3. INPUT – fyrir komandi pakka
      4. POSTROUTING – til að breyta pökkum þegar þeir eru að fara að fara út
      5. ÁFRAM – fyrir pakka sem fluttir eru í gegnum kassann

      Í þessari grein muntu sjá nokkrar gagnlegar skipanir sem hjálpa þér að stjórna Linux kassa eldveggnum þínum í gegnum iptables. Í tilgangi þessarar greinar mun ég byrja á einfaldari skipunum og fara í flóknari til enda.

      1. Byrja/stöðva/endurræsa Iptables eldvegg

      Í fyrsta lagi ættir þú að vita hvernig á að stjórna iptables þjónustu í mismunandi Linux dreifingum. Þetta er frekar auðvelt:

      ------------ On Cent/RHEL 7 and Fedora 22+ ------------
      # systemctl start iptables
      # systemctl stop iptables
      # systemctl restart iptables
      
      ------------ On Cent/RHEL 6/5 and Fedora ------------
      # /etc/init.d/iptables start 
      # /etc/init.d/iptables stop
      # /etc/init.d/iptables restart
      

      2. Athugaðu allar IPtables eldveggsreglur

      Ef þú vilt athuga núverandi reglur þínar skaltu nota eftirfarandi skipun:

      # iptables -L -n -v
      

      Þetta ætti að skila framleiðslu svipað og hér að neðan:

      Chain INPUT (policy ACCEPT 1129K packets, 415M bytes)
       pkts bytes target prot opt in out source destination 
       0 0 ACCEPT tcp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
       0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
       0 0 ACCEPT tcp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
       0 0 ACCEPT udp -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
      Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
       pkts bytes target prot opt in out source destination 
       0 0 ACCEPT all -- * lxcbr0 0.0.0.0/0 0.0.0.0/0 
       0 0 ACCEPT all -- lxcbr0 * 0.0.0.0/0 0.0.0.0/0
      Chain OUTPUT (policy ACCEPT 354K packets, 185M bytes)
       pkts bytes target prot opt in out source destination

      Ef þú vilt frekar athuga reglurnar fyrir tiltekna töflu geturðu notað -t valkostinn og síðan töfluna sem þú vilt athuga. Til dæmis, til að athuga reglurnar í NAT töflunni, geturðu notað:

      # iptables -t nat -L -v -n
      

      3. Lokaðu tilteknu IP-tölu í IPtables eldvegg

      Ef þú finnur óvenjulega eða móðgandi virkni frá IP-tölu geturðu lokað á það IP-tölu með eftirfarandi reglu:

      # iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
      

      Þar sem þú þarft að breyta \xxx.xxx.xxx.xxx\ með raunverulegri IP tölu. Vertu mjög varkár þegar þú keyrir þessa skipun þar sem þú getur óvart lokað á þína eigin IP tölu. Valmöguleikinn -A bætir reglunni við í lok valda keðjunnar.

      Ef þú vilt aðeins loka fyrir TCP umferð frá þessari IP tölu geturðu notað -p valmöguleikann sem tilgreinir samskiptareglur. Þannig mun skipunin líta svona út:

      # iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
      

      4. Opnaðu IP tölu í IPtables eldvegg

      Ef þú hefur ákveðið að þú viljir ekki lengur loka fyrir beiðnir frá tilteknu IP-tölu geturðu eytt lokunarreglunni með eftirfarandi skipun:

      # iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
      

      Valkosturinn -D eyðir einni eða fleiri reglum úr völdu keðjunni. Ef þú vilt frekar nota lengri valkostinn geturðu notað --delete.

      5. Lokaðu tiltekinni höfn á IPtables eldvegg

      Stundum gætirðu viljað loka á komandi eða sendan tengingar á tilteknu tengi. Það er góð öryggisráðstöfun og þú ættir virkilega að hugsa um það mál þegar þú setur upp eldvegginn þinn.

      Til að loka á sendandi tengingar á tiltekinni tengi skaltu nota:

      # iptables -A OUTPUT -p tcp --dport xxx -j DROP
      

      Til að leyfa komandi tengingar skaltu nota:

      # iptables -A INPUT -p tcp --dport xxx -j ACCEPT
      

      Í báðum dæmunum breyttu \xxx\ með raunverulegu gáttinni sem þú vilt leyfa. Ef þú vilt loka fyrir UDP umferð í stað TCP skaltu einfaldlega breyta \tcp\ með \udp\ í ofangreindri iptables reglu.

      6. Leyfðu margar hafnir á IPtables með því að nota Multiport

      Þú getur leyft margar hafnir í einu, með því að nota multiport, hér að neðan geturðu fundið slíka reglu fyrir bæði komandi og útleiðandi tengingar:

      # iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT
      # iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT
      

      7. Leyfðu sérstakt netsvið á tiltekinni höfn á IP-töflum

      Þú gætir viljað takmarka ákveðnar tengingar á tilteknu tengi við tiltekið net. Segjum að þú viljir leyfa sendan tengingar á tengi 22 við netkerfi 192.168.100.0/24.

      Þú getur gert það með þessari skipun:

      # iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT
      

      8. Lokaðu fyrir Facebook á IPtables eldvegg

      Sumum vinnuveitendum finnst gaman að loka fyrir aðgang starfsmanna sinna að Facebook. Hér að neðan er dæmi um hvernig á að loka fyrir umferð á Facebook.

      Athugið: Ef þú ert kerfisstjóri og þarft að beita þessum reglum, hafðu í huga að samstarfsmenn þínir gætu hætt að tala við þig :)

      Finndu fyrst IP tölurnar sem Facebook notar:

      # host facebook.com 
      facebook.com has address 66.220.156.68
      
      # whois 66.220.156.68 | grep CIDR
      CIDR: 66.220.144.0/20
      

      Þú getur síðan lokað á það Facebook net með:

      # iptables -A OUTPUT -p tcp -d 66.220.144.0/20 -j DROP
      

      Hafðu í huga að IP-tölusviðið sem Facebook notar getur verið mismunandi eftir þínu landi.

      9. Setja upp Port Forwarding í IPtables

      Stundum gætirðu viljað áframsenda umferð einnar þjónustu í aðra höfn. Þú getur náð þessu með eftirfarandi skipun:

      # iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525
      

      Skipunin hér að ofan sendir alla komandi umferð á netviðmótinu eth0, frá gátt 25 til gáttar 2525. Þú getur breytt höfnunum með þeim sem þú þarft.

      10. Lokaðu fyrir netflóð á Apache-höfn með IP-töflum

      Stundum geta IP tölur beðið um of margar tengingar í átt að vefgáttum á vefsíðunni þinni. Þetta getur valdið fjölda vandamála og til að koma í veg fyrir slík vandamál geturðu notað eftirfarandi reglu:

      # iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT
      

      Skipunin hér að ofan takmarkar komandi tengingar frá á mínútu í 100 og setur hámarkshraða á 200. Þú getur breytt takmörkunum og takmörkunum eftir þínum eigin sérstökum kröfum.

      11. Lokaðu fyrir mótteknar pingbeiðnir á IPtöflum

      Sumir kerfisstjórar vilja loka á komandi pingbeiðnir vegna öryggisástæðna. Þó að ógnin sé ekki svo mikil, þá er gott að vita hvernig á að loka fyrir slíka beiðni:

      # iptables -A INPUT -p icmp -i eth0 -j DROP
      

      12. Leyfa afturgönguaðgang

      Loopback aðgangur (aðgangur frá 127.0.0.1) er mikilvægur og þú ættir alltaf að hafa hann virkan:

      # iptables -A INPUT -i lo -j ACCEPT
      # iptables -A OUTPUT -o lo -j ACCEPT
      

      13. Haltu skrá yfir netpakka sem hafa sleppt á IPtables

      Ef þú vilt skrá pakkana sem hafa sleppt í netviðmótið eth0, geturðu notað eftirfarandi skipun:

      # iptables -A INPUT -i eth0 -j LOG --log-prefix "IPtables dropped packets:"
      

      Þú getur breytt gildinu á eftir \--log-prefix\ með einhverju að eigin vali. Skilaboðin eru skráð inn /var/log/messages og þú getur leitað að þeim með:

      # grep "IPtables dropped packets:" /var/log/messages
      

      14. Lokaðu aðgangi að tilteknu MAC-vistfangi á IP-töflum

      Þú getur lokað fyrir aðgang að kerfinu þínu frá tilteknu MAC vistfangi með því að nota:

      # iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
      

      Auðvitað þarftu að breyta \00:00:00:00:00:00:00\ með raunverulegu MAC vistfanginu sem þú vilt loka á.

      15. Takmarkaðu fjölda samhliða tenginga á hverja IP tölu

      Ef þú vilt ekki hafa of margar samhliða tengingar frá einni IP tölu á tiltekinni höfn geturðu notað skipunina hér að neðan:

      # iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
      

      Skipunin hér að ofan leyfir ekki fleiri en 3 tengingar á hvern viðskiptavin. Auðvitað geturðu breytt gáttarnúmerinu til að passa við mismunandi þjónustu. Einnig ætti að breyta --connlimit-above til að passa við kröfur þínar.

      16. Leitaðu innan IPtables Rule

      Þegar þú hefur skilgreint iptables reglurnar þínar þarftu að leita af og til og gæti þurft að breyta þeim. Auðveld leið til að leita innan reglna þinna er að nota:

      # iptables -L $table -v -n | grep $string
      

      Í dæminu hér að ofan þarftu að breyta $table með raunverulegu töflunni sem þú vilt leita í og $string með raunverulegum strengnum sem þú ert að leita að.

      Hér er dæmi:

      # iptables -L INPUT -v -n | grep 192.168.0.100
      

      17. Skilgreindu nýja IPTables keðju

      Með iptables geturðu skilgreint þína eigin keðju og geymt sérsniðnar reglur í henni. Til að skilgreina keðju, notaðu:

      # iptables -N custom-filter
      

      Nú geturðu athugað hvort nýja sían þín sé til staðar:

      # iptables -L
      
      Chain INPUT (policy ACCEPT)
      target prot opt source destination
      
      Chain FORWARD (policy ACCEPT)
      target prot opt source destination
      Chain OUTPUT (policy ACCEPT)
      target prot opt source destination
      Chain custom-filter (0 references)
      target prot opt source destination

      18. Skola IPtables eldveggskeðjur eða reglur

      Ef þú vilt skola eldveggskeðjurnar þínar geturðu notað:

      # iptables -F
      

      Þú getur skolað keðjur úr tilteknu borði með:

      # iptables -t nat -F
      

      Þú getur breytt \nat\ með raunverulegu töflunni hvaða keðjur þú vilt skola.

      19. Vista IPtables reglur í skrá

      Ef þú vilt vista eldveggsreglurnar þínar geturðu notað skipunina iptables-save. Þú getur notað eftirfarandi til að vista og geyma reglurnar þínar í skrá:

      # iptables-save > ~/iptables.rules
      

      Það er undir þér komið hvar þú geymir skrána og hvernig þú nefnir hana.

      20. Endurheimtu IPtables reglur úr skrá

      Ef þú vilt endurheimta lista yfir iptables reglur geturðu notað iptables-restore. Skipunin lítur svona út:

      # iptables-restore < ~/iptables.rules
      

      Auðvitað gæti slóðin að regluskránni þinni verið önnur.

      21. Uppsetning IPtables reglur fyrir PCI samræmi

      Sumir kerfisstjórar gætu þurft að stilla netþjóna sína til að vera PCI samhæfðir. Það eru margar kröfur frá mismunandi söluaðilum í samræmi við PCI, en það eru fáar algengar.

      Í mörgum tilfella þarftu að hafa fleiri en eina IP tölu. Þú verður að nota reglurnar hér að neðan fyrir IP tölu síðunnar. Vertu sérstaklega varkár þegar þú notar reglurnar hér að neðan og notaðu þær aðeins ef þú ert viss um hvað þú ert að gera:

      # iptables -I INPUT -d SITE -p tcp -m multiport --dports 21,25,110,143,465,587,993,995 -j DROP
      

      Ef þú notar cPanel eða svipað stjórnborð gætirðu þurft að loka fyrir tengi þess líka. Hér er dæmi:

      # iptables -I in_sg -d DEDI_IP -p tcp -m multiport --dports  2082,2083,2095,2096,2525,2086,2087 -j DROP
      

      Athugið: Til að tryggja að þú uppfyllir kröfur PCI söluaðila þíns skaltu athuga skýrsluna vandlega og beita nauðsynlegum reglum. Í sumum tilfellum gætir þú þurft að loka fyrir UDP umferð á ákveðnum höfnum líka.

      22. Leyfa staðfestar og tengdar tengingar

      Þar sem netumferðin er aðskilin á komandi og útleið, viltu leyfa staðfesta og tengda komandi umferð. Fyrir komandi tengingar gerðu það með:

      # iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
      

      Til notkunar á útleið:

      # iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
      

      23. Slepptu ógildum pakka í IPtables

      Það er mögulegt að hafa nokkra netpakka merkta sem ógilda. Sumir kjósa kannski að skrá þessa pakka, en aðrir kjósa að sleppa þeim. Til að sleppa ógildum pakka geturðu notað:

      # iptables -A INPUT -m conntrack --ctstate INVALID -j DROP 
      

      24. Lokaðu fyrir tengingu á netviðmóti

      Sum kerfi kunna að hafa fleiri en eitt netviðmót. Þú getur takmarkað aðgang að því netviðmóti eða lokað fyrir tengingar frá ákveðnum IP tölu.

      Til dæmis:

      # iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
      

      Breyttu \xxx.xxx.xxx.xxx með raunverulegu IP-tölu (eða neti) sem þú vilt loka á.

      25. Slökktu á sendan póst í gegnum IPTables

      Ef kerfið þitt ætti ekki að senda neinn tölvupóst geturðu lokað á sendandi tengi á SMTP tengi. Þú getur til dæmis notað þetta:

      # iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT
      

      Niðurstaða

      Iptables er öflugur eldveggur sem þú getur auðveldlega notið góðs af. Það er mikilvægt fyrir alla kerfisstjóra að læra að minnsta kosti grunnatriði iptables. Ef þú vilt finna ítarlegri upplýsingar um iptables og valkosti þess er mjög mælt með því að lesa handbókina:

      # man iptables
      

      Ef þú heldur að við ættum að bæta fleiri skipunum við þennan lista, vinsamlegast deildu þeim með okkur með því að senda þær inn í athugasemdahlutanum hér að neðan.