Kā konfigurēt FirewallD RHEL, CentOS un Fedora


Net-filter , jo mēs visi zinām, ka tas ir ugunsmūris Linux. Firewalld ir dinamisks dēmons, lai pārvaldītu ugunsmūrus, atbalstot tīkla zonas. Iepriekšējā versijā RHEL & CentOS 6 mēs izmantojām iptables kā paketes filtrēšanas ietvara dēmonu. Programmā RHEL / CentOS 7/8 saskarne Fedora un openSUSE - rong> iptables tiek aizstāta ar firewalld.

Iptables vietā ieteicams sākt lietot Firewalld , jo tas nākotnē var tikt pārtraukts. Tomēr iptables joprojām tiek atbalstīti, un tos var instalēt ar komandu yum. Mēs nevaram saglabāt gan Firewalld , gan iptables vienā un tajā pašā sistēmā, kas var izraisīt konfliktus.

Programmā iptables mēs konfigurējām kā INPUT, OUTPUT & FORWARD CHAINS bet šeit Firewalld koncepcijā tiek izmantotas zonas. Pēc noklusējuma ugunsmūrī ir pieejamas dažādas zonas, kuras tiks aplūkotas šajā rakstā.

Pamata zona, kas ir kā publiskā zona un privātā zona. Lai lietas darbotos šajās zonās, mums jāpievieno saskarne ar norādīto zonu atbalstu, un tad mēs varam pievienot pakalpojumus firewalld.

Pēc noklusējuma ir pieejami daudzi pakalpojumi, viena no labākajām ugunsmūra īpašībām ir tā, ka tas nāk ar iepriekš definētiem pakalpojumiem, un mēs varam izmantot šos pakalpojumus kā piemēru, lai pievienotu savus pakalpojumus, tos vienkārši nokopējot.

Firewalld lieliski darbojas arī ar IPv4, IPv6 un Ethernet tiltiem. Mums var būt atsevišķa izpildlaika un pastāvīga konfigurācija ugunsmūrī.

Sāksim, kā strādāt ar zonām un izveidot savus pakalpojumus, kā arī daudz aizraujošāk izmantot ugunsmūri.

Operating System :	CentOS Linux release 7.0.1406 (Core)
IP Address       :	192.168.0.55
Host-name	:	server1.tecmintlocal.com

1. darbība: Firewalld instalēšana CentOS

1. Firewalld pakotne pēc noklusējuma ir instalēta RHEL/CentOS 7/8, Fedora un openSUSE. Ja nē, varat to instalēt, izmantojot šādu komandu yum.

# yum install firewalld -y

2. Pēc ugunsmūra pakotnes instalēšanas ir pienācis laiks pārbaudīt, vai pakalpojums iptables darbojas vai nedarbojas. Ja tas darbojas, jums ir jāpārtrauc un maskēt (vairs nelietot) pakalpojumu iptables ar šādām komandām.

# systemctl status iptables
# systemctl stop iptables
# systemctl mask iptables

2. darbība: apspriediet ugunsmūra komponentus

3. Pirms došanās uz ugunsmūra konfigurāciju, es vēlētos apspriest katru zonu. Pēc noklusējuma ir pieejamas dažas zonas. Mums jāpiešķir saskarne zonai. Zona nosaka, ka uzticama vai liegta zona saskarnei ir līmenī, lai iegūtu savienojumu. Zonā var būt pakalpojumi un porti.

