Si të konfiguroni një mur zjarri duke përdorur FirewallD në CentOS 7


Prezantimi

Firewalld është një zgjidhje e menaxhimit të murit të zjarrit e disponueshme për shumë shpërndarje Linux, e cila vepron si një frontend për sistemin e filtrimit të paketave iptables të ofruar nga kerneli Linux. Në këtë udhëzues, ne do të mbulojmë se si të konfiguroni një mur zjarri për serverin tuaj dhe do t'ju tregojmë bazat e menaxhimit të murit të zjarrit me mjetin administrativ firewall-cmd (nëse preferoni të përdorni iptables me CentOS, ndiqni këtë udhëzues).

Shënim: Ekziston mundësia që ju mund të punoni me një version më të ri të murit të zjarrit nga ai që ishte i disponueshëm në kohën e këtij shkrimi, ose që serveri juaj të jetë konfiguruar pak më ndryshe nga serveri shembull i përdorur gjatë gjithë kësaj udhërrëfyes. Sjellja e disa prej komandave të shpjeguara në këtë udhëzues mund të ndryshojë në varësi të konfigurimit tuaj specifik.

Konceptet themelore në Firewalld

Përpara se të fillojmë të flasim se si të përdorim në të vërtetë mjetin firewall-cmd për të menaxhuar konfigurimin e murit të zjarrit, duhet të njihemi me disa koncepte bazë që prezanton mjeti.

Zonat

Daemon firewalld menaxhon grupe rregullash duke përdorur entitete të quajtura \zona. Zonat janë në thelb grup rregullash që diktojnë se çfarë trafiku duhet të lejohet në varësi të nivelit të besimit që keni në rrjetet me të cilat është i lidhur kompjuteri juaj Ndërfaqeve të rrjetit u është caktuar një zonë për të diktuar sjelljen që duhet të lejojë muri i zjarrit.

Për kompjuterët që mund të lëvizin shpesh ndërmjet rrjeteve (si laptopët), ky lloj fleksibiliteti ofron një metodë të mirë për të ndryshuar rregullat tuaja në varësi të mjedisit tuaj. Mund të keni rregulla strikte që ndalojnë shumicën e trafikut kur operoni në një rrjet publik WiFi, ndërsa lejoni kufizime më të relaksuara kur lidheni me rrjetin tuaj të shtëpisë. Për një server, këto zona nuk janë aq të rëndësishme menjëherë, sepse mjedisi i rrjetit ndryshon rrallë, nëse ndonjëherë.

Pavarësisht se sa dinamik mund të jetë mjedisi i rrjetit tuaj, është ende e dobishme të njiheni me idenë e përgjithshme pas secilës prej zonave të paracaktuara për firewalld. Në renditje nga më pak e besueshmemë e besueshme, zonat e paracaktuara brenda firewalld janë:

  • rënie: Niveli më i ulët i besimit. Të gjitha lidhjet hyrëse janë hequr pa përgjigje dhe vetëm lidhjet dalëse janë të mundshme.
  • blloku: Ngjashëm me sa më sipër, por në vend që thjesht të hiqen lidhjet, kërkesat hyrëse refuzohen me një icmp-host-i ndaluar ose icmp6-adm- mesazh i ndaluar.
  • public: Përfaqëson rrjete publike, të pabesueshme. Nuk u beson kompjuterëve të tjerë, por mund të lejosh lidhjet e zgjedhura hyrëse rast pas rasti.
  • e jashtme: Rrjetet e jashtme në rast se po përdorni murin e zjarrit si portë. Është konfiguruar për maskuar NAT në mënyrë që rrjeti juaj i brendshëm të mbetet privat, por i arritshëm.
  • i brendshëm: Ana tjetër e zonës së jashtme, e përdorur për pjesën e brendshme të një porte. Kompjuterët janë mjaft të besueshëm dhe disa shërbime shtesë janë të disponueshme.
  • dmz: Përdoret për kompjuterët e vendosur në një DMZ (kompjuterë të izoluar që nuk do të kenë akses në pjesën tjetër të rrjetit tuaj). Lejohen vetëm disa lidhje hyrëse.
  • punë: Përdoret për makinat e punës. Besoni shumicën e kompjuterëve në rrjet. Mund të lejohen disa shërbime të tjera.
  • shtëpi: Një mjedis shtëpie. Në përgjithësi nënkupton që ju i besoni shumicës së kompjuterëve të tjerë dhe se disa shërbime të tjera do të pranohen.
  • i besuar: Besoni të gjitha makinat në rrjet. Opsionet më të hapura të disponueshme dhe duhet të përdoren me masë.

