Slik Konfigurerer Og Administrerer Du Brannmuren På CentOS 8

en brannmur er en metode for overvåking og filtrering av innkommende og utgående nettverkstrafikk. Det fungerer ved å definere et sett med sikkerhetsregler som bestemmer om du vil tillate eller blokkere bestemt trafikk. En riktig konfigurert brannmur er et av de viktigste aspektene ved total systemsikkerhet.

CentOS 8 skip med en brannmur daemon kalt firewalld. Det er en komplett løsning Med Et d-Bus-grensesnitt som lar deg administrere systemets brannmur dynamisk.

i denne opplæringen vil vi snakke om hvordan du konfigurerer Og administrerer brannmuren På CentOS 8. Vi vil også forklare de grunnleggende FirewallD konsepter.

Forutsetninger #

for å konfigurere brannmurtjenesten må du være logget som rot eller bruker med sudo-privilegier.

Grunnleggende Firewalld Konsepter #

firewalld bruker begrepene soner og tjenester. Basert på sonene og tjenestene du konfigurerer, kan du kontrollere hvilken trafikk som tillates eller blokkeres til og fra systemet.

Firewalld kan konfigureres og administreres ved hjelp av kommandolinjeverktøyet firewall-cmd.

I CentOS 8, er iptables erstattet av nftables som standard brannmur backend for firewalld daemon.

Firewalld Zones #

Zones er forhåndsdefinerte sett med regler som angir klareringsnivået for nettverkene datamaskinen er koblet til. Du kan tilordne nettverksgrensesnitt og kilder til en sone.

nedenfor er sonene levert Av FirewallD bestilt i henhold til klareringsnivået for sonen fra uklarert til klarert:

  • slipp: Alle innkommende tilkoblinger blir droppet uten varsel. Bare utgående tilkoblinger er tillatt.
  • blokker: alle innkommende tilkoblinger avvises med en icmp-host-prohibited melding for IPv4 og icmp6-adm-prohibited For IPv6n. bare utgående tilkoblinger er tillatt.
  • offentlig: For bruk i ikke-klarerte offentlige områder. Du stoler ikke på andre datamaskiner på nettverket, men du kan tillate valgte innkommende tilkoblinger.
  • ekstern: for bruk på eksterne nettverk med nat maskering aktivert når systemet fungerer som en gateway eller ruter. Bare valgte innkommende tilkoblinger er tillatt.
  • intern: for bruk på interne nettverk når systemet fungerer som gateway eller ruter. Andre systemer på nettverket er generelt klarert. Bare valgte innkommende tilkoblinger er tillatt.
  • dmz: brukes for datamaskiner i den demilitariserte sonen som har begrenset tilgang til resten av nettverket. Bare valgte innkommende tilkoblinger er tillatt.
  • arbeid: Brukes til arbeidsmaskiner. Andre datamaskiner på nettverket er generelt klarert. Bare valgte innkommende tilkoblinger er tillatt.
  • hjem: Brukes til hjemmemaskiner. Andre datamaskiner på nettverket er generelt klarert. Bare valgte innkommende tilkoblinger er tillatt.
  • klarert: alle nettverkstilkoblinger godtas. Stol på alle datamaskinene i nettverket.

Brannmurtjenester #

Firewalld-tjenester er forhåndsdefinerte regler som gjelder innenfor en sone og definerer de nødvendige innstillingene for å tillate innkommende trafikk for en bestemt tjeneste. Tjenestene lar deg enkelt utføre flere oppgaver i ett enkelt trinn.

tjenesten kan for eksempel inneholde definisjoner om åpning av porter, videresending av trafikk og mer.

Firewalld Runtime Og Permanente Innstillinger #

Firewalld bruker to separerte konfigurasjonssett, runtime og permanent konfigurasjon.

kjøretidskonfigurasjonen er den faktiske kjørekonfigurasjonen og vedvarer ikke ved omstart. Når firewalld-demonen starter, laster den den permanente konfigurasjonen, som blir kjøretidskonfigurasjonen.

som standard, når du gjør endringer I Firewalld-konfigurasjonen ved hjelp av verktøyet firewall-cmd, brukes endringene til kjøretidskonfigurasjonen. For å gjøre endringene permanent, legg til alternativet --permanent i kommandoen.

hvis du vil bruke endringene i begge konfigurasjonssettene, kan du bruke en av følgende to metoder:

  1. Endre kjøretidskonfigurasjonen og gjør den permanent:

    sudo firewall-cmd <options>sudo firewall-cmd --runtime-to-permanent
  2. Endre permanent konfigurasjon og laste firewalld daemon:

    sudo firewall-cmd --permanent <options>sudo firewall-cmd --reload

Aktivering Av FirewallD #

