Giunsa ang Pag-install, Pag-configure ug Paggamit sa Firewalld sa CentOS ug Ubuntu


Ang Firewalld (firewall daemon) usa ka alternatibo sa serbisyo sa iptables, alang sa dinamikong pagdumala sa firewall sa sistema nga adunay suporta alang sa network (o firewall) nga mga zone ug naghatag ug interface sa D-Bus para sa pagdumala sa mga configuration. Sayon nga gamiton ug i-configure, ug kini karon ang default nga himan sa pagdumala sa firewall sa RHEL/CentOS, Fedora ug uban pang mga distribusyon sa Linux.

Niini nga artikulo, atong hisgutan kung unsaon pag-configure ang system firewall nga adunay firewalld ug ipatuman ang basic packet filtering sa CentOS/RHEL 7 ug Ubuntu.

Ang Mga Sukaranan Mahitungod sa Firewalld

Ang firewalld naglangkob sa tulo ka mga layer, nga mao, ang:

  • core layer: responsable sa pagdumala sa configuration ug sa likod nga mga tumoy (gilista sa ubos).
  • D-Bus interface: ang nag-unang paagi sa pag-usab ug paghimo sa firewall configuration.
  • backends: para sa interaksyon sa netfilter (ang lumad nga kernel module nga gigamit para sa firewalling). Kini naglakip sa iptables, ip6tables, ebtables, ipset, nft, linnftables; network manager; ug modules.

Nagdumala kini sa mga lagda sa firewall pinaagi sa pag-implementar sa network/firewall zones nga naghubit sa lebel sa pagsalig sa mga koneksyon sa network o mga interface. Ang uban nga gisuportahan nga mga bahin sa firewall naglakip sa mga serbisyo, direkta nga pag-configure (gigamit aron direkta nga ipasa ang hilaw nga iptables syntax), IPSets ingon man mga tipo sa ICMP.

Duha ka klase sa mga palibot sa pagsumpo ang gisuportahan sa firewalld:

  • pag-configure sa runtime nga epektibo lang hangtod ma-reboot ang makina o ma-restart ang serbisyo sa firewalld
  • permanente nga configuration nga gitipigan ug padayon nga naglihok.

Ang firewall-cmd command line tool gigamit sa pagdumala sa runtime ug permanenteng configuration. Sa laing bahin, mahimo nimong gamiton ang firewall-config graphical user interface (GUI) configuration tool aron makig-interact sa daemon.

Dugang pa, ang firewalld nagtanyag usa ka maayong pagkahan-ay nga interface alang sa ubang mga lokal nga serbisyo o aplikasyon aron direkta nga mangayo mga pagbag-o sa mga lagda sa firewall, kung kini nagdagan nga adunay mga pribilehiyo sa gamut.

Ang global configuration file para sa firewalld nahimutang sa /etc/firewalld/firewalld.conf ug ang firewall features gi-configure sa XML format.

Pagsabot sa Importante nga Firewalld Features

Ang sentro nga bahin sa firewalld mao ang network/firewall zones. Ang matag uban nga bahin gigapos sa usa ka sona. Ang firewall zone naghulagway sa lebel sa pagsalig alang sa usa ka koneksyon, interface o tinubdan nga address nga nagbugkos.

Ang default nga configuration moabut uban ang usa ka gidaghanon sa mga predefined zones nga gisunod sumala sa default nga lebel sa pagsalig sa mga zone gikan sa dili kasaligan ngadto sa kasaligan: drop, block, public, external, dmz, work, home, internal ug trusted. Gihubit kini sa mga file nga gitipigan ubos sa direktoryo nga /usr/lib/firewalld/zones.

Mahimo nimong i-configure o idugang ang imong naandan nga mga sona gamit ang kliyente sa CLI o yano nga paghimo o pagkopya sa usa ka zone file sa /etc/firewalld/zones gikan sa naa na nga mga file ug i-edit kini.

Ang laing importante nga konsepto ubos sa firewalld mao ang mga serbisyo. Ang usa ka serbisyo gihubit gamit ang mga pantalan ug mga protocol; kini nga mga kahulugan nagrepresentar sa usa ka gihatag nga serbisyo sa network sama sa usa ka web server o layo nga serbisyo sa pag-access. Ang mga serbisyo gihubit sa mga file nga gitipigan ubos sa /usr/lib/firewalld/services/ o /etc/firewalld/services/ directory.

