Si të migroni nga FirewallD në Iptables në CentOS 7


Prezantimi

Ashtu si shumica e shpërndarjeve të tjera Linux, CentOS 7 përdor kuadrin netfilter brenda kernelit Linux për të hyrë në paketat që rrjedhin përmes stivës së rrjetit. Kjo siguron ndërfaqen e nevojshme për të inspektuar dhe manipuluar paketat në mënyrë që të zbatohet një sistem firewall.

Shumica e shpërndarjeve përdorin murin e zjarrit iptables, i cili përdor fiksimet netfilter për të zbatuar rregullat e murit të zjarrit. CentOS 7 vjen me një shërbim alternativ të quajtur firewalld i cili përmbush të njëjtin qëllim.

Ndërsa firewalld është një zgjidhje shumë e aftë e murit të zjarrit me veçori të shkëlqyera, mund të jetë më e lehtë për disa përdorues të qëndrojnë me iptables nëse janë të kënaqur me sintaksën e tij dhe të kënaqur me sjelljen e tij dhe performancës. Komanda iptables iptables përdoret në fakt nga vetë firewalld, por iptables shërbimi është nuk është instaluar në CentOS 7 si parazgjedhje. Në këtë udhëzues, ne do të demonstrojmë se si të instaloni shërbimin iptables në CentOS 7 dhe të migroni murin tuaj të zjarrit nga firewalldiptables (shikoni këtë udhëzues nëse dëshironi të mësoni se si të përdorni FirewallD në vend të kësaj).

Ruani rregullat aktuale të murit të zjarrit (opsionale)

Përpara se të kaloni te iptables si zgjidhja e murit të zjarrit të serverit tuaj, është mirë të ruani rregullat aktuale që po zbaton firewalld. Ne përmendëm më lart se demoni firewalld në fakt përdor komandën iptables për të folur me grepat e kernelit netfilter. Për shkak të kësaj, ne mund të hedhim poshtë rregullat aktuale duke përdorur komandën iptables.

Hidhni grupin aktual të rregullave në daljen standarde dhe në një skedar në drejtorinë tuaj të shtëpisë të quajtur firewalld_iptables_rules duke shtypur:

  1. sudo iptables -S | tee ~/firewalld_iptables_rules

Bëni të njëjtën gjë me ip6tabela:

  1. sudo ip6tables -S | tee ~/firewalld_ip6tables_rules

Në varësi të zonave firewalld që ishin aktive, shërbimeve që u aktivizuan dhe rregullave që u kaluan nga firewall-cmd drejtpërdrejt te iptables, grupi i rregullave të hedhura mund të jetë mjaft i gjerë.

Shërbimi firewalld zbaton politikat e tij të murit të zjarrit duke përdorur rregulla normale iptables. Ai e realizon këtë duke ndërtuar një kornizë menaxhimi duke përdorur zinxhirët iptables. Shumica e rregullave që ka të ngjarë të shihni do të përdoren për të krijuar këto zinxhirë menaxhimi dhe për të drejtuar fluksin e trafikut brenda dhe jashtë këtyre strukturave.

Rregullat e murit të zjarrit që përfundoni duke kaluar te shërbimi juaj iptables nuk do të kenë nevojë të rikrijojnë kornizën e menaxhimit ku mbështetet firewalld. Për shkak të kësaj, grupi i rregullave që përfundoni duke zbatuar ka të ngjarë të jetë shumë më i thjeshtë. Ne po e ruajmë të gjithë grupin këtu për të mbajtur sa më shumë të dhëna të papërpunuara të paprekura.

Ju mund të shihni disa nga linjat më thelbësore për të marrë një ide të politikës që do të duhet të rikrijoni duke shtypur diçka si kjo:

  1. grep 'ACCEPT\|DROP\|QUEUE\|RETURN\|REJECT\|LOG' ~/firewalld_iptables_rules

Kjo kryesisht do të shfaqë rregullat që rezultojnë në një vendim përfundimtar. Rregullat që kalojnë vetëm te zinxhirët e krijuar nga përdoruesi nuk do të shfaqen.

Shkarkoni dhe instaloni Shërbimin Iptables

Për të filluar tranzicionin e serverit tuaj, duhet të shkarkoni dhe instaloni paketën iptables-service nga depot e CentOS.

Shkarkoni dhe instaloni skedarët e shërbimit duke shtypur:

  1. sudo yum install iptables-services

Kjo do të shkarkojë dhe instalojë skriptet systemd të përdorura për të menaxhuar shërbimin iptables. Do të shkruajë gjithashtu disa skedarë konfigurimi të paracaktuar iptables dhe ip6tables në direktorinë /etc/sysconfig.

Ndërtoni rregullat tuaja të Firewall-it të Iptables

Më pas, duhet të ndërtoni rregullat e murit të zjarrit iptables duke modifikuar skedarët /etc/sysconfig/iptables dhe /etc/sysconfig/ip6tables. Këta skedarë përmbajnë rregullat që do të lexohen dhe zbatohen kur të fillojmë shërbimin iptables.

