Bii o ṣe le Fi sii, Tunto ati Lo Firewalld ni CentOS ati Ubuntu


Firewalld (ogiri ogiriina daemon) jẹ iyatọ si iṣẹ iptables, fun iṣiṣakoso iṣakoso ogiriina eto pẹlu atilẹyin fun awọn agbegbe nẹtiwọọki (tabi ogiriina) ati pese wiwo D-Bus fun iṣakoso awọn atunto. O rọrun lati lo ati tunto, ati pe o jẹ bayi ọpa iṣakoso ogiriina aiyipada lori RHEL/CentOS, Fedora ati ọpọlọpọ awọn pinpin kaakiri Linux miiran.

Ninu àpilẹkọ yii, a yoo jiroro bawo ni a ṣe le tunto ogiri ogiri pẹlu firewalld ati ṣe imulẹ sisẹ ipilẹ ni CentOS/RHEL 7 ati Ubuntu.

Awọn ipilẹ Nipa Firewalld

Firewalld ni awọn ipele mẹta, eyiti o jẹ:

  • ipilẹ fẹlẹfẹlẹ: lodidi fun mimu iṣeto ati awọn opin ẹhin (ti a ṣe akojọ rẹ ni isalẹ).
  • D-Bus ni wiwo: awọn ọna akọkọ ti iyipada ati ṣiṣẹda iṣeto ogiriina.
  • awọn ẹhin: fun ibaraenisepo pẹlu netfilter (modulu ekuro abinibi ti a lo fun ogiriina). Wọn pẹlu iptables, ip6table, ebtables, ipset, nft, linnftables; oluṣakoso nẹtiwọki; ati awọn modulu.

O n ṣakoso awọn ofin ogiriina nipasẹ imuse awọn agbegbe nẹtiwọọki/ogiriina ti o ṣalaye ipele igbẹkẹle ti awọn isopọ nẹtiwọọki tabi awọn atọkun. Awọn ẹya ogiriina ti o ni atilẹyin miiran pẹlu awọn iṣẹ, iṣeto ni taara (ti a lo lati taara taara sintasi iptables aise), IPSets bii awọn iru ICMP.

Awọn iru awọn agbegbe iṣeto ni atilẹyin nipasẹ firewalld:

    Iṣeto asiko asiko ti o munadoko nikan titi ti ẹrọ ba ti ni atunbere tabi ti tun bẹrẹ iṣẹ ina naa
  • iṣeto ni titilai eyiti o wa ni fipamọ ti o ṣiṣẹ laipẹ.

Ohun elo laini aṣẹ-ogiri ogiri-cmd ni a lo lati ṣakoso akoko asiko ṣiṣe ati iṣeto ni titilai. Ni omiiran, o le lo ọpa iṣeto ni olumulo ogiri-atunto ayaworan (GUI) lati ṣe ajọṣepọ pẹlu daemon.

Ni afikun, firewalld n funni ni wiwo asọye daradara fun awọn iṣẹ agbegbe miiran tabi awọn ohun elo lati beere awọn ayipada si awọn ofin ogiriina taara, ti wọn ba n ṣiṣẹ pẹlu awọn anfani root.

Faili iṣeto agbaye fun firewalld wa ni /etc/firewalld/firewalld.conf ati awọn ẹya ogiriina ti wa ni tunto ni ọna kika XML.

Loye Awọn ẹya Firewalld Pataki

Ẹya ti aarin ti firewalld jẹ awọn agbegbe nẹtiwọọki/ogiriina. Gbogbo ẹya miiran ti ni adehun si agbegbe kan. Agbegbe ogiriina ṣapejuwe ipele igbẹkẹle fun asopọ kan, wiwo tabi isopọ adirẹsi orisun.

Iṣeto ni aiyipada wa pẹlu nọmba awọn agbegbe ti a ti pinnu tẹlẹ ti a to lẹsẹsẹ gẹgẹbi ipele igbẹkẹle aiyipada ti awọn agbegbe lati igbẹkẹle si igbẹkẹle: silẹ, Àkọsílẹ, gbangba, ita, dmz, iṣẹ, ile, ti inu ati igbẹkẹle. Wọn ti ṣalaye ninu awọn faili ti o fipamọ labẹ itọsọna/usr/lib/firewalld/awọn agbegbe ita.