Kung nahibal-an nimo ang mga batakang iptables/ip6tables/ebtables nga mga konsepto, mahimo usab nimo gamiton ang direktang interface (o configuration) aron makakuha og direktang access sa firewall. Apan, alang niadtong walay kahibalo sa iptables, mahimo nimong gamiton ang dato nga pinulongan alang sa paghimo og mas komplikado nga mga lagda sa firewall alang sa IPv4 ug IPv6.

Giunsa ang Pag-install sa Firewalld Package sa Linux

Sa CentOS 7, ang firewalld nga pakete nag-una nga na-install ug mahimo nimong pamatud-an gamit ang mosunod nga mando.

$ rpm -qa firewalld

Sa Ubuntu 16.04 ug 18.04, mahimo nimo kini i-install gamit ang default package manager sama sa gipakita.

$ sudo apt install firewalld

Giunsa Pagdumala ang Serbisyo sa Firewalld sa Linux

Ang Firewalld usa ka regular nga serbisyo sa systemd nga mahimong madumala pinaagi sa command systemctl.

 
$ sudo systemctl start firewalld	#start the service for the mean time
$ sudo systemctl enable firewalld	#enable the service to auto-start at boot time
$ sudo systemctl status firewalld	#view service status

Human sa pagsugod sa serbisyo sa firewalld, mahimo usab nimo nga susihon kung ang daemon nagdagan o wala, gamit ang firewall-cmd nga himan (kon dili kini aktibo, kini nga sugo magpagawas sa \dili modagan).

$ sudo firewall-cmd --state

Kung mahitabo nimo nga magtipig sa bisan unsang mga pagbag-o nga permanente, mahimo nimong i-reload ang firewalld. Kini mag-reload sa mga lagda sa firewall ug magtipig sa impormasyon sa estado. Ang kasamtangan nga permanenteng configuration mahimong bag-ong runtime configuration.

$ sudo firewall-cmd --reload

Giunsa ang Pagtrabaho sa Firewall Zone sa Firewalld

Aron makakuha usa ka lista sa tanan nga magamit nga mga sona ug serbisyo sa firewall, padagana kini nga mga mando.

$ sudo firewall-cmd --get-zones
$ sudo firewall-cmd --get-services

Ang default nga sona mao ang sona nga gigamit alang sa matag bahin sa firewall nga dili klaro nga gilimitahan sa lain nga sona. Mahimo nimong makuha ang default zone nga gitakda alang sa mga koneksyon sa network ug mga interface pinaagi sa pagdagan.

$ sudo firewall-cmd --get-default-zone

Aron itakda ang default zone, pananglitan ngadto sa gawas, gamita ang mosunod nga sugo. Timan-i nga ang pagdugang sa opsyon --permanent nagtakda sa configuration nga permanente (o makapahimo sa pagpangutana sa impormasyon gikan sa permanente nga configuration environment).

$ sudo firewall-cmd --set-default-zone=external
OR
$ sudo firewall-cmd --set-default-zone=external --permanent
$ sudo firewall-cmd --reload 

Sunod, tan-awon naton kung giunsa pagdugang usa ka interface sa usa ka zone. Kini nga pananglitan nagpakita kung giunsa pagdugang ang imong wireless network adapter (wlp1s0) sa zone home, nga gigamit sa mga lugar sa balay.

$ sudo firewall-cmd --zone=home --add-interface=wlp1s0

Ang usa ka interface mahimo lamang idugang sa usa ka sona. Aron ibalhin kini sa laing sona, gamita ang switch nga --change-interface sama sa gipakita, o kuhaa kini gikan sa miaging sona gamit ang –remove-interface switch, dayon idugang kini sa bag-ong sona.

Sa pag-ingon nga gusto nimo nga magkonektar sa usa ka publiko nga WI-FI network, kinahanglan nimo nga ibalhin ang imong wireless interface balik sa publiko nga sona, sama niini:

$ sudo firewall-cmd --zone=public --add-interface=wlp1s0
$ sudo firewall-cmd --zone=public --change-interface=wlp1s0

