Android

Paano i-configure at pamahalaan ang firewall sa sentimo 8

#28 - Firewall on Linux CentOS 8

#28 - Firewall on Linux CentOS 8

Talaan ng mga Nilalaman:

Anonim

Ang isang firewall ay isang paraan para sa pagsubaybay at pag-filter ng papasok at papalabas na trapiko sa network. Gumagana ito sa pamamagitan ng pagtukoy ng isang hanay ng mga patakaran sa seguridad na matukoy kung papayagan o hahadlangan ang tukoy na trapiko. Ang isang maayos na na-configure na firewall ay isa sa pinakamahalagang aspeto ng pangkalahatang seguridad ng system.

Ang mga barko ng CentOS 8 na may isang daanan ng firewall na nagngangalang firewalld. Ito ay isang kumpletong solusyon na may interface ng D-Bus na nagbibigay-daan sa iyo upang pamahalaan ang firewall ng system nang dynamic.

Sa tutorial na ito, pag-uusapan natin kung paano i-configure at pamahalaan ang firewall sa CentOS 8. Ipapaliwanag din namin ang mga pangunahing konsepto ng FirewallD.

Mga kinakailangan

Upang mai-configure ang serbisyo ng firewall, dapat kang naka-log bilang ugat o gumagamit na may mga pribilehiyo ng sudo.

Mga Pangunahing Konsepto sa Firewalld

Ginagamit ng firewalld ang mga konsepto ng mga zone at serbisyo. Batay sa mga zone at serbisyo na iyong mai-configure, maaari mong kontrolin kung ano ang pinapayagan o na-block ang trapiko at mula sa system.

Ang Firewalld ay maaaring mai-configure at pinamamahalaang gamit ang utility na linya ng command- firewall-cmd .

Sa CentOS 8, ang mga iptable ay pinalitan ng nftables bilang default na backend ng firewall para sa firewalld daemon.

Mga Firewalld Zones

Ang mga zone ay paunang natukoy na mga hanay ng mga patakaran na tumutukoy sa antas ng tiwala ng mga network na konektado sa iyong computer. Maaari kang magtalaga ng mga interface ng network at mga mapagkukunan sa isang zone.

Nasa ibaba ang mga zone na ibinigay ng FirewallD na iniutos ayon sa antas ng tiwala ng zone mula sa hindi mapagkakatiwalaan hanggang sa pinagkakatiwalaan:

  • drop: Ang lahat ng mga papasok na koneksyon ay bumaba nang walang anumang abiso. Ang mga papalabas na koneksyon lamang ang pinapayagan. block: Ang lahat ng mga papasok na koneksyon ay tinatanggihan ng isang icmp-host-prohibited mensahe para sa IPv4 at icmp6-adm-prohibited para sa IPv6n. Ang mga papalabas na koneksyon lamang ang pinapayagan. pampubliko: Para magamit sa hindi mapagkakatiwalaang mga pampublikong lugar. Hindi ka nagtitiwala sa ibang mga computer sa network, ngunit maaari mong payagan ang mga napiling papasok na koneksyon. panlabas: Para sa paggamit sa mga panlabas na network na may NAT masquerading pinagana kapag ang iyong system ay kumikilos bilang isang gateway o router. Pinapayagan lamang ang mga napiling papasok na koneksyon. panloob: Para magamit sa mga panloob na network kapag ang iyong system ay kumikilos bilang isang gateway o router. Ang iba pang mga system sa network ay karaniwang pinagkakatiwalaan. Pinapayagan lamang ang mga napiling papasok na koneksyon. dmz: Ginamit para sa mga computer na matatagpuan sa iyong demilitarized zone na may limitadong pag-access sa natitirang bahagi ng iyong network. Pinapayagan lamang ang mga napiling papasok na koneksyon. trabaho: Ginamit para sa mga makina sa trabaho. Ang iba pang mga computer sa network ay karaniwang pinagkakatiwalaan. Pinapayagan lamang ang mga napiling papasok na koneksyon. tahanan: Ginamit para sa mga makina sa bahay. Ang iba pang mga computer sa network ay karaniwang pinagkakatiwalaan. Pinapayagan lamang ang mga napiling papasok na koneksyon. pinagkakatiwalaang: Lahat ng mga koneksyon sa network ay tinatanggap. Tiwala sa lahat ng mga computer sa network.

Mga serbisyo ng Firewall