Për të përdorur murin e zjarrit, ne mund të krijojmë rregulla dhe të ndryshojmë vetitë e zonave tona dhe më pas të caktojmë ndërfaqet tona të rrjetit në cilëndo zonë që është më e përshtatshme.

Përhershmëria e rregullit

Në firewalld, rregullat mund të përcaktohen si të përhershme ose të menjëhershme. Nëse shtohet ose modifikohet një rregull, si parazgjedhje, modifikohet sjellja e murit të zjarrit që funksionon aktualisht. Në nisjen tjetër, modifikimet do të hidhen jashtë dhe do të zbatohen rregullat e vjetra.

Shumica e operacioneve firewall-cmd mund të marrin flamurin --permanent për të treguar se muri i zjarrit jo-efemer duhet të synohet. Kjo do të ndikojë në grupin e rregullave që ringarkohet pas nisjes. Kjo ndarje do të thotë që ju mund të testoni rregullat në shembullin tuaj aktiv të murit të zjarrit dhe më pas të rifreskoni nëse ka probleme. Ju gjithashtu mund të përdorni flamurin --permanent për të ndërtuar një grup të tërë rregullash me kalimin e kohës që do të zbatohen të gjitha menjëherë kur të lëshohet komanda e rifreskimit.

Instaloni dhe aktivizoni Firewall-in tuaj që të fillojë në Boot

firewalld është instaluar si parazgjedhje në disa shpërndarje Linux, duke përfshirë shumë imazhe të CentOS 7. Megjithatë, mund të jetë e nevojshme që të instaloni vetë murin e zjarrit:

  1. sudo yum install firewalld

Pasi të instaloni firewalld, mund ta aktivizoni shërbimin dhe të rindizni serverin tuaj. Mbani në mend se aktivizimi i murit të zjarrit do të bëjë që shërbimi të fillojë në nisje. Është praktika më e mirë të krijoni rregullat tuaja të murit të zjarrit dhe të shfrytëzoni mundësinë për t'i testuar ato përpara se të konfiguroni këtë sjellje, në mënyrë që të shmangni problemet e mundshme.

  1. sudo systemctl enable firewalld
  2. sudo reboot

Kur serveri riniset, muri juaj i zjarrit duhet të ngrihet, ndërfaqet e rrjetit tuaj duhet të vendosen në zonat që keni konfiguruar (ose të kthehen në zonën e paracaktuar të konfiguruar) dhe çdo rregull që lidhet me zonën(t) do të zbatohet në zonën e lidhur ndërfaqet.

Mund të verifikojmë që shërbimi po funksionon dhe është i arritshëm duke shtypur:

  1. sudo firewall-cmd --state
Output
running

Kjo tregon që muri ynë i zjarrit është i hapur dhe funksionon me konfigurimin e paracaktuar.

Njohja me rregullat aktuale të murit të zjarrit

Para se të fillojmë të bëjmë modifikime, duhet të njihemi me mjedisin e paracaktuar dhe rregullat e ofruara nga daemon.

Eksplorimi i parazgjedhjeve

Mund të shohim se cila zonë është zgjedhur aktualisht si e paracaktuar duke shtypur:

  1. firewall-cmd --get-default-zone
Output
public

Meqenëse nuk i kemi dhënë firewalld asnjë komandë për të devijuar nga zona e paracaktuar dhe asnjë nga ndërfaqet tona nuk është konfiguruar të lidhet me një zonë tjetër, ajo zonë do të jetë gjithashtu e vetmja zonë \aktive ( zona që kontrollon trafikun për ndërfaqet tona). Ne mund ta verifikojmë këtë duke shtypur:

  1. firewall-cmd --get-active-zones
Output
public interfaces: eth0 eth1

Këtu, ne mund të shohim se serveri ynë shembull ka dy ndërfaqe rrjeti që kontrollohen nga muri i zjarrit (eth0 dhe eth1). Të dyja aktualisht po menaxhohen sipas rregullave të përcaktuara për zonën publike.

