Android

Sådan konfigureres en firewall med firewall på centos 7

How to internet configuration on CISCO router ( PPPoE , DHCP , NAT )

How to internet configuration on CISCO router ( PPPoE , DHCP , NAT )

Indholdsfortegnelse:

Anonim

En korrekt konfigureret firewall er en af ​​de vigtigste aspekter af den generelle systemsikkerhed.

FirewallD er en komplet firewall-løsning, der administrerer systemets iptables-regler og giver en D-Bus-interface til at betjene dem. Fra CentOS 7 erstatter FirewallD iptables som standard firewall-styringsværktøj.

I denne tutorial viser vi dig, hvordan du opretter en firewall med FirewallD på dit CentOS 7-system og forklarer dig de grundlæggende FirewallD-koncepter.

Forudsætninger

Inden du begynder med denne tutorial, skal du sørge for, at du er logget ind på din server med en brugerkonto med sudo-privilegier eller med rodbrugeren. Den bedste praksis er at køre administrative kommandoer som en sudo-bruger i stedet for root. Hvis du ikke har en sudo-bruger på dit CentOS-system, kan du oprette en ved at følge disse instruktioner.

Grundlæggende Firewalld-koncepter

FirewallD bruger koncepterne zoner og tjenester i stedet for iptables-kæde og regler. Baseret på de zoner og tjenester, du konfigurerer, kan du kontrollere, hvad trafik er tilladt eller ikke tilladt til og fra systemet.

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

Firewalld Zoner

Zoner er foruddefinerede regelsæt, der specificerer, hvilken trafik der skal tillades, baseret på tillidsniveauet på 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.

Firewalld kørselstid og permanente indstillinger

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

Runtime-konfigurationen er den aktuelle løbskonfiguration, og den er ikke vedvarende ved genstarter. Når Firewalld-tjenesten 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 permanente skal du bruge indstillingen --permanent .

Installation og aktivering af firewallD

  1. Firewalld er som standard installeret på CentOS 7, men hvis den ikke er installeret på dit system, kan du installere pakken ved at skrive:

    sudo yum install firewalld

    Firewalld-service er som standard deaktiveret. Du kan kontrollere firewall-status med:

    sudo firewall-cmd --state

    Sådan starter du FirewallD-tjenesten og aktiverer den på starttype:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Arbejde med firewallzoner

Efter at have aktiveret FirewallD-tjenesten for første gang, indstilles den public zone som en standardzone. 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

Som standard tildeles alle netværksgrænseflader standardzonen. Sådan kontrolleres, hvilke zoner der bruges af din netværksgrænsefladetype (r):

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

Outputet ovenfor fortæller os, at både grænseflader eth0 og eth1 er tildelt den offentlige zone.

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 indstillet som standard, brugt af både eth0 og eth1 grænseflader. Forbindelserne i forbindelse med DHCP-klienten og SSH er også tilladt.

sudo firewall-cmd --list-all-zones

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

Ændring af zoneets grænseflade

Du kan nemt ændre grænsefladszonen ved at bruge indstillingen --change-interface i kombination med indstillingen - --change-interface . Følgende kommando tildeler 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 hjemmet skal 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

Åbning af en havn eller tjeneste

Med FirewallD kan du tillade trafik for specifikke porte 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

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

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 tjeneste. Brug bare - --remove-service stedet for --add-service :

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

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

Hvad hvis du kører en applikation som Plex Media Server, som der ikke er nogen passende service til rådighed for?

I situationer som disse har du to muligheder. Du kan enten åbne de relevante porte eller definere en ny FirewallD-tjeneste.

For eksempel lytter Plex Server på port 32400 og bruger TCP til at åbne porten i den offentlige zone til den aktuelle session, brug indstillingen --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp Protokoller kan være enten tcp eller udp .

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

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

32400/tcp

For at holde porten 32400 å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 indstillingen.

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=32400/tcp

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 vi for eksempel 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.

Videresend havn med firewall

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

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

  • Videresend trafik fra en port til en anden på den samme server

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 server

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

Oprettelse af et regelsæt med FirewallD

I det følgende eksempel viser vi, hvordan du konfigurerer din firewall, hvis du kørte en webserver. Vi antager, at din server kun har en interface eth0 , og du vil kun tillade indgående trafik på SSH-, HTTP- og

  1. Skift standardzone til dmz

    Vi vil bruge dmz (demilitariseret) zone, fordi det som standard kun tillader SSH-trafik. For at ændre standardzonen til dmz og tildele den til eth0 interface skal du køre følgende kommandoer:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0 sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    Åbn HTTP- og

    For at åbne HTTP- og HTTPS-porte tilføjes permanente serviceregler til dmz-zonen:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    Foretag ændringerne med det samme ved at genindlæse firewall:

    sudo firewall-cmd --reload

    Bekræft ændringerne

    Sådan kontrolleres indstillingerne for dmz-zone-konfiguration:

    sudo firewall-cmd --zone=dmz --list-all

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    Outputet ovenfor fortæller os, at dmz er standardzonen, anvendes på eth0 interface og ssh (22) http (80) og https (443) -porte er åbne.

Konklusion

Du har lært, hvordan du konfigurerer og administrerer FirewallD-tjenesten på dit CentOS-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 iptables centos sikkerhed