Ang mga serbisyo ng Firewalld ay mga paunang natukoy na mga patakaran na nalalapat sa loob ng isang zone at tukuyin ang mga kinakailangang setting upang payagan ang papasok na trapiko para sa isang tiyak na serbisyo. Pinapayagan ka ng mga serbisyo na madaling gawin ang maraming mga gawain sa isang solong hakbang.

Halimbawa, ang serbisyo ay maaaring maglaman ng mga kahulugan tungkol sa pagbubukas ng mga port, pagpapasa ng trapiko, at iba pa.

Mga Setting ng Firewalld Runtime at Permanenteng

Ang Firewalld ay gumagamit ng dalawang hiwalay na mga hanay ng pagsasaayos, runtime, at permanenteng pagsasaayos.

Ang pagsasaayos ng runtime ay ang aktwal na pagsasaayos ng pagpapatakbo at hindi nagpapatuloy sa pag-reboot. Kapag nagsimula ang firewalld daemon, naglo-load ito ng permanenteng pagsasaayos, na kung saan ay nagiging isang pagsasaayos ng runtime.

Bilang default, kapag gumagawa ng mga pagbabago sa pagsasaayos ng Firewalld gamit ang utility na firewall-cmd , ang mga pagbabago ay inilalapat sa pagsasaayos ng runtime. Upang gawin ang mga pagbabago na permanenteng idagdag ang - --permanent pagpipilian sa utos.

Upang mailapat ang mga pagbabago sa parehong mga hanay ng pagsasaayos, maaari mong gamitin ang isa sa mga sumusunod na dalawang pamamaraan:

  1. Baguhin ang pagsasaayos ng runtime at gawin itong permanenteng:

    sudo firewall-cmd sudo firewall-cmd --runtime-to-permanent

    Baguhin ang permanenteng pagsasaayos at i-reload ang daemon ng firewall:

    sudo firewall-cmd --permanent sudo firewall-cmd --reload

Paganahin ang FirewallD

Sa CentOS 8, ang firewalld ay naka-install at pinagana nang default. Kung sa ilang kadahilanan hindi ito mai-install sa iyong system, maaari mong mai-install at simulan ang daemon sa pamamagitan ng pag-type:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Maaari mong suriin ang katayuan ng serbisyo ng firewall na may:

sudo firewall-cmd --state

Kung pinagana ang firewall, dapat mag-print ang running . Kung hindi, makikita mong not running .

Mga Firewalld Zones

Ang default na zone ay ang isa na ginagamit para sa lahat ng hindi malinaw na naatasan sa ibang zone.

Maaari mong makita ang default na zone sa pamamagitan ng pag-type:

sudo firewall-cmd --get-default-zone

public

Upang makakuha ng isang listahan ng lahat ng magagamit na mga zone, uri:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Upang makita ang mga aktibong zone at mga interface ng network na itinalaga sa kanila:

sudo firewall-cmd --get-active-zones

Ang output sa ibaba ay nagpapakita na ang mga interface ng eth0 at eth1 ay itinalaga sa public sona:

public interfaces: eth0 eth1

Maaari mong i-print ang mga setting ng pagsasaayos ng zone sa:

sudo firewall-cmd --zone=public --list-all