O le tunto tabi ṣafikun awọn agbegbe aṣa rẹ ni lilo alabara CLI tabi ṣẹda ṣẹda tabi daakọ faili faili agbegbe kan ni/ati be be/firewalld/awọn agbegbe lati awọn faili to wa ki o ṣatunkọ rẹ.

Idaniloju pataki miiran labẹ firewalld ni awọn iṣẹ. Iṣẹ kan jẹ asọye nipa lilo awọn ibudo ati awọn ilana; awọn itumọ wọnyi ṣe aṣoju iṣẹ nẹtiwọọki ti a fun gẹgẹbi olupin wẹẹbu tabi iṣẹ wiwọle latọna jijin. Awọn iṣẹ ni a ṣalaye ninu awọn faili ti o fipamọ labẹ/usr/lib/firewalld/awọn iṣẹ/tabi/ati be be lo/firewalld/awọn iṣẹ/itọsọna.

Ti o ba mọ awọn ipilẹ iptables/ip6table/ebtables awọn imọran, o tun le lo atọkun taara (tabi iṣeto ni) lati ni iraye si taara si ogiriina. Ṣugbọn, fun awọn wọnni laisi imọ iptables eyikeyi, o le lo ede ọlọrọ fun ṣiṣẹda awọn ofin ogiri ti o nira sii fun IPv4 ati IPv6.

Bii o ṣe le Fi Package Firewalld sori ẹrọ ni Lainos

Lori CentOS 7, package firewalld wa ni fifi sori ẹrọ tẹlẹ ati pe o le ṣayẹwo nipa lilo pipaṣẹ atẹle.

$ rpm -qa firewalld

Lori Ubuntu 16.04 ati 18.04, o le fi sii nipa lilo oluṣakoso package aiyipada bi o ti han.

$ sudo apt install firewalld

Bii o ṣe le Ṣakoso Iṣẹ Firewalld ni Linux

Firewalld jẹ iṣẹ eto eto deede ti o le ṣakoso nipasẹ aṣẹ 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

Lẹhin ti o bẹrẹ iṣẹ iṣẹ ina, o tun le ṣayẹwo boya daemon n ṣiṣẹ tabi rara, ni lilo ọpa ogiri-cmd (ti o ba jẹ pe ko ṣiṣẹ, aṣẹ yii yoo gbejade\"ko nṣiṣẹ").

$ sudo firewall-cmd --state

Ti o ba ṣẹlẹ lati fipamọ eyikeyi awọn ayipada patapata, o le tun gbe firewalld pada. Eyi yoo tun ṣe atunṣe awọn ofin ogiriina ati tọju alaye ti ipinle. Iṣeto titilai lọwọlọwọ yoo di iṣeto asiko asiko tuntun.

$ sudo firewall-cmd --reload

Bii o ṣe le Ṣiṣẹ pẹlu Awọn agbegbe Ogiriina ni Firewalld

Lati gba atokọ ti gbogbo awọn agbegbe ita gbangba ati iṣẹ, ṣiṣe awọn ofin wọnyi.

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

Agbegbe aiyipada ni agbegbe ti o ti lo fun gbogbo ẹya ogiriina ti ko ni didi taara si agbegbe miiran. O le gba agbegbe aiyipada ti a ṣeto fun awọn isopọ nẹtiwọọki ati awọn atọkun nipasẹ ṣiṣiṣẹ.

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

Lati ṣeto agbegbe aiyipada, fun apẹẹrẹ si ita, lo aṣẹ atẹle. Akiyesi pe fifi aṣayan --anṣe ṣeto iṣeto ni titilai (tabi jẹ ki wiwa alaye lati agbegbe iṣeto iṣeto titilai).

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

Nigbamii, jẹ ki a wo bi a ṣe le ṣafikun wiwo si agbegbe kan. Apẹẹrẹ yii fihan bi o ṣe le ṣafikun ohun ti nmu badọgba nẹtiwọọki alailowaya rẹ (wlp1s0) si ile agbegbe aago, eyiti o lo ni awọn agbegbe ile.

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