På CentOS 8 er firewalld installert og aktivert som standard. Hvis det av en eller annen grunn ikke er installert på systemet, kan du installere og starte demonen ved å skrive:

sudo dnf install firewalldsudo systemctl enable firewalld --now

du kan sjekke statusen til brannmurtjenesten med:

sudo firewall-cmd --state

hvis brannmuren er aktivert, skal kommandoen skrive ut running. Ellers vil du se not running.

Firewalld Zones #

hvis du ikke har endret den, er standardsonen satt til public, og alle nettverksgrensesnitt er tilordnet denne sonen.

standardsonen er den som brukes for alt som ikke er eksplisitt tilordnet til en annen sone.

du kan se standardsonen ved å skrive inn:

sudo firewall-cmd --get-default-zone
public

for å få en liste over alle tilgjengelige soner, skriv inn:

sudo firewall-cmd --get-zones
block dmz drop external home internal public trusted work

slik ser du de aktive sonene og nettverksgrensesnittene som er tilordnet dem:

sudo firewall-cmd --get-active-zones

utgangen nedenfor viser at grensesnittene eth0 og eth1 er tilordnet sonen public :

public interfaces: eth0 eth1

du kan skrive ut sonekonfigurasjonsinnstillingene med:

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:

fra utgangen ovenfor kan vi se at den offentlige sonen er aktiv og bruker standardmålet, som er REJECT. Utgangen viser også at sonen brukes av grensesnittene eth0 og eth1 og tillater DHCP-klient og SSH-trafikk.

hvis du vil sjekke konfigurasjonene for alle tilgjengelige soner type:

sudo firewall-cmd --list-all-zones

kommandoen skriver ut en stor liste med innstillingene for all tilgjengelig sone.

Endre sonemålet #

målet definerer standard virkemåte for sonen for innkommende trafikk som ikke er angitt. Det kan settes til ett av følgende alternativer: default, ACCEPT, REJECT, og DROP.

hvis du vil angi sonens mål, angir du sonen med alternativet --zone og målet med alternativet --set-target.

hvis du for eksempel vil endre public – sonens mål til DROP, kjører du:

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

Tilordne et grensesnitt til en annen sone #

Du kan opprette bestemte sett med regler for forskjellige soner og tilordne forskjellige grensesnitt til dem. Dette er spesielt nyttig nar du har flere grensesnitt pa maskinen din.

hvis du vil tilordne et grensesnitt til en annen sone, angir du sonen med alternativet --zone og grensesnittet med alternativet --change-interface.

følgende kommando tilordner for eksempel grensesnittet eth1 til sonen work :

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

Kontroller endringene ved å skrive inn:

sudo firewall-cmd --get-active-zones
work interfaces: eth1public interfaces: eth0

Endre Standardsonen #

hvis du vil endre standardsonen, bruker du alternativet --set-default-zone etterfulgt av navnet på sonen du vil bruke som standard.

hvis du for eksempel vil endre standardsonen til home, kjører du følgende kommando:

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

Kontroller endringene med:

sudo firewall-cmd --get-default-zone
home

Opprette nye Soner #

Firewalld lar deg også lage dine egne soner. Dette er nyttig når du ønsker å lage per-program regler.

i følgende eksempel oppretter vi en ny sone med navnet memcached, åpner porten 11211 og tillater bare tilgang fra IP-adressen 192.168.100.30 :

  1. Opprette sonen:

    sudo firewall-cmd --new-zone=memcached --permanent
  2. Legg til reglene i sonen:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanentsudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanentsudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent
  3. Last firewalld daemon å aktivere endringene:

    sudo firewall-cmd --reload

Firewalld Services #

med firewalld kan du tillate trafikk for bestemte porter og/eller kilder basert på forhåndsdefinerte regler kalt tjenester.

for å få en liste over alle standard tilgjengelige tjenester type:

sudo firewall-cmd --get-services

du finner mer informasjon om hver tjeneste ved å åpne den tilhørende.xml-fil i katalogen /usr/lib/firewalld/services. FOR EKSEMPEL ER HTTP-tjenesten definert slik:

/usr/lib/firewalld/services / http.xml
<?xml version="1.0" encoding="utf-8"?><service> <short>WWW (HTTP)</short> <description>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.</description> <port protocol="tcp" port="80"/></service>

hvis du vil tillate innkommende HTTP-trafikk (port 80) for grensesnitt i den offentlige sonen, bare for gjeldende økt (kjøretidskonfigurasjon) type:

sudo firewall-cmd --zone=public --add-service=http
hvis du endrer standardsonen, kan du legge ut alternativet --zone.

for å bekrefte at tjenesten ble lagt til, bruk alternativet --list-services :

sudo firewall-cmd --zone=public --list-services
ssh dhcpv6-client http