Mënyra se si i ndërtoni rregullat e murit tuaj të zjarrit varet nga fakti nëse procesi system-config-firewall është i instaluar dhe nëse përdoret për të menaxhuar këta skedarë. Kontrolloni pjesën e sipërme të skedarit /etc/sysconfig/iptables për të parë nëse rekomandon kundër redaktimit manual apo jo:

  1. sudo head -2 /etc/sysconfig/iptables

Nëse dalja duket kështu, ndjehuni të lirë të modifikoni manualisht skedarët /etc/sysconfig/iptables dhe /etc/sysconfig/ip6tables për të zbatuar politikat për tuaj muri i zjarrit iptables:

output
# sample configuration for iptables service # you can edit this manually or use system-config-firewall

Hapni dhe modifikoni skedarët me privilegje sudo për të shtuar rregullat tuaja:

  1. sudo nano /etc/sysconfig/iptables
  2. sudo nano /etc/sysconfig/ip6tables

Pasi të keni bërë rregullat tuaja, mund të testoni rregullat tuaja IPv4 dhe IPv6 duke përdorur këto komanda:

  1. sudo sh -c 'iptables-restore -t < /etc/sysconfig/iptables'
  2. sudo sh -c 'ip6tables-restore -t < /etc/sysconfig/ip6tables'

Nëse, nga ana tjetër, dalja nga ekzaminimi i skedarit /etc/sysconfig/iptables duket kështu, nuk duhet ta modifikoni manualisht skedarin:

output
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended.

Kjo do të thotë që mjeti i menaxhimit system-config-firewall është instaluar dhe përdoret për të menaxhuar këtë skedar. Çdo ndryshim manual do të mbishkruhet nga mjeti. Nëse e shihni këtë, duhet të bëni ndryshime në murin tuaj të zjarrit duke përdorur një nga mjetet e lidhura. Për UI-në e tekstit, shkruani:

  1. sudo system-config-firewall-tui

Nëse e keni të instaluar ndërfaqen grafike, mund ta nisni duke shtypur:

  1. sudo system-config-firewall

Nëse keni nevojë për ndihmë për të mësuar rreth rregullave dhe sintaksës së iptables, udhëzuesit e mëposhtëm mund të jenë të dobishëm edhe pse ato synohen kryesisht në sistemet Ubuntu:

  • Si të konfiguroni një mur zjarri duke përdorur Iptables në Ubuntu 14.04
  • Iptables Essentials: Rregullat dhe komandat e zakonshme të murit të zjarrit
  • Si të zbatoni një shabllon bazë të murit të zjarrit me Iptables në Ubuntu 14.04

Ndaloni shërbimin FirewallD dhe filloni shërbimin Iptables

Më pas, duhet të ndalojmë murin e zjarrit aktual firewalld dhe të shfaqim shërbimet tona iptables. Ne do të përdorim konstruktin && për të nisur shërbimet e reja të murit të zjarrit sapo shërbimi firewalld të mbyllet me sukses:

  1. sudo systemctl stop firewalld && sudo systemctl start iptables; sudo systemctl start ip6tables

Mund të verifikoni që firewalld nuk funksionon duke shkruar:

  1. sudo firewall-cmd --state

Ju gjithashtu mund të shihni se rregullat që keni vendosur në drejtorinë /etc/sysconfig janë ngarkuar dhe zbatuar duke shtypur:

  1. sudo iptables -S
  2. sudo ip6tables -S

Në këtë pikë, shërbimet iptables dhe ip6tables janë aktive për sesionin aktual. Megjithatë, aktualisht, shërbimi firewalld është ende ai që do të fillojë automatikisht kur serveri të rindizet.

Kjo është koha më e mirë për të testuar politikat tuaja të murit të zjarrit për t'u siguruar që keni nivelin e aksesit që ju nevojitet, sepse mund ta rinisni serverin për t'u rikthyer në murin e zjarrit tuaj të vjetër nëse ka ndonjë problem.

Çaktivizo shërbimin FirewallD dhe aktivizo Shërbimet Iptables

Pasi të keni testuar rregullat e murit tuaj të zjarrit për t'u siguruar që politika juaj po zbatohet saktë, mund të vazhdoni dhe të çaktivizoni shërbimin firewalld duke shtypur:

  1. sudo systemctl disable firewalld

Kjo do të parandalojë që shërbimi të nisë automatikisht në nisje. Meqenëse shërbimi firewalld nuk duhet të niset manualisht ndërkohë që shërbimet iptables po funksionojnë, mund të ndërmerrni një hap shtesë duke maskuar shërbimin. Kjo do të parandalojë që shërbimi firewalld të nisë gjithashtu manualisht:

  1. sudo systemctl mask firewalld

Tani, mund të aktivizoni shërbimet tuaja iptables dhe ip6tables në mënyrë që ato të fillojnë automatikisht në nisje:

  1. sudo systemctl enable iptables
  2. sudo systemctl enable ip6tables

Kjo duhet të përfundojë tranzicionin tuaj të murit të zjarrit.

konkluzioni

Zbatimi i një muri zjarri është një hap thelbësor drejt mbajtjes së sigurt të serverëve tuaj. Ndërsa firewalld është një zgjidhje e shkëlqyer për murin e zjarrit, ndonjëherë përdorimi i mjetit më të njohur ose përdorimi i të njëjtave sisteme në infrastrukturë më të larmishme ka kuptimin më të madh.