Android

Hvordan konfigurere og administrere brannmuren på centos 8

Converting From CentOS to RHEL With Convert2RHEL and Satellite

Converting From CentOS to RHEL With Convert2RHEL and Satellite

Innholdsfortegnelse:

Anonim

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

CentOS 8 leveres med en brannmurdemon ved navn brannmur. Det er en komplett løsning med et D-Bus-grensesnitt som lar deg administrere systemets brannmur dynamisk.

I denne opplæringen skal vi snakke om hvordan du konfigurerer og administrerer brannmuren på CentOS 8. Vi skal også forklare de grunnleggende FirewallD-konseptene.

Forutsetninger

For å konfigurere brannmur-tjenesten, må du være logget som root eller bruker med sudo-rettigheter.

Grunnleggende brannmur-konsepter

brannmur bruker konseptene soner og tjenester. Basert på sonene og tjenestene du konfigurerer, kan du kontrollere hvilken trafikk som er tillatt eller blokkert til og fra systemet.

Brannmur kan konfigureres og administreres ved å bruke kommandolinjeprogrammet firewall-cmd .

I CentOS 8 erstattes iptables av nftables som standard brannmurbackend for brannmurdemonen.

Brannmursoner

Soner er forhåndsdefinerte sett med regler som spesifiserer tillitsnivået til nettverkene datamaskinen din er koblet til. Du kan tilordne nettverksgrensesnitt og kilder til en sone.

Nedenfor er sonene levert av FirewallD bestilt i henhold til tillitsnivået til sonen fra ikke tillit til klarert:

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

Brannmur-tjenester

Brannmur-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 på et enkelt trinn.

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

Brannmur Runtime og Permanente innstillinger

Firewalld bruker to separate konfigurasjonssett, runtime og permanent konfigurasjon.

Runtidskonfigurasjonen er den faktiske løpekonfigurasjonen og vedvarer ikke på nytt. Når brannmurdemonen starter, laster den inn den permanente konfigurasjonen, som blir runtime-konfigurasjonen.

Når du gjør endringer i Firewalld-konfigurasjonen ved å bruke firewall-cmd verktøyet, blir standardene som standard brukt på runtime-konfigurasjonen. For å gjøre endringene permanent legge til --permanent alternativet til kommandoen.

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

  1. Endre runtime-konfigurasjonen og gjør den permanent:

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

    Endre den permanente konfigurasjonen og last inn brannmurdemonen på nytt:

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

Aktivere brannmurD

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

sudo dnf install firewalld sudo systemctl enable firewalld --now

Du kan sjekke statusen til brannmurstjenesten med:

sudo firewall-cmd --state

Hvis brannmuren er aktivert, bør kommandoen skrive ut running . Ellers ser du not running .

Brannmursoner

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

Du kan se standardsonen ved å skrive:

sudo firewall-cmd --get-default-zone

public

For å få en liste over alle tilgjengelige soner, skriver du:

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

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

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 utdataene over kan vi se at den offentlige sonen er aktiv og bruker standardmålet, som er REJECT . Utgangen viser også at sonen brukes av eth0 og eth1 grensesnittene og tillater DHCP-klient og SSH-trafikk.

sudo firewall-cmd --list-all-zones

Kommandoen skriver ut en enorm liste med innstillingene for all tilgjengelig sone.

Endre sonemålet

Målet definerer standardoppførselen til sonen for den innkommende trafikken som ikke er spesifisert. Det kan settes til et av følgende alternativer: default , ACCEPT , REJECT og DROP .

For å stille inn sonens mål, spesifiser sonen med - --zone og målet med --set-target .

For å endre det public sone-målet til DROP , vil du for eksempel kjøre:

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

Tilordne et grensesnitt til en annen sone

Du kan lage spesifikke sett med regler for forskjellige soner og tilordne forskjellige grensesnitt til dem. Dette er spesielt nyttig når du har flere grensesnitt på maskinen din.

For å tilordne et grensesnitt til en annen sone, spesifiser sonen med - --zone alternativet og grensesnittet med - --change-interface .

Følgende kommando tildeler for eksempel eth1 grensesnittet til work :

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