for å holde porten 80 åpen etter en omstart, kjør den samme kommandoen igjen med alternativet --permanent, eller utfør:

sudo firewall-cmd --runtime-to-permanent

Bruk --list-services sammen med --permanent for å bekrefte endringene:

sudo firewall-cmd --permanent --zone=public --list-services
ssh dhcpv6-client http

syntaksen for å fjerne tjenesten er den samme som når du legger til en. Bare bruk --remove-service i stedet for --add-service flagget:

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

kommandoen ovenfor fjerner http – tjenesten fra den permanente konfigurasjonen for offentlig sone.

Opprette en Ny FirewallD-Tjeneste #

som vi allerede har nevnt, lagres standardtjenestene i katalogen /usr/lib/firewalld/services. Den enkleste måten å opprette en ny tjeneste på er å kopiere en eksisterende tjenestefil til katalogen /etc/firewalld/services, som er stedet for brukeropprettede tjenester og endre filinnstillingene.

hvis du for eksempel vil opprette en tjenestedefinisjon For Plex Media Server, kan DU bruke SSH-tjenestefilen:

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

Åpne den nyopprettede filen plexmediaserver.xml og endre kortnavnet og beskrivelsen for tjenesten i taggene <short> og <description>. Den viktigste koden du må endre er port – taggen, som definerer portnummeret og protokollen du vil åpne.

i følgende eksempel åpner vi porter 1900 UDP og 32400 TCP.

/etc/firewalld/tjenester / plexmediaserver.xml
<?xml version="1.0" encoding="utf-8"?><service version="1.0"><short>plexmediaserver</short><description>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.</description><port protocol="udp" port="1900"/><port protocol="tcp" port="32400"/></service>

Lagre filen og last Inn FirewallD-tjenesten På Nytt:

sudo firewall-cmd --reload

Du kan nå bruke plexmediaserver – tjenesten i sonene dine på samme måte som alle andre tjenester.

Åpning Av Porter Og Kilde-IPs #

Firewalld lar deg også raskt aktivere all trafikk fra en klarert IP-adresse eller på en bestemt port uten å opprette en tjenestedefinisjon.

Åpne en kilde-IP #

hvis du vil tillate all innkommende trafikk fra en bestemt IP-adresse (eller område), angir du sonen med alternativet --zone og alternativet kilde-IP med alternativet --add-source.

hvis du for eksempel vil tillate all innkommende trafikk fra 192.168.1.10 i sonen public, kjør:

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

Gjør den nye regelen vedvarende:

sudo firewall-cmd --runtime-to-permanent

Kontroller endringene ved hjelp av følgende kommando:

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

syntaksen for å fjerne en kilde IP er den samme som når du legger til en. Bare bruk --remove-source i stedet for alternativet --add-source :

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

Åpne en kildeport #

hvis du vil tillate all innkommende trafikk på en gitt port, angir du sonen med alternativet --zone og porten og protokollen med alternativet --add-port.

hvis du for eksempel vil åpne port 8080 i felles-sonen for den gjeldende økten du sår kjøre:

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

protokollen kan også være tcp, udp, sctp, eller dccp.

Bekreft endringene:

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

for å holde porten åpen etter en omstart, legg til regelen i de permanente innstillingene ved å kjøre samme kommando ved hjelp av flagget --permanent eller ved å utføre:

sudo firewall-cmd --runtime-to-permanent

syntaksen for å fjerne en port er den samme som når du legger til en port. Bare bruk --remove-port i stedet for alternativet --add-port.

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

Videresendingsporter #

hvis du vil videresende trafikk fra en port til en annen port, må du først aktivere maskert for ønsket sone ved hjelp av alternativet --add-masquerade. Hvis du for eksempel vil aktivere maskert for sonen external, skriver du inn:

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

Videresend trafikk fra en port til EN ANNEN PÅ IP-adressen #

i følgende eksempel videresender vi trafikken fra port 80 til port 8080 på samme server:

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

Videresend trafikk til en ANNEN IP-adresse #

i følgende eksempel videresender vi trafikken fra port 80 til port 80 på en server MED IP 10.10.10.2:

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

Videresend trafikk til en annen server på en annen port #

i følgende eksempel videresender vi trafikken fra port 80 til port 8080 på en server med IP 10.10.10.2:

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

for å gjøre fremoverregelen vedvarende, bruk:

sudo firewall-cmd --runtime-to-permanent

Konklusjon #

du har lært hvordan du konfigurerer og administrerer firewalld-tjenesten på Ditt CentOS 8-system.

sørg for å tillate alle innkommende tilkoblinger som er nødvendige for at systemet fungerer riktig, samtidig som du begrenser alle unødvendige tilkoblinger.



+