Megjithatë, si e dimë se cilat rregulla lidhen me zonën publike? Mund të printojmë konfigurimin e zonës së paracaktuar duke shtypur:

  1. sudo firewall-cmd --list-all
Output
public (default, active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Ne mund të themi nga dalja se kjo zonë është njëkohësisht e paracaktuar dhe aktive dhe se ndërfaqet eth0 dhe eth1 janë të lidhura me këtë zonë (ne i dinim tashmë të gjitha këto nga pyetjet e mëparshme). Megjithatë, ne mund të shohim gjithashtu se kjo zonë lejon operacionet normale të lidhura me një klient DHCP (për caktimin e adresës IP) dhe SSH (për administrimin në distancë).

Eksplorimi i Zonave Alternative

Tani kemi një ide të mirë për konfigurimin për zonën e paracaktuar dhe aktive. Mund të gjejmë informacion edhe për zona të tjera.

Për të marrë një listë të zonave të disponueshme, shkruani:

  1. firewall-cmd --get-zones
Output
block dmz drop external home internal public trusted work

Ne mund të shohim konfigurimin specifik të lidhur me një zonë duke përfshirë parametrin --zone= në komandën tonë --list-all:

  1. sudo firewall-cmd --zone=home --list-all
Output
home target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Mund të nxirrni të gjitha përkufizimet e zonave duke përdorur opsionin --list-all-zones. Ju ndoshta do të dëshironi të dërgoni daljen në një pager për shikim më të lehtë:

  1. sudo firewall-cmd --list-all-zones | less

Zgjedhja e zonave për ndërfaqet tuaja

Nëse nuk i keni konfiguruar ndërfaqet e rrjetit tuaj ndryshe, çdo ndërfaqe do të vendoset në zonën e paracaktuar kur muri i zjarrit të niset.

Ndryshimi i zonës së një ndërfaqe

Ju mund të kaloni një ndërfaqe midis zonave gjatë një sesioni duke përdorur parametrin --zone= në kombinim me parametrin --change-interface=. Ashtu si me të gjitha komandat që modifikojnë murin e zjarrit, do t'ju duhet të përdorni sudo.

Për shembull, ne mund ta kalojmë ndërfaqen tonë eth0 në zonën \home duke shtypur këtë:

  1. sudo firewall-cmd --zone=home --change-interface=eth0
Output
success

Shënim: Sa herë që po kaloni një ndërfaqe në një zonë të re, kini parasysh se ndoshta po modifikoni shërbimet që do të jenë funksionale. Për shembull, këtu po kalojmë në zonën \home, e cila ka SSH të disponueshme. Kjo do të thotë që lidhja jonë nuk duhet të bjerë. Disa zona të tjera nuk e kanë SSH të aktivizuar si parazgjedhje dhe nëse lidhja juaj është ndërprerë gjatë përdorimit të një në këto zona, mund ta gjeni veten të paaftë për t'u identifikuar përsëri.

Mund të verifikojmë që kjo ishte e suksesshme duke kërkuar sërish zonat aktive:

  1. firewall-cmd --get-active-zones
Output
home interfaces: eth0 public interfaces: eth1

Rregullimi i zonës së paracaktuar

Nëse të gjitha ndërfaqet tuaja mund të trajtohen më së miri nga një zonë e vetme, ndoshta është më e lehtë të zgjidhni zonën më të mirë të paracaktuar dhe më pas ta përdorni atë për konfigurimin tuaj.

Mund ta ndryshoni zonën e paracaktuar me parametrin --set-default-zone=. Kjo do të ndryshojë menjëherë çdo ndërfaqe që ishte kthyer në parazgjedhje në zonën e re:

  1. sudo firewall-cmd --set-default-zone=home
Output
success

Vendosja e rregullave për aplikacionet tuaja

Mënyra bazë e përcaktimit të përjashtimeve të murit të zjarrit për shërbimet që dëshironi të vini në dispozicion është mjaft e drejtpërdrejtë. Këtu do të shqyrtojmë idenë bazë.

Shtimi i një shërbimi në zonat tuaja

Metoda më e thjeshtë është të shtoni shërbimet ose portat që ju nevojiten në zonat që po përdorni. Përsëri, mund të merrni një listë të shërbimeve të disponueshme me opsionin --get-services:

  1. firewall-cmd --get-services
Output
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

Shënim: Mund të merrni më shumë detaje rreth secilit prej këtyre shërbimeve duke parë skedarin e tyre të lidhur .xml brenda /usr/lib/firewalld/services drejtoria. Për shembull, shërbimi SSH përcaktohet si ky:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

Mund të aktivizoni një shërbim për një zonë duke përdorur parametrin --add-service=. Operacioni do të synojë zonën e paracaktuar ose çfarëdo zone të specifikuar nga parametri --zone=. Si parazgjedhje, kjo do të rregullojë vetëm seancën aktuale të murit të zjarrit. Ju mund të rregulloni konfigurimin e përhershëm të murit të zjarrit duke përfshirë flamurin --permanent.

Për shembull, nëse po ekzekutojmë një server ueb që shërben trafik konvencional HTTP, mund ta lejojmë këtë trafik për ndërfaqet në zonën tonë \publike për këtë sesion duke shtypur:

  1. sudo firewall-cmd --zone=public --add-service=http

Ju mund të lini jashtë --zone= nëse dëshironi të modifikoni zonën e paracaktuar. Mund të verifikojmë që operacioni ishte i suksesshëm duke përdorur operacionet --list-all ose --list-services:

  1. sudo firewall-cmd --zone=public --list-services
Output
dhcpv6-client http ssh

Pasi të keni testuar se gjithçka po funksionon siç duhet, ndoshta do të dëshironi të modifikoni rregullat e përhershme të murit të zjarrit në mënyrë që shërbimi juaj të jetë ende i disponueshëm pas një rindezjeje. Ne mund ta bëjmë ndryshimin e zonës tonë \publike të përhershme duke shtypur:

  1. sudo firewall-cmd --zone=public --permanent --add-service=http
Output
success

Mund të verifikoni që kjo ishte e suksesshme duke shtuar flamurin --permanent në operacionin --list-services. Ju duhet të përdorni sudo për çdo operacion --permanent:

  1. sudo firewall-cmd --zone=public --permanent --list-services
Output
dhcpv6-client http ssh

Zona juaj publike tani do të lejojë trafikun e uebit HTTP në portën 80. Nëse serveri juaj i uebit është konfiguruar të përdorë SSL/TLS, do të dëshironi të shtoni gjithashtu shërbimin https. Mund ta shtojmë këtë në sesionin aktual dhe grupin e përhershëm të rregullave duke shtypur:

  1. sudo firewall-cmd --zone=public --add-service=https
  2. sudo firewall-cmd --zone=public --permanent --add-service=https

Çfarë ndodh nëse nuk ka shërbim të përshtatshëm?

Shërbimet e murit të zjarrit që përfshihen me instalimin e murit të zjarrit përfaqësojnë shumë nga kërkesat më të zakonshme për aplikacionet që mund të dëshironi të lejoni aksesin. Megjithatë, ka të ngjarë të ketë skenarë ku këto shërbime nuk i përshtaten kërkesave tuaja.

Në këtë situatë, ju keni dy mundësi.

Hapja e një porti për zonat tuaja

Një mënyrë për të shtuar mbështetje për aplikacionin tuaj specifik është të hapni portat që ai përdor në zonën(t) e duhura. Kjo bëhet duke specifikuar gamën e portit ose portit dhe protokollin e lidhur për portet që duhet të hapni.

Për shembull, nëse aplikacioni ynë funksionon në portin 5000 dhe përdor TCP, ne mund ta shtojmë këtë në zonën \publike për këtë sesion duke përdorur parametrin --add-port=. Protokollet mund të jenë ose tcp ose udp:

  1. sudo firewall-cmd --zone=public --add-port=5000/tcp
Output
success

Ne mund të verifikojmë që kjo ishte e suksesshme duke përdorur operacionin --list-ports:

  1. sudo firewall-cmd --zone=public --list-ports
Output
5000/tcp

Është gjithashtu e mundur të specifikoni një gamë vijuese portash duke ndarë portën e fillimit dhe të mbarimit në interval me një vizë. Për shembull, nëse aplikacioni ynë përdor portat UDP 4990 deri 4999, ne mund t'i hapim ato në publik duke shtypur:

  1. sudo firewall-cmd --zone=public --add-port=4990-4999/udp

Pas testimit, ne do të dëshironim t'i shtonim këto në murin e përhershëm të zjarrit. Ju mund ta bëni këtë duke shtypur:

  1. sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp
  2. sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp
  3. sudo firewall-cmd --zone=public --permanent --list-ports
Output
success success 5000/tcp 4990-4999/udp

Përcaktimi i një shërbimi

Hapja e porteve për zonat tuaja është e lehtë, por mund të jetë e vështirë të mbash gjurmët se për çfarë shërben secila. Nëse ndonjëherë çaktivizoni një shërbim në serverin tuaj, mund ta keni të vështirë të mbani mend se cilat porte që janë hapur janë ende të nevojshme. Për të shmangur këtë situatë, është e mundur të përcaktohet një shërbim.

Shërbimet janë koleksione portash me një emër dhe përshkrim të lidhur. Përdorimi i shërbimeve është më i lehtë për t'u administruar sesa portet, por kërkon pak punë paraprake. Një mënyrë e mirë për të filluar është të kopjoni një skript ekzistues (që gjendet në /usr/lib/firewalld/services) në drejtorinë /etc/firewalld/services ku duket muri i zjarrit për përkufizime jo standarde.

Për shembull, ne mund të kopjojmë përkufizimin e shërbimit SSH për ta përdorur për përkufizimin e shërbimit tonë \shembull si kjo. Emri i skedarit minus prapashtesën .xml do të diktojë emrin e shërbimit brenda listës së shërbimeve të murit të zjarrit:

  1. sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml

Tani, mund të rregulloni përkufizimin e gjetur në skedarin që keni kopjuar:

  1. sudo vi /etc/firewalld/services/example.xml

Për të filluar, skedari do të përmbajë përkufizimin SSH që keni kopjuar:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

Pjesa më e madhe e këtij përkufizimi është në të vërtetë meta të dhëna. Ju do të dëshironi të ndryshoni emrin e shkurtër për shërbimin brenda etiketave <short>. Ky është një emër i lexueshëm nga njeriu për shërbimin tuaj. Ju gjithashtu duhet të shtoni një përshkrim në mënyrë që të keni më shumë informacion nëse ndonjëherë keni nevojë të auditoni shërbimin. I vetmi konfigurim që duhet të bëni që në fakt ndikon në funksionalitetin e shërbimit ka të ngjarë të jetë përkufizimi i portit ku identifikoni numrin dhe protokollin e portit që dëshironi të hapni. Kjo mund të specifikohet disa herë.

Për shërbimin tonë \shembull, imagjinoni se duhet të hapim portin 7777 për TCP dhe 8888 për UDP. Duke hyrë në modalitetin INSERT duke shtypur i, ne mund të modifikojmë përkufizimin ekzistues me diçka të tillë:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Example Service</short>
  <description>This is just an example service.  It probably shouldn't be used on a real system.</description>
  <port protocol="tcp" port="7777"/>
  <port protocol="udp" port="8888"/>
</service>

Shtypni ESC, më pas futni :x për të ruajtur dhe mbyllur skedarin.

Ringarkoni murin tuaj të zjarrit për të pasur akses në shërbimin tuaj të ri:

  1. sudo firewall-cmd --reload

Ju mund të shihni se tani është në listën e shërbimeve të disponueshme:

  1. firewall-cmd --get-services
Output
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch example freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

Tani mund ta përdorni këtë shërbim në zonat tuaja si zakonisht.

Krijimi i zonave tuaja

Ndërsa zonat e paracaktuara ndoshta do të jenë më se të mjaftueshme për shumicën e përdoruesve, mund të jetë e dobishme të përcaktoni zonat tuaja që janë më përshkruese të funksionit të tyre.

Për shembull, mund të dëshironi të krijoni një zonë për serverin tuaj të internetit, të quajtur \web publik. Megjithatë, mund të dëshironi të konfiguroni një zonë tjetër për shërbimin DNS që ofroni në rrjetin tuaj privat. Ju mund të dëshironi një zonë të quajtur\privateDNS” për këtë.

Kur shtoni një zonë, duhet ta shtoni atë në konfigurimin e përhershëm të murit të zjarrit. Më pas mund të ringarkoni për të sjellë konfigurimin në sesionin tuaj të ekzekutimit. Për shembull, ne mund të krijojmë dy zonat që diskutuam më lart duke shtypur:

  1. sudo firewall-cmd --permanent --new-zone=publicweb
  2. sudo firewall-cmd --permanent --new-zone=privateDNS

Ju mund të verifikoni që këto janë të pranishme në konfigurimin tuaj të përhershëm duke shtypur:

  1. sudo firewall-cmd --permanent --get-zones
Output
block dmz drop external home internal privateDNS public publicweb trusted work

Siç u tha më parë, këto nuk do të jenë ende të disponueshme në shembullin aktual të murit të zjarrit:

  1. firewall-cmd --get-zones
Output
block dmz drop external home internal public trusted work

Ringarko murin e zjarrit për të sjellë këto zona të reja në konfigurimin aktiv:

  1. sudo firewall-cmd --reload
  2. firewall-cmd --get-zones
Output
block dmz drop external home internal privateDNS public publicweb trusted work

Tani, mund të filloni të caktoni shërbimet dhe portet e duhura në zonat tuaja. Zakonisht është një ide e mirë të rregulloni shembullin aktiv dhe më pas t'i transferoni ato ndryshime në konfigurimin e përhershëm pas testimit. Për shembull, për zonën \web publik, mund të dëshironi të shtoni shërbimet SSH, HTTP dhe HTTPS:

  1. sudo firewall-cmd --zone=publicweb --add-service=ssh
  2. sudo firewall-cmd --zone=publicweb --add-service=http
  3. sudo firewall-cmd --zone=publicweb --add-service=https
  4. sudo firewall-cmd --zone=publicweb --list-all
Output
publicweb target: default icmp-block-inversion: no interfaces: sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Po kështu, ne mund të shtojmë shërbimin DNS në zonën tonë \privateDNS:

  1. sudo firewall-cmd --zone=privateDNS --add-service=dns
  2. sudo firewall-cmd --zone=privateDNS --list-all
Output
privateDNS interfaces: sources: services: dns ports: masquerade: no forward-ports: icmp-blocks: rich rules:

Më pas ne mund të ndryshojmë ndërfaqet tona në këto zona të reja për t'i testuar ato:

  1. sudo firewall-cmd --zone=publicweb --change-interface=eth0
  2. sudo firewall-cmd --zone=privateDNS --change-interface=eth1

Në këtë pikë, ju keni mundësinë për të testuar konfigurimin tuaj. Nëse këto vlera funksionojnë për ju, do të dëshironi të shtoni të njëjtat rregulla në konfigurimin e përhershëm. Ju mund ta bëni këtë duke ri-aplikuar rregullat me flamurin --permanent:

  1. sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh
  2. sudo firewall-cmd --zone=publicweb --permanent --add-service=http
  3. sudo firewall-cmd --zone=publicweb --permanent --add-service=https
  4. sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns

Pas zbatimit të përhershëm të këtyre rregullave tuaja, mund të rinisni rrjetin tuaj dhe të ringarkoni shërbimin tuaj të murit të zjarrit:

  1. sudo systemctl restart network
  2. sudo systemctl reload firewalld

Vërtetoni që zonat e sakta janë caktuar:

  1. firewall-cmd --get-active-zones
Output
privateDNS interfaces: eth1 publicweb interfaces: eth0

Dhe vërtetoni që shërbimet e duhura janë të disponueshme për të dyja zonat:

  1. sudo firewall-cmd --zone=publicweb --list-services
Output
http https ssh
  1. sudo firewall-cmd --zone=privateDNS --list-services
Output
dns

Ju keni vendosur me sukses zonat tuaja! Nëse dëshironi të bëni një nga këto zona si të paracaktuara për ndërfaqet e tjera, mos harroni ta konfiguroni atë sjellje me parametrin --set-default-zone=:

sudo firewall-cmd --set-default-zone=publicweb

konkluzioni

Tani duhet të keni një kuptim mjaft të mirë se si të administroni shërbimin e murit të zjarrit në sistemin tuaj CentOS për përdorim të përditshëm.

Shërbimi firewalld ju lejon të konfiguroni rregulla dhe grupe rregullash të mirëmbajtura që marrin parasysh mjedisin e rrjetit tuaj. Kjo ju lejon të kaloni pa probleme midis politikave të ndryshme të mureve të zjarrit përmes përdorimit të zonave dhe u jep administratorëve mundësinë për të abstraguar menaxhimin e portit në përkufizime më miqësore të shërbimit. Marrja e njohurive të punës për këtë sistem do t'ju lejojë të përfitoni nga fleksibiliteti dhe fuqia që ofron ky mjet.