Šeit mēs aprakstīsim visas Firewalld pieejamās zonas.

  • Drop Zone : visas ienākošās paketes tiek nomestas, ja mēs izmantojam šo nomešanas zonu. Tas ir tas pats, ko mēs izmantojam, lai pievienotu iptables -j drop . Ja izmantosim nolaišanas kārtulu, tas nozīmē, ka nav atbildes, būs pieejami tikai izejošie tīkla savienojumi.
  • Bloķēšanas zona : bloķēšanas zonā tiks liegta ienākošo tīkla savienojumu noraidīšana ar icmp-host-aizliegtu. Tiks atļauti tikai izveidoti savienojumi serverī.
  • Publiskā zona : lai pieņemtu atlasītos savienojumus, mēs varam definēt kārtulas publiskajā zonā. Tas ļaus mūsu serverī atvērt tikai konkrēto portu, citi savienojumi tiks atcelti.
  • Ārējā zona : šī zona darbosies kā maršrutētāja opcijas ar maskēšanu ir iespējotas, citi savienojumi tiks pārtraukti un netiks pieņemti, atļauts tikai norādītais savienojums.
  • DMZ zona : ja mums ir jāatļauj piekļuve dažiem pakalpojumiem sabiedrībai, varat to definēt DMZ zonā. Arī tam ir iezīme, ka tiek pieņemti tikai atlasītie ienākošie savienojumi.
  • Darba zona: šajā zonā mēs varam definēt tikai iekšējos tīklus, t.i., privāto tīklu trafika ir atļauta.
  • Mājas zona : šī zona tiek īpaši izmantota mājas teritorijās, mēs varam izmantot šo zonu, lai uzticētos citiem tīklā esošajiem datoriem, lai nekaitētu jūsu datoram kā katrā zonā. Arī tas atļauj tikai atlasītos ienākošos savienojumus.
  • Iekšējā zona : šī ir līdzīga darba zonai ar atlasītiem atļautajiem savienojumiem.
  • Uzticamā zona : ja mēs iestatām uzticamo zonu, tiek pieņemta visa datplūsma.

Tagad jums ir labāka ideja par zonām, tagad noskaidrosim pieejamās zonas, noklusējuma zonas un uzskaitīsim visas zonas, izmantojot šādas komandas.

# firewall-cmd --get-zones
# firewall-cmd --get-default-zone
# firewall-cmd --list-all-zones

Piezīme. Iepriekš minētās komandas izvade netiks ievietota vienā lapā, jo tajā tiks uzskaitītas visas zonas, piemēram, bloks, dmz, drop, ārējais, mājas, iekšējais, publiskais, uzticams un darbs. Ja zonās ir kādi bagātinātas kārtulas, iespējotie pakalpojumi vai porti tiks iekļauti arī attiecīgajā zonu informācijā.

3. darbība: noklusējuma ugunsmūra zonas iestatīšana

4. Ja vēlaties iestatīt noklusējuma zonu kā iekšējo, ārējo, nomešanas, darba vai jebkuru citu zonu, varat izmantot zemāk esošo komandu, lai iestatītu noklusējuma zonu. Šeit kā noklusējumu izmantojam “iekšējo” zonu.

# firewall-cmd --set-default-zone=internal

5. Pēc zonas iestatīšanas pārbaudiet noklusējuma zonu, izmantojot zemāk esošo komandu.

# firewall-cmd --get-default-zone

6. Šeit mūsu saskarne ir enp0s3 . Ja mums jāpārbauda sava zona, kurā saskarne ir ierobežota, mēs varam izmantot tālāk norādīto komandu.

# firewall-cmd --get-zone-of-interface=enp0s3

7. Vēl viena interesanta firewalld iezīme ir ‘icmptype’ ir viens no icmp veidiem, ko atbalsta firewalld. Lai iegūtu atbalstīto icmp tipu sarakstu, mēs varam izmantot zemāk esošo komandu.

# firewall-cmd --get-icmptypes

4. darbība: izveidojiet savus pakalpojumus Firewalld

8. Pakalpojumi ir noteikumu kopums ar ostām un opcijām, ko izmanto Firewalld. Pakalpojumi, kas ir iespējoti, tiks automātiski ielādēti, kad ugunsmūris tiks palaists un darbosies.

Pēc noklusējuma ir pieejami daudzi pakalpojumi. Lai iegūtu visu pieejamo pakalpojumu sarakstu, izmantojiet šo komandu.

# firewall-cmd --get-services

9. Lai iegūtu visu noklusējuma pieejamo pakalpojumu sarakstu, dodieties uz šo direktoriju, šeit jūs saņemsiet pakalpojumu sarakstu.

# cd /usr/lib/firewalld/services/

10. Lai izveidotu pats savu pakalpojumu, tas jādefinē šādā vietā. Piemēram, šeit es vēlos pievienot pakalpojumu RTMP 1935. portam, vispirms izveidojiet jebkura pakalpojuma kopiju.

# cd /etc/firewalld/services/
# cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/

Pēc tam dodieties uz vietu, kur tika kopēts mūsu servisa fails, pēc tam pārdēvējiet failu “ssh.xml” uz “rtmp.xml”, kā parādīts zemāk esošajā attēlā.

# cd /etc/firewalld/services/

