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 firewalld
në iptables
(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:
- sudo iptables -S | tee ~/firewalld_iptables_rules
Bëni të njëjtën gjë me ip6tabela
:
- 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:
- 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:
- 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:
- 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:
- sudo nano /etc/sysconfig/iptables
- 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:
- sudo sh -c 'iptables-restore -t < /etc/sysconfig/iptables'
- 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:
- sudo system-config-firewall-tui
Nëse e keni të instaluar ndërfaqen grafike, mund ta nisni duke shtypur:
- 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:
- sudo systemctl stop firewalld && sudo systemctl start iptables; sudo systemctl start ip6tables
Mund të verifikoni që firewalld
nuk funksionon duke shkruar:
- sudo firewall-cmd --state
Ju gjithashtu mund të shihni se rregullat që keni vendosur në drejtorinë /etc/sysconfig
janë ngarkuar dhe zbatuar duke shtypur:
- sudo iptables -S
- 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:
- 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:
- sudo systemctl mask firewalld
Tani, mund të aktivizoni shërbimet tuaja iptables
dhe ip6tables
në mënyrë që ato të fillojnë automatikisht në nisje:
- sudo systemctl enable iptables
- 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.