Sådan konfigureres FirewallD i RHEL, CentOS og Fedora


Netfilter som vi alle ved, er det en firewall i Linux. Firewalld er en dynamisk dæmon til styring af firewalls med understøttelse af netværkszoner. I den tidligere version, RHEL & CentOS 6, har vi brugt iptables som en dæmon til pakkefiltreringsramme. I RHEL / CentOS 7/8 erstattes Fedora og openSUSE - rong> iptables-interface med firewalld.

Det anbefales at begynde at bruge Firewalld i stedet for iptables, da dette kan ophøre i fremtiden. Imidlertid understøttes iptables stadig og kan installeres med yum-kommandoen. Vi kan ikke opbevare Firewalld og iptables begge i det samme system, som kan føre til konflikt.

I iptables plejede vi at konfigurere som INPUT, OUTPUT & FORWARD CHAINS men her i Firewalld bruger konceptet zoner. Som standard er der forskellige zoner tilgængelige i firewalld, som diskuteres i denne artikel.

Den grundlæggende zone, der er som offentlig zone og privat zone. For at få tingene til at fungere med disse zoner, skal vi tilføje grænsefladen med den specificerede zonestøtte, og så kan vi tilføje tjenesterne til firewalld.

Som standard er der mange tjenester tilgængelige, en af de bedste funktioner i firewalld er, den kommer med foruddefinerede tjenester, og vi kan tage disse tjenester som et eksempel for at tilføje vores tjenester ved blot at kopiere dem.

Firewalld fungerer også godt med IPv4-, IPv6- og Ethernet-broer. Vi kan have en separat kørselstid og permanent konfiguration i firewalld.

Lad os komme i gang med, hvordan vi arbejder med zoner og opretter vores egne tjenester og meget mere spændende brug af firewalld.

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

Trin 1: Installation af Firewalld i CentOS

1. Firewalld-pakken er installeret som standard i RHEL/CentOS 7/8, Fedora og openSUSE. Hvis ikke, kan du installere det ved hjælp af følgende yum-kommando.

# yum install firewalld -y

2. Når firewallld-pakken er installeret, er det tid til at kontrollere, om iptables-tjenesten kører eller ej, hvis du kører, skal du stoppe og maskere (ikke længere bruge) iptables-tjenesten med nedenstående kommandoer.

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

Trin 2: Diskussion af Firewalld-komponenter

3. Inden jeg går op til firewalld-konfiguration, vil jeg gerne diskutere hver zone. Som standard er der nogle tilgængelige zoner. Vi er nødt til at tildele grænsefladen til zonen. En zone definerer, at den zone, der var tillid til eller nægtet, niveauet til grænsefladen for at få en forbindelse. En zone kan indeholde tjenester og porte.

Her skal vi beskrive hver tilgængelig zone i Firewalld.

  • Drop Zone : Alle indgående pakker droppes, hvis vi bruger denne drop zone. Dette er det samme som vi bruger til at tilføje iptables -j drop . Hvis vi bruger drop-reglen, betyder det, at der ikke er noget svar, er kun udgående netværksforbindelser tilgængelige.
  • Bloker zone : Blokeringszone nægter, at indgående netværksforbindelser afvises med en icmp-vært forbudt. Kun etablerede forbindelser på serveren er tilladt.
  • Offentlig zone : For at acceptere de valgte forbindelser kan vi definere regler i den offentlige zone. Dette tillader kun den specifikke port at åbne på vores server, andre forbindelser slettes.
  • Ekstern zone : Denne zone fungerer, da routerindstillinger med maskering er aktiveret, andre forbindelser slettes og accepteres ikke, kun specificeret forbindelse tillades.
  • DMZ-zone : Hvis vi har brug for at give adgang til nogle af tjenesterne for offentligheden, kan du definere det i DMZ-zonen. Dette har også funktionen, at kun valgte indgående forbindelser accepteres.
  • Arbejdszone: I denne zone kan vi kun definere interne netværk, dvs. private netværkstrafik er tilladt.
  • Hjemzone : Denne zone bruges specielt i hjemområder, vi kan bruge denne zone til at stole på de andre computere på netværk for ikke at skade din computer som hver zone. Dette tillader også kun de valgte indgående forbindelser.
  • Intern zone : Denne svarer til arbejdsområdet med valgte tilladte forbindelser.
  • Trusted Zone : Hvis vi indstiller den betroede zone, accepteres al trafik.

Nu har du en bedre idé om zoner. Lad os nu finde ud af tilgængelige zoner, standardzoner og liste alle zoner ved hjælp af følgende kommandoer.

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

Bemærk: Outputtet fra ovenstående kommando passer ikke ind på en enkelt side, da dette viser alle zoner som blok, dmz, drop, ekstern, hjemme, intern, offentlig, betroet og arbejde. Hvis zoner har nogen rige regler, vises aktiverede tjenester eller porte også med de respektive zoneoplysninger.

Trin 3: Indstilling af standard Firewalld Zone