public (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:

Mula sa output sa itaas, makikita natin na ang pampublikong sona ay aktibo at gumagamit ng default na target, na REJECT . Ipinapakita rin ng output na ang zone ay ginagamit ng mga interface ng eth0 at eth1 at pinapayagan ang DHCP client at SSH traffic.

sudo firewall-cmd --list-all-zones

Ang utos ay nag-print ng isang malaking listahan kasama ang mga setting ng lahat ng magagamit na zone.

Ang pagpapalit ng target ng zone

Tinukoy ng target ang default na pag-uugali ng zone para sa papasok na trapiko na hindi tinukoy. Maaari itong itakda sa isa sa mga sumusunod na pagpipilian: default , ACCEPT , REJECT , at DROP .

Upang itakda ang target ng zone, tukuyin ang zone na may - --zone pagpipilian at ang target na may pagpipilian na --set-target .

Halimbawa, upang baguhin ang target ng public zone sa DROP tatakbo ka:

sudo firewall-cmd --zone=public --set-target=DROP

Ang pagtatalaga ng isang interface sa ibang zone

Maaari kang lumikha ng mga tiyak na hanay ng mga patakaran para sa iba't ibang mga zone at magtalaga ng iba't ibang mga interface sa kanila. Ito ay kapaki-pakinabang lalo na kapag maraming mga interface sa iyong makina.

Upang magtalaga ng isang interface sa ibang zone, tukuyin ang zone na may pagpipilian na - zone at ang interface na may pagpipilian na --change-interface .

Halimbawa, ang sumusunod na utos ay nagtalaga ng interface ng eth1 sa work zone:

sudo firewall-cmd --zone=work --change-interface=eth1

Patunayan ang mga pagbabago sa pamamagitan ng pag-type:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Pagbabago ng Default Zone

Upang mabago ang default na zone, gamitin ang --set-default-zone sinusundan ng pangalan ng zone na nais mong gawing default.

Halimbawa, upang baguhin ang default na zone sa home tatakbo mo ang sumusunod na utos:

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

Patunayan ang mga pagbabago sa:

sudo firewall-cmd --get-default-zone

home

Paglikha ng mga bagong Zones

Pinapayagan ka din ng Firewalld na lumikha ng iyong sariling mga zone. Ito ay madaling gamitin kapag nais mong lumikha ng mga patakaran ng per-application.

Sa sumusunod na halimbawa gagawa kami ng isang bagong zone na nagngangalang memcached , buksan ang port 11211 at payagan lamang ang pag-access mula sa 192.168.100.30 IP address:

  1. Lumikha ng zone:

    sudo firewall-cmd --new-zone=memcached --permanent

    Idagdag ang mga patakaran sa zone:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent

    Reload ang daemon ng firewalld upang maisaaktibo ang mga pagbabago:

    sudo firewall-cmd --reload

Mga Serbisyo sa Firewalld

Sa pamamagitan ng firewall maaari mong pahintulutan ang trapiko para sa mga tiyak na port at / o mga mapagkukunan batay sa mga paunang natukoy na mga patakaran na tinatawag na mga serbisyo.

Upang makakuha ng isang listahan ng lahat ng mga default na magagamit na uri ng serbisyo:

sudo firewall-cmd --get-services

Maaari kang makahanap ng karagdagang impormasyon tungkol sa bawat serbisyo sa pamamagitan ng pagbubukas ng nauugnay na.xml file sa loob ng /usr/lib/firewalld/services direktoryo ng mga /usr/lib/firewalld/services . Halimbawa, ang serbisyo ng HTTP ay tinukoy tulad nito:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Upang payagan ang papasok na trapiko ng HTTP (port 80) para sa mga interface sa pampublikong sona, para lamang sa kasalukuyang session (runtime configuration):

sudo firewall-cmd --zone=public --add-service=http Kung binabago mo ang default na zone maaari mong iwanan ang pagpipilian na --zone .

Upang mapatunayan na ang serbisyo ay matagumpay na naidagdag na gumamit ng pagpipilian ng --list-services :

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

Upang panatilihing bukas ang port 80 pagkatapos ng isang pag-reboot patakbuhin ang parehong utos sa sandaling muli kasama ang --permanent pagpipilian, o isagawa ang:

sudo firewall-cmd --runtime-to-permanent

Gamitin ang mga --list-services --permanent --list-services kasama ang - --permanent pagpipilian upang mapatunayan ang iyong mga pagbabago:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

Ang syntax para sa pag-alis ng serbisyo ay pareho sa pagdaragdag ng isa. Gumamit lamang ng --remove-service halip ng bandila ng --add-service -

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

Ang utos sa itaas ay nag-aalis ng serbisyo sa http mula sa pampublikong zone permanenteng pagsasaayos.

Paglikha ng isang bagong Serbisyo ng FirewallD

Tulad ng nabanggit na natin, ang mga default na serbisyo ay naka-imbak sa direktoryo /usr/lib/firewalld/services . Ang pinakamadaling paraan upang lumikha ng isang bagong serbisyo ay ang kopyahin ang isang umiiral na file ng serbisyo sa /etc/firewalld/services direktoryo ng /etc/firewalld/services , na kung saan ay ang lokasyon para sa mga serbisyo na nilikha ng gumagamit at baguhin ang mga setting ng file.

Halimbawa, upang lumikha ng isang kahulugan ng serbisyo para sa Plex Media Server, maaari mong gamitin ang file ng SSH service:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Buksan ang bagong nilikha na file ng plexmediaserver.xml at baguhin ang maikling pangalan at paglalarawan para sa serbisyo sa loob ng at mga tag. Ang pinakamahalagang tag na kailangan mong baguhin ay ang port tag, na tumutukoy sa numero ng port at protocol na nais mong buksan.

Sa sumusunod na halimbawa, binubuksan namin ang mga port 1900 UDP at 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

I-save ang file at i-reload ang serbisyo ng FirewallD:

sudo firewall-cmd --reload

Maaari mo na ngayong gamitin ang serbisyo ng plexmediaserver sa iyong mga zone na katulad ng anumang iba pang serbisyo.

Pagbubukas ng Mga Ports at Pinagmulang mga IP

Pinapayagan ka din ng Firewalld na mabilis mong paganahin ang lahat ng trapiko mula sa isang pinagkakatiwalaang IP address o sa isang tiyak na port nang hindi lumilikha ng isang kahulugan ng serbisyo.

Pagbubukas ng isang mapagkukunan IP

Upang pahintulutan ang lahat ng papasok na trapiko mula sa isang tukoy na IP address (o saklaw), tukuyin ang zone na may - --zone pagpipilian at ang mapagkukunan ng IP na may opsyon na --add-source .

Halimbawa, upang payagan ang lahat ng mga papasok na trapiko mula 192.168.1.10 sa public sona, patakbuhin:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

Gawing patuloy ang bagong patakaran:

sudo firewall-cmd --runtime-to-permanent

Patunayan ang mga pagbabago gamit ang sumusunod na utos:

sudo firewall-cmd --zone=public --list-sources

192.168.1.10

Ang syntax para sa pag-alis ng isang mapagkukunang IP ay pareho tulad ng kapag nagdaragdag ng isa. Gumamit lamang --remove-source --add-source halip ng --add-source :

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

Pagbubukas ng isang source port

Upang payagan ang lahat ng mga papasok na trapiko sa isang naibigay na port, tukuyin ang zone na may - --zone pagpipilian at ang port at ang protocol na may pagpipilian na --add-port .

Halimbawa, upang buksan ang port 8080 sa pampublikong sona para sa kasalukuyang session na nasugatan mo:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Ang protocol ay maaaring alinman sa tcp , udp , sctp , o dccp .

Patunayan ang mga pagbabago:

sudo firewall-cmd --zone=public --list-ports

8080

Upang panatilihing bukas ang port pagkatapos ng pag-reboot, idagdag ang panuntunan sa permanenteng mga setting sa pamamagitan ng pagpapatakbo ng parehong utos gamit ang --permanent flag o sa pamamagitan ng pagpapatupad:

sudo firewall-cmd --runtime-to-permanent

Ang syntax para sa pag-alis ng isang port ay pareho tulad ng kapag nagdaragdag ng isang port. Gumamit lamang ng --remove-port halip ng pagpipilian na --add-port .

sudo firewall-cmd --zone=public --remove-port=8080/tcp

Pagpasa ng mga Ports

Upang maipasa ang trapiko mula sa isang daungan patungo sa isa pang daungan, paganahin muna ang --add-masquerade para sa nais na zone gamit ang --add-masquerade opsyon. Halimbawa, upang paganahin ang pagmamason para sa external zone, uri:

sudo firewall-cmd --zone=external --add-masquerade

Ipasa ang trapiko mula sa isang port patungo sa isa pa sa IP address

Sa sumusunod na halimbawa ay isinasulong namin ang trapiko mula sa port 80 hanggang port 8080 sa parehong server:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

Ipasa ang trapiko sa ibang IP address

Sa sumusunod na halimbawa ay isinasulong namin ang trapiko mula sa port 80 hanggang port 80 sa isang server na may IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

Ipasa ang trapiko sa ibang server sa ibang port

Sa sumusunod na halimbawa ay isinasulong namin ang trapiko mula sa port 80 hanggang port 8080 sa isang server na may IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Upang magpatuloy ang pasulong na panuntunan, gamitin ang:

sudo firewall-cmd --runtime-to-permanent

Konklusyon

Nalaman mo kung paano i-configure at pamahalaan ang serbisyo ng firewalld sa iyong CentOS 8 system.

Siguraduhing pahintulutan ang lahat ng mga papasok na koneksyon na kinakailangan para sa tamang paggana ng iyong system, habang nililimitahan ang lahat ng hindi kinakailangang koneksyon.

seguridad ng firewalld na seguridad