11. Pēc tam atveriet un rediģējiet failu kā Virsraksts, apraksts, protokols un porta numurs , kas mums jāizmanto RTMP pakalpojumam, kā parādīts zemāk esošajā attēlā.

12. Lai šīs izmaiņas aktivizētu, restartējiet ugunsmūra pakalpojumu vai atkārtoti ielādējiet iestatījumus.

# firewall-cmd --reload

13. Lai apstiprinātu, vai pakalpojums ir pievienots vai nē, palaidiet zemāk esošo komandu, lai iegūtu pieejamo pakalpojumu sarakstu.

# firewall-cmd --get-services

5. darbība: pakalpojumu piešķiršana ugunsmūra zonām

14. Šeit mēs redzēsim, kā pārvaldīt ugunsmūri, izmantojot komandu firewall-cmd. Lai uzzinātu ugunsmūra un visu aktīvo zonu pašreizējo stāvokli, ierakstiet šādu komandu.

# firewall-cmd --state
# firewall-cmd --get-active-zones

15. Lai iegūtu saskarnes enp0s3 publisko zonu, šī ir noklusējuma saskarne, kas failā /etc/firewalld/firewalld.conf ir definēta kā DefaultZone = publisks .

Lai uzskaitītu visus pieejamos pakalpojumus šajā noklusējuma saskarnes zonā.

# firewall-cmd --get-service

6. darbība: Pakalpojumu pievienošana ugunsmūra zonām

16. Iepriekš minētajos piemēros mēs esam redzējuši, kā izveidot savus pakalpojumus, izveidojot rtmp pakalpojumu, šeit redzēsim, kā zonai pievienot arī rtmp pakalpojumu.

# firewall-cmd --add-service=rtmp

17. Lai noņemtu pievienoto zonu, ierakstiet.

# firewall-cmd --zone=public --remove-service=rtmp

Iepriekš minētais solis bija tikai īslaicīgs periods. Lai padarītu to pastāvīgu, mums ir jāizpilda zemāk redzamā komanda ar opciju –pastāvīga .

# firewall-cmd --add-service=rtmp --permanent
# firewall-cmd --reload

18. Definējiet tīkla avota diapazona noteikumus un atveriet jebkuru no ostām. Piemēram, ja vēlaties atvērt tīkla diapazonu, sakiet ‘192.168.0.0/24’ un ports ’1935’, izmantojiet šīs komandas.

# firewall-cmd --permanent --add-source=192.168.0.0/24
# firewall-cmd --permanent --add-port=1935/tcp

Pēc pakalpojumu vai portu pievienošanas vai noņemšanas noteikti pārlādējiet ugunsmūra pakalpojumu.

# firewall-cmd --reload 
# firewall-cmd --list-all

7. darbība: bagātīgu kārtulu pievienošana tīkla diapazonam

19. Ja es vēlos atļaut tādus pakalpojumus kā http, https, vnc-server, PostgreSQL, izmantojiet šādus noteikumus. Vispirms pievienojiet kārtulu un padariet to pastāvīgu, atkārtoti ielādējiet kārtulas un pārbaudiet statusu.

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' 
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="http" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="https" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="vnc-server" accept' --permanent

# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept'
# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.0.0/24" service name="postgresql" accept' --permanent

Tagad tīkla diapazons 192.168.0.0/24 var izmantot iepriekš minēto pakalpojumu no mana servera. Opciju –pastāvīgs var izmantot visos noteikumos, taču mums ir jādefinē kārtula un jāpārbauda ar klienta piekļuvi pēc tam, kad tā ir jāpadara pastāvīga.

20. Pēc iepriekš minēto noteikumu pievienošanas neaizmirstiet atkārtoti ielādēt ugunsmūra kārtulas un uzskaitīt kārtulas, izmantojot:

# firewall-cmd --reload
# firewall-cmd --list-all

Lai uzzinātu vairāk par Firewalld.

# man firewalld

Tas ir viss, mēs esam redzējuši, kā iestatīt tīkla filtru, izmantojot Firewalld RHEL/CentOS un Fedora.

Net-filter ir ugunsmūra sistēma katram Linux izplatījumam. Katrā RHEL un CentOS izdevumā mēs izmantojām iptables, bet jaunākās versijās viņi ir ieviesuši Firewalld. To ir vieglāk saprast un izmantot ugunsmūri. Ceru, ka jums patika rakstīšana.