Bekreft endringene ved å skrive:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Endre standardsonen

Hvis du vil endre standardsonen, bruker du alternativet - --set-default-zone etterfulgt av navnet på sonen du vil angi standard.

For å endre standardsonen til home , vil du for eksempel kjøre følgende kommando:

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

Bekreft endringene med:

sudo firewall-cmd --get-default-zone

home

Opprette nye soner

Firewalld lar deg også lage dine egne soner. Dette er praktisk når du vil opprette regler per søknad.

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

  1. Opprett sonen:

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

    Legg til reglene i sonen:

    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

    Last inn brannmurdemonen på nytt for å aktivere endringene:

    sudo firewall-cmd --reload

Brannmur tjenester

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

Slik får du en liste over alle tilgjengelige standardtjenester:

sudo firewall-cmd --get-services

Du kan finne mer informasjon om hver tjeneste ved å åpne den tilknyttede.xml-filen i katalogen /usr/lib/firewalld/services . For eksempel er HTTP-tjenesten definert slik:

/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.

For å tillate innkommende HTTP-trafikk (port 80) for grensesnitt i den offentlige sonen, bare for gjeldende økt (runtime-konfigurasjon) type:

sudo firewall-cmd --zone=public --add-service=http Hvis du endrer standardsonen, kan du utelate alternativet - --zone .

Bruk alternativet - --list-services å bekrefte at tjenesten ble lagt til.

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

ssh dhcpv6-client

For å holde port 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 alternativet for å bekrefte endringene dine:

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

ssh dhcpv6-client

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

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

Kommandoen over fjerner http tjenesten fra den permanente konfigurasjonen for offentlig sone.

Oppretter en ny brannmurD-tjeneste

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

For å lage en tjenestedefinisjon for Plex Media Server, kan du for eksempel 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 og tags. Den viktigste koden du trenger å endre er portkoden, som definerer portnummeret og protokollen du vil åpne.

I det følgende eksemplet åpner vi portene 1900 UDP og 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.

Lagre filen og last inn FirewallD-tjenesten på nytt:

sudo firewall-cmd --reload

Du kan nå bruke plexmediaserver tjenesten i sonene dine, som alle andre tjenester.

Åpne porter og kilde-IP-er

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

Åpne en kilde-IP

For å tillate all innkommende trafikk fra en spesifikk IP-adresse (eller rekkevidde), angir du sonen med - --zone alternativet og kildens IP med alternativet - --add-source .

For å tillate all innkommende trafikk fra 192.168.1.10 i den public sonen, kjør for eksempel:

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

Gjør den nye regelen vedvarende:

sudo firewall-cmd --runtime-to-permanent

Bekreft 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 stedet for alternativet - --add-source :

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

Åpne en kildeport

For å tillate all innkommende trafikk på en gitt port, spesifiser sonen med alternativet - sone og porten og protokollen med alternativet - --add-port .

For eksempel å åpne port 8080 i den offentlige sonen for den nåværende økten du såret kjørt:

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

Protokollen kan være enten tcp , udp , sctp eller dccp .

Bekreft endringene:

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

8080

For å holde porten åpen etter omstart, legger du regelen til de permanente innstillingene ved å kjøre den samme kommandoen ved å bruke --permanent flagg 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 stedet for alternativet - --add-port .

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

Videresending av porter

For å videresende trafikk fra en port til en annen port, må du først aktivere maskering for ønsket sone ved å bruke - --add-masquerade alternativet. For å aktivere maskering for den external sonen, skriver du for eksempel:

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

Videresend trafikk fra en port til en annen på IP-adressen

I det følgende eksemplet 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 det følgende eksemplet 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 i en annen port

I det følgende eksemplet 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 fremtidsregelen vedvarende bruker du:

sudo firewall-cmd --runtime-to-permanent

Konklusjon

Du har lært hvordan du konfigurerer og administrerer brannmur-tjenesten på CentOS 8-systemet.

Sørg for å tillate alle innkommende tilkoblinger som er nødvendige for at systemet ditt skal fungere ordentlig, mens du begrenser alle unødvendige tilkoblinger.

brannmur brannmur centos sikkerhet