Android

Sådan konfigureres og administreres firewall på centos 8

Introduction to Amazon Web Services by Leo Zhadanovsky

Introduction to Amazon Web Services by Leo Zhadanovsky

Indholdsfortegnelse:

Anonim

En firewall er en metode til overvågning og filtrering af indgående og udgående netværkstrafik. Det fungerer ved at definere et sæt sikkerhedsregler, der bestemmer, om specifik trafik skal tillades eller blokeres. En korrekt konfigureret firewall er en af ​​de vigtigste aspekter af den generelle systemsikkerhed.

CentOS 8 sendes med en firewall-dæmon ved navn firewalld. Det er en komplet løsning med en D-Bus-interface, der giver dig mulighed for at administrere systemets firewall dynamisk.

I denne tutorial vil vi tale om, hvordan man konfigurerer og administrerer firewall på CentOS 8. Vi forklarer også de grundlæggende FirewallD-koncepter.

Forudsætninger

For at konfigurere firewall-tjenesten skal du være logget som root eller bruger med sudo-privilegier.

Grundlæggende Firewalld-koncepter

firewalld bruger begreberne zoner og tjenester. Baseret på de zoner og tjenester, du konfigurerer, kan du styre, hvad trafik er tilladt eller blokeret til og fra systemet.

Firewalld kan konfigureres og administreres ved hjælp af kommandolinjeprogrammet firewall-cmd .

I CentOS 8 erstattes iptables af nftables som standard firewall-backend for firewalldæmonen.

Firewalld Zoner

Zoner er foruddefinerede regelsæt, der specificerer tillidsniveauet for de netværk, din computer er forbundet til. Du kan tildele netværksgrænseflader og kilder til en zone.

Nedenfor er de zoner, der leveres af FirewallD bestilt i henhold til tillidsniveauet i zonen fra ikke-tillid til betroet:

  • drop: Alle indgående forbindelser slettes uden nogen meddelelse. Kun udgående forbindelser er tilladt. blok: Alle indgående forbindelser afvises med en icmp-host-prohibited meddelelse til IPv4 og icmp6-adm-prohibited for IPv6n. Kun udgående forbindelser er tilladt. offentligt: Til brug i ikke-betroede offentlige områder. Du har ikke tillid til andre computere på netværket, men du kan tillade valgte indgående forbindelser. ekstern: Til brug på eksterne netværk med NAT-maskering aktiveret, når dit system fungerer som en gateway eller router. Kun valgte indgående forbindelser er tilladt. intern: Til brug på interne netværk, når dit system fungerer som en gateway eller router. Andre systemer på netværket er generelt tillid til. Kun valgte indgående forbindelser er tilladt. dmz: Bruges til computere placeret i din demilitariserede zone, der har begrænset adgang til resten af ​​dit netværk. Kun valgte indgående forbindelser er tilladt. arbejde: Bruges til arbejdsmaskiner. Andre computere på netværket er generelt tillid til. Kun valgte indgående forbindelser er tilladt. Hjem: Bruges til hjemmemaskiner. Andre computere på netværket er generelt tillid til. Kun valgte indgående forbindelser er tilladt. klareret: Alle netværksforbindelser accepteres. Stol på alle computere i netværket.

Firewall-tjenester

Firewall-tjenester er foruddefinerede regler, der gælder inden for en zone og definerer de nødvendige indstillinger for at tillade indkommende trafik for en bestemt tjeneste. Tjenesterne giver dig mulighed for let at udføre flere opgaver i et enkelt trin.

Tjenesten kan for eksempel indeholde definitioner om åbning af porte, videresendelse af trafik og mere.

Firewalld kørselstid og permanente indstillinger

Firewalld bruger to separate konfigurationssæt, runtime og permanent konfiguration.

Runtime-konfigurationen er den aktuelle løbskonfiguration og fortsætter ikke ved genstart. Når firewalldæmonen starter, indlæses den den permanente konfiguration, der bliver runtime-konfigurationen.

Når der foretages ændringer i Firewalld-konfigurationen ved hjælp af firewall-cmd værktøjet, anvendes ændringerne som standard til runtime-konfigurationen. For at gøre ændringerne permanent tilføje --permanent indstillingen til kommandoen.