Mahimo nimong gamiton ang daghang mga zone sa parehas nga oras. Aron makakuha usa ka lista sa tanan nga aktibo nga mga sona nga adunay mga gipaandar nga bahin sama sa mga interface, serbisyo, pantalan, protocol, pagdagan:

$ sudo firewall-cmd --get-active-zones

Kalabot sa miaging punto, Kung gusto nimo pangitaon ang dugang nga kasayuran bahin sa usa ka partikular nga sona, i.e ang tanan nga gidugang o gipagana niini, gamita ang usa niini nga mga mando:

$ sudo firewall-cmd --zone=home --list-all
OR
$ sudo firewall-cmd --info-zone public

Laing mapuslanong kapilian mao ang --get-target, nga nagpakita kanimo sa target sa usa ka permanente nga sona. Ang target kay usa sa: default, ACCEPT, DROP, REJECT. Mahimo nimong susihon ang target sa lainlaing mga zone:

$ sudo firewall-cmd --permanent --zone=public --get-target  
$ sudo firewall-cmd --permanent --zone=block --get-target  
$ sudo firewall-cmd --permanent --zone=dmz --get-target  
$ sudo firewall-cmd --permanent --zone=external --get-target
$ sudo firewall-cmd --permanent --zone=drop --get-target

Giunsa ang Pag-abli ug Pag-block sa mga Port sa Firewalld

Aron maablihan ang port (o kombinasyon sa port/protocol) sa firewall, idugang lang kini sa zone nga adunay opsyon nga --add-port. Kung dili nimo klaro nga ipiho ang sona, mahimo kini sa default nga sona.

Ang mosunod nga pananglitan nagpakita kon unsaon pagdugang ang port 80 ug 443 aron tugotan ang in-bound nga trapiko sa web pinaagi sa HTTP ug HTTPS nga mga protocol, matag usa:

$ sudo firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=443/tcp

Sunod, i-reload ang firewalld ug susiha ang mga naka-enable nga bahin sa public zone sa makausa pa, kinahanglan nimo nga makita ang bag-o lang nga gidugang nga mga pantalan.

$ sudo firewall-cmd --reload
$ sudo firewall-cmd --info-zone public

Ang pagbabag o pagsira sa usa ka port sa firewall parehas ra kadali, kuhaa lang kini gikan sa usa ka sona nga adunay kapilian nga --remove-port. Pananglitan, sa pagsira sa mga pantalan 80 ug 443 sa publiko nga sona.

$ sudo firewall-cmd --zone=public --permanent --remove-port=80/tcp --remove-port=443/tcp

Imbis nga gamiton ang port o port/protocol nga kombinasyon, mahimo nimong gamiton ang ngalan sa serbisyo diin ang usa ka pantalan gi-assign sama sa gipatin-aw sa sunod nga seksyon.

Giunsa ang Pag-abli ug Pag-block sa Mga Serbisyo sa Firewalld

Aron maablihan ang usa ka serbisyo sa firewall, i-enable kini gamit ang --add-service nga kapilian. Kung ang zone wala iapil, ang default zone ang gamiton.

Ang mosunod nga sugo permanenteng makapahimo sa serbisyo sa http sa publikong sona.

$ sudo firewall-cmd --zone=public --permanent --add-service=http 
$ sudo firewall-cmd --reload 

Ang --remove-service nga opsyon mahimong gamiton sa pag-disable sa usa ka serbisyo.

$ sudo firewall-cmd --zone=public --permanent --remove-service=http 
$ sudo firewall-cmd --reload 

Giunsa Pag-enable ug Pag-disable ang IP Masquerading Gamit ang Firewalld

Ang IP Masquerading (nailhan usab nga IPMASQ o MASQ) usa ka mekanismo sa NAT (Network Address Translation) sa Linux networking nga nagtugot sa imong mga host sa usa ka network, nga adunay mga pribadong IP address nga makigkomunikar sa Internet gamit ang imong server sa Linux (IPMASQ gateway) nga gi-assign sa publiko nga IP. adres.

Kini usa ka one-to-many mapping. Ang trapiko gikan sa imong dili makita nga mga host makita sa ubang mga kompyuter sa internet ingon nga kini gikan sa imong server sa Linux.