Ni wiwo le ṣee fi kun nikan agbegbe kan. Lati gbe lọ si agbegbe miiran, lo iyipada --change-interface bi o ti han, tabi yọ kuro ni agbegbe ti tẹlẹ nipa lilo iyipada-ni wiwo-kuro, lẹhinna ṣafikun rẹ si agbegbe tuntun.

A ro pe o fẹ sopọ si nẹtiwọọki WI-FI ti gbogbo eniyan, o yẹ ki o gbe wiwo alailowaya rẹ pada si agbegbe ita, bii eleyi:

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

O le lo ọpọlọpọ awọn agbegbe ita ni akoko kanna. Lati gba atokọ ti gbogbo awọn agbegbe ti nṣiṣe lọwọ pẹlu awọn ẹya ti a muu ṣiṣẹ gẹgẹbi awọn wiwo, awọn iṣẹ, awọn ibudo, awọn ilana, ṣiṣe:

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

Ni ibatan si aaye ti tẹlẹ, Ti o ba fẹ wa alaye diẹ sii nipa agbegbe kan pato, ie ohun gbogbo ti a ṣafikun tabi muu ṣiṣẹ ninu rẹ, lo ọkan ninu awọn ofin wọnyi:

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

Aṣayan miiran ti o wulo ni --get-target , eyiti o fihan ọ ni ibi-afẹde agbegbe ita kan. Afojusun kan jẹ ọkan ninu: aiyipada, Gba, DOP, KỌ. O le ṣayẹwo ibi-afẹde ti awọn agbegbe pupọ:

$ 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

Bii o ṣe ṣii ati Dina Awọn Ibudo ni Firewalld

Lati ṣii ibudo kan (tabi isopọpọ ibudo/ilana) ni ogiriina, ṣe afikun ni agbegbe kan pẹlu aṣayan --add-port . Ti o ko ba pato agbegbe naa ni gbangba, yoo muu ṣiṣẹ ni agbegbe aiyipada.

Apẹẹrẹ atẹle n fihan bii a ṣe le ṣafikun ibudo 80 ati 443 lati gba laaye ijabọ oju opo wẹẹbu ti o ni asopọ nipasẹ ilana HTTP ati HTTPS, lẹsẹsẹ:

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

Nigbamii ti, tun gbe ogiri ina pada ki o ṣayẹwo awọn ẹya ti o ṣiṣẹ ni agbegbe ita lẹẹkan si, o yẹ ki o ni anfani wo awọn ibudo ti a ṣafikun.

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

Idena tabi tiipa ibudo kan ninu ogiriina jẹ irọrun bakanna, ni irọrun yọ kuro lati agbegbe kan pẹlu aṣayan -remove-port . Fun apẹẹrẹ, lati pa awọn ibudo 80 ati 443 ni agbegbe agbegbe.

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

Dipo lilo ibudo tabi ibudo/isopọpọ ilana, o le lo orukọ iṣẹ eyiti a fi ibudo kan si gẹgẹ bi a ti ṣalaye ninu abala ti n bọ.

Bii o ṣe ṣii ati Dina Awọn iṣẹ ni Firewalld

Lati ṣii iṣẹ kan ninu ogiriina, muu ṣiṣẹ nipa lilo aṣayan --add-service . Ti o ba ti fi agbegbe silẹ, agbegbe aiyipada yoo ṣee lo.

Aṣẹ wọnyi yoo mu ki iṣẹ http ṣiṣẹ ni agbegbe ita gbangba.

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

Aṣayan -remove-iṣẹ le ṣee lo lati mu iṣẹ kan ṣiṣẹ.

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

Bii o ṣe le Jeki ati Mu Muuṣiṣẹ IP ṣiṣẹ Lilo Firewalld

IP Masquerading (ti a tun mọ ni IPMASQ tabi MASQ) jẹ ilana NAT (Itumọ Adirẹsi Nẹtiwọọki) ni nẹtiwọọki Linux eyiti ngbanilaaye awọn ọmọ-ogun rẹ ni nẹtiwọọki kan, pẹlu awọn adirẹsi IP ikọkọ lati ṣe ibaraẹnisọrọ pẹlu Intanẹẹti nipa lilo olupin Linux rẹ (ẹnu-ọna IPMASQ) IP ti gbogbo eniyan ti yan. adirẹsi.