4. Hvis du vil indstille standardzonen som intern, ekstern, drop, arbejde eller en hvilken som helst anden zone, kan du bruge kommandoen nedenfor til at indstille standardzonen. Her bruger vi den “interne” zone som standard.

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

5. Efter indstilling af zonen skal du kontrollere standardzonen ved hjælp af kommandoen nedenfor.

# firewall-cmd --get-default-zone

6. Her er vores grænseflade enp0s3 . Hvis vi har brug for at kontrollere vores zone, i hvilken grænseflade er afgrænset, kan vi bruge kommandoen nedenfor.

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

7. Et andet interessant træk ved firewalld er 'icmptype' er en af de icmp-typer, der understøttes af firewalld. For at få en liste over understøttede icmp-typer kan vi bruge nedenstående kommando.

# firewall-cmd --get-icmptypes

Trin 4: Oprettelse af egne tjenester i Firewalld

8. Services er et sæt regler med porte og optioner, der bruges af Firewalld. Tjenester, der er aktiveret, indlæses automatisk, når Firewalld-tjenesten kører.

Som standard er mange tjenester tilgængelige. Brug følgende kommando for at få listen over alle tilgængelige tjenester.

# firewall-cmd --get-services

9. For at få listen over alle de standardtjenester, der er tilgængelige, skal du gå til følgende bibliotek, her får du listen over tjenester.

# cd /usr/lib/firewalld/services/

10. For at oprette din egen tjeneste skal du definere den på følgende placering. For eksempel vil jeg her tilføje en tjeneste til RTMP-port 1935, først lav en kopi af en af tjenesterne.

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

Naviger derefter til det sted, hvor vores servicefil blev kopieret, og omdøb derefter filen 'ssh.xml' til 'rtmp.xml' som vist på nedenstående billede.

# cd /etc/firewalld/services/

11. Åbn og rediger derefter filen som Overskrift, beskrivelse, protokol og portnummer , som vi skal bruge til RTMP-tjenesten som vist på nedenstående billede.

12. For at aktivere disse ændringer skal du genstarte firewallldtjenesten eller indlæse indstillingerne igen.

# firewall-cmd --reload

13. For at bekræfte, om tjenesten er tilføjet eller ej, skal du køre kommandoen nedenfor for at få en liste over tilgængelige tjenester.

# firewall-cmd --get-services

Trin 5: Tildeling af tjenester til Firewalld Zones

14. Her skal vi se, hvordan du styrer firewallen ved hjælp af kommandoen firewall-cmd. For at kende firewallens aktuelle tilstand og alle aktive zoner skal du skrive følgende kommando.

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

15. For at få den offentlige zone til grænsefladen enp0s3 er dette standardgrænsefladen, der er defineret i /etc/firewalld/firewalld.conf -filen som DefaultZone = offentlig .

For at liste alle tilgængelige tjenester i denne standardgrænsefladezone.

# firewall-cmd --get-service

Trin 6: Tilføjelse af tjenester til Firewalld Zones

16. I ovenstående eksempler har vi set, hvordan vi opretter vores egne tjenester ved at oprette rtmp-tjenesten, her vil vi se, hvordan vi også tilføjer rtmp-tjenesten til zonen.

# firewall-cmd --add-service=rtmp

17. For at fjerne tilføjet zone skal du skrive.

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

Ovenstående trin var kun en midlertidig periode. For at gøre det permanent skal vi køre kommandoen nedenfor med indstillingen –permanent .

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

18. Definer regler for netværkets kildeområde, og åbn en af portene. For eksempel, hvis du vil åbne et netværksområde, siger "192.168.0.0/24" og port "1935", skal du bruge følgende kommandoer.

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

Sørg for at genindlæse firewalld-tjenesten efter tilføjelse eller fjernelse af tjenester eller porte.

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

Trin 7: Tilføjelse af rige regler for netværksområde

19. Hvis jeg vil tillade tjenester som http, https, vnc-server, PostgreSQL, bruger du følgende regler. Først skal du tilføje reglen og gøre den permanent, og genindlæse reglerne og kontrollere status.

# 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

Nu kan netværksområdet 192.168.0.0/24 bruge ovenstående service fra min server. Indstillingen –permanent kan bruges i hver regel, men vi er nødt til at definere reglen og kontrollere med klientadgangen, efter at vi skal gøre den permanent.

20. Når du har tilføjet ovenstående regler, skal du ikke glemme at genindlæse firewallreglerne og liste reglerne ved hjælp af:

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

At vide mere om Firewalld.

# man firewalld

Det er det, vi har set, hvordan man opsætter et netfilter ved hjælp af Firewalld i RHEL/CentOS og Fedora.

Netfilter er rammen for en firewall til hver Linux-distribution. Tilbage i hver RHEL- og CentOS-udgave brugte vi iptables, men i nyere versioner har de introduceret Firewalld. Det er lettere at forstå og bruge firewalld. Håber du har haft opskriften.