Hvis du vil anvende ændringerne i begge konfigurationssæt, kan du bruge en af ​​følgende to metoder:

  1. Ændr runtime-konfigurationen, og gør den permanent:

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

    Skift den permanente konfiguration og genindlæs firewalldemon'en:

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

Aktivering af firewallD

På CentOS 8 er firewalld installeret og aktiveret som standard. Hvis det af en eller anden grund ikke er installeret på dit system, kan du installere og starte dæmonen ved at skrive:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Du kan kontrollere status for firewall-tjenesten med:

sudo firewall-cmd --state

Hvis firewall er aktiveret, skal kommandoen udskrives, running . Ellers ser du not running .

Firewalld Zoner

Standardzonen er den, der bruges til alt, der ikke eksplicit er tildelt en anden zone.

Du kan se standardzonen ved at skrive:

sudo firewall-cmd --get-default-zone

public

For at få en liste over alle tilgængelige zoner skal du indtaste:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Sådan ser du de aktive zoner og netværksgrænseflader, der er tildelt dem:

sudo firewall-cmd --get-active-zones

Outputet nedenfor viser, at grænsefladerne eth0 og eth1 er tildelt den public zone:

public interfaces: eth0 eth1

Du kan udskrive indstillingerne for zonekonfiguration 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 output ovenfor kan vi se, at den offentlige zone er aktiv og bruger standardmålet, som er REJECT . Outputet viser også, at zonen bruges af eth0 og eth1 grænsefladerne og tillader DHCP-klient og SSH-trafik.

sudo firewall-cmd --list-all-zones

Kommandoen udskriver en enorm liste med indstillingerne for alle tilgængelige zoner.

Ændring af zonemålet

Målet definerer standardopførelsen i zonen for den indkommende trafik, der ikke er specificeret. Det kan indstilles til en af ​​følgende indstillinger: default , ACCEPT , REJECT og DROP .

For at indstille zonens mål skal du specificere zonen med indstillingen - zone og målet med - --set-target .

For at ændre målene for den public zone til DROP vil du f.eks. Køre:

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

Tildeling af en grænseflade til en anden zone

Du kan oprette specifikke regelsæt for forskellige zoner og tildele forskellige grænseflader til dem. Dette er især nyttigt, når du har flere grænseflader på din maskine.

For at tildele en grænseflade til en anden zone skal du specificere zonen med indstillingen - zone og grænsefladen med indstillingen - --change-interface .

For eksempel tildeler følgende kommando eth1 grænsefladen til arbejdszonen:

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

Bekræft ændringerne ved at skrive:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Ændring af standardzone

Hvis du vil ændre standardzonen, skal du bruge indstillingen - --set-default-zone efterfulgt af navnet på den zone, du vil --set-default-zone standard.

For at ændre standardzonen til home vil du f.eks. Køre følgende kommando:

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

Bekræft ændringerne med:

sudo firewall-cmd --get-default-zone

home

Oprettelse af nye zoner

Firewalld giver dig også mulighed for at oprette dine egne zoner. Dette er praktisk, når du vil oprette regler pr. Applikation.

I det følgende eksempel opretter vi en ny zone med navnet memcached , åbner porten 11211 og tillader kun adgang fra IP-adressen 192.168.100.30 :

  1. Opret zonen:

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

    Føj reglerne til zonen:

    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

    Genindlæs firewalldæmonen for at aktivere ændringerne:

    sudo firewall-cmd --reload

Firewalld-tjenester

Med firewalld kan du tillade trafik for specifikke porte og / eller kilder baseret på foruddefinerede regler kaldet tjenester.

Sådan får du en liste over alle tilgængelige standardtjenester:

sudo firewall-cmd --get-services

Du kan finde mere information om hver tjeneste ved at åbne den tilhørende.xml-fil i biblioteket /usr/lib/firewalld/services . For eksempel er HTTP-tjenesten defineret sådan:

/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 at tillade indgående HTTP-trafik (port 80) til grænseflader i den offentlige zone, kun for den aktuelle session (runtime-konfiguration) type:

sudo firewall-cmd --zone=public --add-service=http Hvis du ændrer standardzonen, kan du udelade indstillingen - zone.

For at bekræfte, at tjenesten blev tilføjet, skal du bruge indstillingen - --list-services :

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

ssh dhcpv6-client

For at holde port 80 åben efter en genstart skal du køre den samme kommando igen med --permanent indstillingen, eller udføre:

sudo firewall-cmd --runtime-to-permanent

Brug - --list-services sammen med --permanent indstillingen til at bekræfte dine ændringer:

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

ssh dhcpv6-client

Syntaks for fjernelse af service er den samme som når du tilføjer en. Brug bare - --remove-service stedet for flag - --add-service :

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

Kommandoen ovenfor fjerner http tjenesten fra den permanente konfiguration af den offentlige zone.

Oprettelse af en ny FirewallD-service

Som vi allerede har nævnt, er standardtjenesterne gemt i biblioteket /usr/lib/firewalld/services . Den nemmeste måde at oprette en ny tjeneste er at kopiere en eksisterende servicefil til biblioteket /etc/firewalld/services , som er placeringen for brugeroprettede tjenester og ændre filindstillingerne.

For at oprette en servicedefinition for Plex Media Server kan du f.eks. Bruge SSH-servicefilen:

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

Åbn den nyligt oprettede fil plexmediaserver.xml , og ændre kortnavnet og beskrivelsen for tjenesten inden for og tags. Det vigtigste tag, du har brug for at ændre, er portmærket, der definerer det portnummer og den protokol, du vil åbne.

I det følgende eksempel åbner vi havne 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.

Gem filen og genindlæs FirewallD-tjenesten:

sudo firewall-cmd --reload

Du kan nu bruge plexmediaserver tjenesten i dine zoner, som alle andre tjenester.

Åbning af porte og kilde-IP'er

Firewalld giver dig også mulighed for hurtigt at aktivere al trafik fra en betroet IP-adresse eller på en bestemt port uden at oprette en servicedefinition.

Åbning af en kilde-IP

For at tillade al indgående trafik fra en bestemt IP-adresse (eller rækkevidde) skal du specificere zonen med indstillingen - zone og kilde-IP med indstillingen - --add-source .

For eksempel at tillade al indkommende trafik fra 192.168.1.10 i den public zone, skal du køre:

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

Gør den nye regel vedvarende:

sudo firewall-cmd --runtime-to-permanent

Bekræft ændringerne ved hjælp af følgende kommando:

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

192.168.1.10

Syntaks til fjernelse af en kilde-IP er den samme som når du tilføjer en. Brug bare - --remove-source stedet for - --add-source :

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

Åbning af en kildeport

For at tillade al indkommende trafik på en given port skal du specificere zonen med - zoneindstillingen og porten og protokollen med --add-port .

For at åbne port 8080 i den offentlige zone for den aktuelle session, du sårede, for eksempel:

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

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

Bekræft ændringerne:

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

8080

For at holde porten åben efter en genstart skal du tilføje reglen til de permanente indstillinger ved at køre den samme kommando ved hjælp af --permanent flag eller ved at udføre:

sudo firewall-cmd --runtime-to-permanent

Syntaks til fjernelse af en port er den samme som når du tilføjer en port. Brug bare - --remove-port stedet for --add-port .

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

Videresendelse af porte

For at videresende trafik fra en port til en anden port skal du først aktivere maskering til den ønskede zone ved hjælp af --add-masquerade . For eksempel at aktivere maskering af den external zone, skriv:

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

Videresend trafik fra en port til en anden på IP-adressen

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

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

Videresend trafik til en anden IP-adresse

I det 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 trafik til en anden server på en anden port

I det 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 at gøre fremadgående regel vedvarende skal du bruge:

sudo firewall-cmd --runtime-to-permanent

Konklusion

Du har lært, hvordan du konfigurerer og administrerer firewall-tjenesten på dit CentOS 8-system.

Sørg for at tillade alle indgående forbindelser, der er nødvendige for, at dit system fungerer korrekt, mens du begrænser alle unødvendige forbindelser.

firewall firewall centos sikkerhed