Mahimo nimong i-enable ang IP masquerading sa gusto nga sona, pananglitan ang public zone. Apan sa dili pa kana buhaton, susiha una kung ang pagtakuban aktibo ba o dili (ang \dili nagpasabut nga adunay kapansanan ug ang \oo nagpasabut nga dili).

$ sudo firewall-cmd --zone=public --query-masquerade
$ sudo firewall-cmd --zone=public --add-masquerade

Usa ka kasagaran nga kaso sa paggamit alang sa pagtakuban mao ang paghimo sa port forwarding. Kung gusto nimo nga mag-SSH gikan sa usa ka hilit nga makina ngadto sa usa ka host sa imong internal nga network nga adunay IP 10.20.1.3, diin ang sshd daemon naminaw sa port 5000.

Mahimo nimong ipasa ang tanan nga koneksyon sa port 22 sa imong server sa Linux ngadto sa gituyo nga pantalan sa imong target host pinaagi sa pag-isyu:

$ sudo firewall-cmd --zone=public --add-forward-port=port=22=proto=tcp:toport=5000:toaddr=10.20.1.3

Aron dili ma-disable ang pagtakuban sa usa ka sona, gamita ang --remove-masquerade switch.

$ sudo firewall-cmd --zone=public --remove-masquerade

Giunsa Pag-enable ug Pag-disable ang Mensahe sa IMCP sa Firewalld

Ang mga mensahe sa ICMP (Internet Control Message Protocol) mga hangyo sa impormasyon o mga tubag sa mga hangyo sa impormasyon o sa mga kondisyon sa sayop.

Mahimo nimong palihokon o i-disable ang mga mensahe sa ICMP sa firewall, apan sa wala pa kana ilista ang tanan nga gisuportahan nga mga tipo sa icmp.

$ sudo firewall-cmd --get-icmptypes

Aron idugang o tangtangon ang tipo sa block nga gusto nimo.

$ sudo firewall-cmd --zone=home --add-icmp-block=echo-reply
OR
$ sudo firewall-cmd --zone=home --remove-icmp-block=echo-reply

Mahimo nimong tan-awon ang tanang matang sa icmp nga gidugang sa usa ka sona gamit ang --list-icmp-blocks switch.

$ sudo firewall-cmd --zone=home --list-icmp-blocks

Giunsa Paggamit ang Direktang Interface sa Pagpasa sa mga Raw iptables nga mga Sugo

Naghatag usab ang firewall-cmd og direkta nga mga kapilian (--direkta) aron makakuha ka og dugang nga direktang pag-access sa firewall. Kini mapuslanon alang sa mga adunay sukaranan nga kahibalo sa mga iptables.

Importante: Kinahanglan nimo nga gamiton lamang ang direkta nga mga kapilian isip usa ka katapusan nga paagi kung dili posible nga gamiton ang regular nga mga opsyon sa firewall-cmd nga gipasabut sa ibabaw.

Ania ang usa ka pananglitan kung unsaon pagpasa sa hilaw nga iptables nga lagda, gamit ang --add-rules switch. Dali nimong matangtang kini nga mga lagda pinaagi sa pag-ilis sa --add-rule sa --remove-rule:

$ sudo firewall-cmd --direct --add-rule ipv4 filter IN_public_allow 0 -m tcp -p tcp --dport 80 -j ACCEPT

Alang sa dugang nga impormasyon bahin sa mga iptables, tan-awa kini nga giya: Unsaon Pag-setup sa Iptables Firewall aron Ma-enable ang Remote Access sa mga Serbisyo sa Linux.

Kung dili ka pamilyar sa syntax sa iptables, mahimo nimong pilion ang \dato nga lengguwahe sa firewalld alang sa paghimo og mas komplikado nga mga lagda sa firewall sa dali masabtan nga paagi sama sa sunod nga gipasabut.

Giunsa Paggamit ang Daghang Pinulongan sa Firewalld

Ang adunahan nga pinulongan (nailhan usab nga adunahan nga mga lagda) gigamit aron sa pagdugang sa mas komplikado nga mga lagda sa firewall alang sa IPv4 ug IPv6 nga walay kahibalo sa iptables syntax.

Gipalapad niini ang mga bahin sa sona (serbisyo, pantalan, icmp-block, masquerade ug forward-port) nga among gitabonan. Gisuportahan niini ang gigikanan ug destinasyon nga mga adres, pag-log, aksyon ug limitasyon para sa mga troso ug aksyon.