O jẹ aworan agbaye si ọkan. Ijabọ lati ọdọ awọn ogun alaihan rẹ yoo han si awọn kọmputa miiran lori intanẹẹti bi ẹni pe o n bọ lati olupin Linux rẹ.

O le mu iparada IP ṣiṣẹ ni agbegbe ti o fẹ, fun apẹẹrẹ agbegbe ita gbangba. Ṣugbọn ṣaaju ṣiṣe iyẹn, kọkọ ṣayẹwo ti o ba jẹ pe masquerading n ṣiṣẹ tabi rara (a "" rara "tumọ si alaabo rẹ ati pe" bẹẹni "tumọ si bibẹkọ).

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

Ọran lilo aṣoju fun sisọ ni ṣiṣe iṣẹ gbigbe si ibudo. A ro pe o fẹ lati SSH lati ẹrọ latọna jijin si ogun ni nẹtiwọọki inu rẹ pẹlu IP 10.20.1.3, lori eyiti sshd daemon n tẹtisi lori ibudo 5000.

O le dari gbogbo awọn isopọ si ibudo 22 lori olupin Linux rẹ si ibudo ti a pinnu lori agbalejo afojusun rẹ nipa ipinfunni:

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

Lati mu masquerading ṣiṣẹ ni agbegbe kan, lo iyipada --remove-masquerade .

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

Bii o ṣe le Jeki ati Mu Ifiranṣẹ IMCP ṣiṣẹ ni Firewalld

Awọn ifiranṣẹ ICMP (Ilana Ifiranṣẹ Iṣakoso Intanẹẹti) jẹ boya awọn ibeere alaye tabi awọn idahun si awọn ibeere alaye tabi ni awọn ipo aṣiṣe.

O le mu ṣiṣẹ tabi mu awọn ifiranṣẹ ICMP ṣiṣẹ ni ogiriina, ṣugbọn ṣaaju akojọ akọkọ gbogbo awọn oriṣi icmp ti o ni atilẹyin.

$ sudo firewall-cmd --get-icmptypes

Lati fikun-un tabi yọ iru iru bulọọki ti o fẹ.

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

O le wo gbogbo awọn iru icmp ti a ṣafikun ni agbegbe kan nipa lilo iyipada --list-icmp-blocks .

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

Bii o ṣe le Lo Ọlọpọọmídíà taara lati Ṣe Awọn aṣẹ iptables Aise

Ogiriina-cmd tun pese awọn aṣayan taara ( --direct ) fun ọ lati ni iraye si taara si ogiriina. Eyi wulo fun awọn ti o ni imọ ipilẹ ti awọn iptables.

Pataki: O yẹ ki o nikan lo awọn aṣayan taara bi ibi-isinmi ti o kẹhin nigbati ko ba ṣee ṣe lati lo awọn aṣayan ogiriina-cmd deede ti a salaye loke.

Eyi ni apẹẹrẹ ti bi o ṣe le kọja ofin iptables aise, ni lilo iyipada -add-ofin . O le ni rọọrun yọ awọn ofin wọnyi kuro nipa rirọpo --add-rule pẹlu - yiyọ-ofin :

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

Fun alaye diẹ sii nipa awọn iptables, wo itọsọna yii: Bawo ni Lati Ṣeto Firewall Iptables lati Jeki Wiwọle Latọna jijin si Awọn iṣẹ ni Lainos.

Ti o ko ba mọ pẹlu sintasi iptables, o le jade fun firewalld's\"ọrọ ọlọrọ" fun ṣiṣẹda awọn ofin ogiriina ti o nira sii ni irọrun lati ni oye ọna bi a ti salaye atẹle.

Bii O ṣe le Lo Ede Ọlọrọ ni Firewalld

Ede ọlọrọ (ti a tun mọ ni awọn ofin ọlọrọ) ni a lo lati ṣafikun awọn ofin ogiriina ti o nira sii fun IPv4 ati IPv6 laisi imọ ti sintasi iptables.

O ṣe afikun awọn ẹya agbegbe (iṣẹ, ibudo, icmp-block, masquerade ati ibudo siwaju) ti a ti bo. O ṣe atilẹyin orisun ati awọn adirẹsi ibi-ajo, gedu, awọn iṣe ati awọn idiwọn fun awọn akọọlẹ ati awọn iṣe.

A lo --addadd-rich-ofin lati ṣafikun awọn ofin ọlọrọ. Apẹẹrẹ yii fihan bi a ṣe le gba awọn isopọ IPv4 ati IPv6 tuntun fun iṣẹ http ati wọle 1 fun iṣẹju kan ni lilo iṣayẹwo:

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

Lati yọ ofin ti a fi kun, rọpo aṣayan --addadd-rich- pẹlu - yọkuro-ọlọrọ-ofin .

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

Ẹya yii tun ngbanilaaye fun didena tabi gbigba ijabọ lati adirẹsi IP kan pato. Apẹẹrẹ atẹle n fihan bi a ṣe le kọ awọn isopọ lati IP 10.20.1.20.

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

Bii o ṣe le Jeki ati Muu Ipo Ibanujẹ ni Firewalld

Ipo Ibanujẹ jẹ ipo pataki labẹ ina-ina nibiti gbogbo awọn apo-in-in ati ti ita ti lọ silẹ, ati awọn asopọ ti nṣiṣe lọwọ yoo pari lẹẹkan ti muu ṣiṣẹ.
O le mu ipo yii ṣiṣẹ ni awọn ipo pajawiri nibiti irokeke si agbegbe nẹtiwọọki rẹ ti jade.

Lati beere ipo ijaya, lo aṣayan --query-panic aṣayan.

$ sudo firewall-cmd --query-panic

Lati mu ipo ijaya ṣiṣẹ, lo aṣayan --panic-on . O le ṣe idanwo ti o ba n ṣiṣẹ nipa lilo pipaṣẹ ping bi o ti han. Nitori pe o ti gbe apo-iwe silẹ, orukọ www.google.com ko le yanju, nitorinaa aṣiṣe ti o han.

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

Lati mu ipo ijaya ṣiṣẹ, lo aṣayan --panic-off .

$ sudo firewall-cmd --panic-off

Bii o ṣe le tiipa Firewalld

Ranti, a mẹnuba labẹ awọn ipilẹ nipa firewalld pe awọn ohun elo agbegbe tabi awọn iṣẹ ni anfani lati paarọ iṣeto ogiriina ti wọn ba n ṣiṣẹ pẹlu awọn anfani root. O le ṣakoso iru awọn ohun elo wo ni anfani lati beere awọn ayipada ogiriina, nipa ṣiṣe alaye lẹhinna ninu titiipa titiipa.

Ẹya yii ti wa ni pipa nipasẹ aiyipada, o le mu ṣiṣẹ tabi mu ṣiṣẹ pẹlu - tiipa-on tabi - tiipa yipada ni gbigba.

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

Akiyesi pe a ṣe iṣeduro lati mu ẹya ara ẹrọ yii ṣiṣẹ tabi mu ṣiṣẹ nipasẹ ṣiṣatunkọ faili atunto akọkọ, nitori ogiriina-cmd le ma wa lori titiipa titiipa whitelist nigbati o ba mu titiipa ṣiṣẹ.

$ sudo vim /etc/firewalld/firewalld.conf

Wa Titiipa paramita naa ki o yi iye rẹ pada lati rara (tumọ si pipa) si bẹẹni (tumọ si titan).

Lockdown=yes

Lati ṣe eto yii tun gbee si firewalld nigbagbogbo.

$ sudo firewall-cmd --reload

Firewalld jẹ rọrun lati lo rirọpo fun iṣẹ iptables, eyiti o lo awọn iptables bi ẹhin. Ninu àpilẹkọ yii, a ti fihan bi a ṣe le fi sori ẹrọ package firewalld, ṣalaye awọn ẹya pataki ti firewalld ati ijiroro bi o ṣe le tunto wọn ni asiko asiko ati awọn agbegbe iṣeto ni titilai.

Ti o ba ni ibeere tabi awọn asọye eyikeyi, ni ọfẹ lati de ọdọ wa nipasẹ fọọmu asọye ni isalẹ. O le tọka si oju-iwe Afowoyi ti firewalld (ọkunrin firewalld) tabi iwe aṣẹ ina ni oju opo wẹẹbu iṣẹ akanṣe, fun alaye diẹ sii.