Ang --add-rich-rule gigamit aron sa pagdugang sa daghang mga lagda. Kini nga pananglitan nagpakita kung giunsa pagtugot ang bag-ong IPv4 ug IPv6 nga koneksyon alang sa serbisyo nga http ug log 1 kada minuto gamit ang audit:

$ sudo firewall-cmd --add-rich-rule='rule service name="http" audit limit value="1/m" accept'

Para tangtangon ang gidugang nga lagda, pulihan ang --add-rich-rule nga opsyon sa --remove-rich-rule.

$ sudo firewall-cmd --remove-rich-rule='rule service name="http" audit limit value="1/m" accept'

Gitugotan usab niini nga bahin ang pag-block o pagtugot sa trapiko gikan sa usa ka piho nga IP address. Ang mosunod nga pananglitan nagpakita kon unsaon pagsalikway sa mga koneksyon gikan sa IP 10.20.1.20.

$ sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.254" reject'

Giunsa Pag-enable ug Pag-disable ang Panic Mode sa Firewalld

Ang panic mode kay usa ka espesyal nga mode ubos sa firewalld diin ang tanang in-bound ug out-bound nga packet ihulog, ug ang mga aktibong koneksyon ma-expire sa higayon nga ma-activate na.
Mahimo nimong palihokon kini nga mode sa mga emerhensya nga sitwasyon diin ang usa ka hulga sa imong palibot sa network mogawas.

Para mangutana ug panic mode, gamita ang --query-panic nga opsyon.

$ sudo firewall-cmd --query-panic

Aron mahimo ang panic mode, gamita ang --panic-on nga kapilian. Mahimo nimong sulayan kung kini nagtrabaho gamit ang ping command sama sa gipakita. Tungod kay ang pakete nahulog, ang ngalan nga www.google.com dili masulbad, busa ang sayup gipakita.

$ sudo firewall-cmd --panic-on
$ ping -c 2 www.google.com

Aron ma-disable ang panic mode, gamita ang --panic-off nga opsyon.

$ sudo firewall-cmd --panic-off

Giunsa ang Lockdown Firewalld

Hinumdumi, among gihisgutan ubos sa mga sukaranan bahin sa firewalld nga ang mga lokal nga aplikasyon o serbisyo makahimo sa pag-usab sa configuration sa firewall kung sila nagdagan nga adunay mga pribilehiyo sa gamut. Mahimo nimong kontrolon kung unsang mga aplikasyon ang makahimo sa paghangyo sa mga pagbag-o sa firewall, pinaagi sa pagpiho dayon sa usa ka whitelist sa pag-lock.

Kini nga feature gipalong pinaagi sa default, mahimo nimo kining i-enable o i-disable gamit ang --lockdown-on o --lockdown switch nga madawaton.

$ sudo firewall-cmd --lockdown-on
OR
$ sudo firewall-cmd --lockdown-off

Timan-i nga kini girekomendar sa pag-enable o pag-disable niini nga feature pinaagi sa pag-edit sa main config file, tungod kay ang firewall-cmd mahimong wala sa lockdown whitelist kung imong gi-enable ang lockdown.

$ sudo vim /etc/firewalld/firewalld.conf

Pangitaa ang parameter Lockdown ug usba ang bili niini gikan sa no (means off) ngadto sa yes (means on).

Lockdown=yes

Aron mahimo kini nga setting nga permanente nga i-reload ang firewalld.

$ sudo firewall-cmd --reload

Ang Firewalld usa ka dali nga gamiton nga kapuli alang sa serbisyo sa iptables, nga naggamit sa mga iptables ingon usa ka backend. Sa kini nga artikulo, gipakita namon kung giunsa ang pag-install sa firewalld nga pakete, gipatin-aw ang hinungdanon nga mga bahin sa firewalld ug gihisgutan kung giunsa kini i-configure sa runtime ug permanente nga mga palibot sa pag-configure.

Kung naa kay mga pangutana o komento, ayaw pagduhaduha sa pagkontak kanamo pinaagi sa porma sa komento sa ubos. Mahimo nimong i-refer ang manwal nga panid sa firewalld (man firewalld) o ang dokumentasyon sa firewalld sa website sa proyekto, alang sa dugang nga impormasyon.