Android

Hur man konfigurerar och hanterar brandväggen på centos 8

How to install CentOS/RHEL 8 with LSI SAS2008 controller | ELRepo driver disk

How to install CentOS/RHEL 8 with LSI SAS2008 controller | ELRepo driver disk

Innehållsförteckning:

Anonim

En brandvägg är en metod för övervakning och filtrering av inkommande och utgående nätverkstrafik. Det fungerar genom att definiera en uppsättning säkerhetsregler som avgör om specifik trafik ska tillåtas eller blockeras. En korrekt konfigurerad brandvägg är en av de viktigaste aspekterna av övergripande systemsäkerhet.

CentOS 8 levereras med en brandväggsdemon med namnet brandvägg. Det är en komplett lösning med ett D-Bus-gränssnitt som gör att du kan hantera systemets brandvägg dynamiskt.

I denna handledning kommer vi att prata om hur du konfigurerar och hanterar brandväggen på CentOS 8. Vi förklarar också de grundläggande FirewallD-koncepten.

förutsättningar

För att konfigurera brandväggstjänsten måste du vara inloggad som root eller användare med sudo-behörigheter.

Grundläggande brandväggskoncept

brandvägg använder begreppen zoner och tjänster. Baserat på de zoner och tjänster du konfigurerar kan du styra vilken trafik som är tillåten eller blockerad till och från systemet.

Firewalld kan konfigureras och hanteras med hjälp av kommandoradsverktyget firewall-cmd .

I CentOS 8 ersätts iptables av nftables som standard brandväggsbackend för firewalldemonet.

Brandväggszoner

Zoner är fördefinierade uppsättningar av regler som anger nivån på förtroende för de nätverk som din dator är ansluten till. Du kan tilldela nätverksgränssnitt och källor till en zon.

Nedan visas de zoner som tillhandahålls av FirewallD beställda enligt zonens förtroendetivå från otillit till tillförlitlig:

  • släpp: Alla inkommande anslutningar tappas utan meddelande. Endast utgående anslutningar är tillåtna. block: Alla inkommande anslutningar avvisas med ett icmp-host-prohibited meddelande för IPv4 och icmp6-adm-prohibited för IPv6n. Endast utgående anslutningar är tillåtna. offentligt: För användning i osäkra allmänna utrymmen. Du litar inte på andra datorer i nätverket, men du kan tillåta utvalda inkommande anslutningar. extern: För användning i externa nätverk med NAT-maskerad aktiverad när ditt system fungerar som en gateway eller router. Endast valda inkommande anslutningar är tillåtna. intern: För användning i interna nätverk när ditt system fungerar som en gateway eller router. Andra system i nätverket är generellt betrodda. Endast valda inkommande anslutningar är tillåtna. dmz: Används för datorer i din demilitariserade zon som har begränsad åtkomst till resten av ditt nätverk. Endast valda inkommande anslutningar är tillåtna. arbete: Används för arbetsmaskiner. Andra datorer i nätverket är allmänt betrodda. Endast valda inkommande anslutningar är tillåtna. hem: Används för hemmamaskiner. Andra datorer i nätverket är allmänt betrodda. Endast valda inkommande anslutningar är tillåtna. betrodd: Alla nätverksanslutningar accepteras. Lita på alla datorer i nätverket.

Brandväggstjänster

Firewalld-tjänster är fördefinierade regler som gäller inom en zon och definierar nödvändiga inställningar för att tillåta inkommande trafik för en viss tjänst. Med tjänsterna kan du enkelt utföra flera uppgifter i ett enda steg.

Till exempel kan tjänsten innehålla definitioner om att öppna portar, vidarebefordra trafik och mer.

Firewalld Runtime och Permanent Settings

Firewalld använder två separata konfigurationsuppsättningar, runtime och permanent konfiguration.

Runtime-konfigurationen är den faktiska körkonfigurationen och kvarstår inte vid omstart. När brandväggsdemonet startar laddar den den permanenta konfigurationen, som blir runtime-konfigurationen.

Som standard, när ändringar görs i Firewalld-konfigurationen med hjälp av firewall-cmd , tillämpas ändringarna på runtime-konfigurationen. För att göra ändringarna permanent ska du lägga till --permanent alternativet till kommandot.

För att tillämpa ändringarna i båda konfigurationsuppsättningarna kan du använda en av följande två metoder:

  1. Ändra runtime-konfigurationen och gör den permanent:

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

    Ändra den permanenta konfigurationen och ladda om brandväggsdemonet:

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

Aktivera brandväggD

På CentOS 8 är brandvägg installerad och aktiverad som standard. Om det av någon anledning inte är installerat på ditt system kan du installera och starta demonen genom att skriva:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Du kan kontrollera statusen för brandväggstjänsten med:

sudo firewall-cmd --state

Om brandväggen är aktiverad bör kommandot skrivas ut. Annars ser du att det not running .

Brandväggszoner

Standardzonen är den som används för allt som inte uttryckligen tilldelas en annan zon.

Du kan se standardzonen genom att skriva:

sudo firewall-cmd --get-default-zone

public

Om du vill få en lista över alla tillgängliga zoner skriver du:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Så här ser du de aktiva zonerna och nätverksgränssnitten som tilldelats dem:

sudo firewall-cmd --get-active-zones

Utgången nedan visar att gränssnitten eth0 och eth1 tilldelas den public zonen:

public interfaces: eth0 eth1

Du kan skriva ut zonkonfigurationsinställningarna 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:

Från utgången ovan kan vi se att den offentliga zonen är aktiv och använder standardmålet, som är REJECT . Utgången visar också att zonen används av eth0 och eth1 och tillåter DHCP-klient- och SSH-trafik.

sudo firewall-cmd --list-all-zones

Kommandot skriver ut en enorm lista med inställningarna för alla tillgängliga zoner.

Ändra zonmålet

Målet definierar standardbeteendet för zonen för inkommande trafik som inte anges. Det kan ställas in på ett av följande alternativ: default , ACCEPT , REJECT och DROP .

För att ställa in --zone mål anger du zonen med - --zone och målet med --set-target .

För att t.ex. ändra målen för den public zonen till DROP skulle du köra:

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

Tilldela ett gränssnitt till en annan zon

Du kan skapa specifika uppsättningar regler för olika zoner och tilldela olika gränssnitt till dem. Detta är särskilt användbart när du har flera gränssnitt på din maskin.

För att tilldela ett gränssnitt till en annan zon, ange zonen med alternativet - --zone och gränssnittet med --change-interface .

Till exempel tilldelar följande kommando eth1 gränssnittet till eth1 :

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

Verifiera ändringarna genom att skriva:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Ändra standardzon

För att ändra standardzon använder du --set-default-zone zone följt av namnet på den zon du vill göra som standard.

Till exempel för att ändra standardzonen till home kör du följande kommando:

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

Verifiera ändringarna med:

sudo firewall-cmd --get-default-zone

home

Skapa nya zoner

Firewalld låter dig också skapa dina egna zoner. Detta är praktiskt när du vill skapa regler per applikation.

I följande exempel skapar vi en ny zon med namnet memcached , öppnar porten 11211 och tillåter åtkomst endast från IP-adressen 192.168.100.30 :

  1. Skapa zonen:

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

    Lägg till reglerna i 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

    Ladda om brandväggsdemon för att aktivera ändringarna:

    sudo firewall-cmd --reload

Firewalld-tjänster

Med brandvägg kan du tillåta trafik för specifika portar och / eller källor baserat på fördefinierade regler som kallas tjänster.

Så här får du en lista över alla tillgängliga standardtjänster:

sudo firewall-cmd --get-services

Du kan hitta mer information om varje tjänst genom att öppna den tillhörande.xml-filen i /usr/lib/firewalld/services . Till exempel definieras HTTP-tjänsten så här:

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

För att tillåta inkommande HTTP-trafik (port 80) för gränssnitt i den offentliga zonen, bara för den aktuella sessionen (körtidskonfiguration):

sudo firewall-cmd --zone=public --add-service=http Om du modifierar standardzonen kan du --zone alternativet - --zone .

För att verifiera att tjänsten har lagts till framgång använder --list-services alternativet - --list-services :

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

ssh dhcpv6-client

För att hålla porten 80 öppen efter en omstart, kör samma kommando igen med alternativet --permanent , eller kör:

sudo firewall-cmd --runtime-to-permanent

Använd - --list-services tillsammans med --permanent alternativet för att verifiera dina ändringar:

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

ssh dhcpv6-client

Syntaxen för att ta bort tjänsten är densamma som när du lägger till en. --remove-service istället för --add-service :

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

Kommandot ovan tar bort http tjänsten från den permanenta konfigurationen av den offentliga zonen.

Skapa en ny FirewallD-tjänst

Som vi redan nämnt lagras standardtjänsterna i /usr/lib/firewalld/services . Det enklaste sättet att skapa en ny tjänst är att kopiera en befintlig servicefil till katalogen /etc/firewalld/services , som är platsen för användarskapade tjänster och ändra filinställningarna.

För att skapa en tjänstdefinition för Plex Media Server kan du till exempel använda SSH-servicefilen:

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

Öppna den nyligen skapade filen plexmediaserver.xml och ändra det korta namnet och beskrivningen för tjänsten inom och taggar. Den viktigaste taggen du behöver ändra är porttaggen, som definierar portnumret och protokollet du vill öppna.

I följande exempel öppnar vi portarna 1900 UDP och 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.

Spara filen och ladda om FirewallD-tjänsten:

sudo firewall-cmd --reload

Du kan nu använda plexmediaserver tjänsten i dina zoner samma som alla andra tjänster.

Öppnar portar och IP-källor

Firewalld låter dig också snabbt aktivera all trafik från en betrodd IP-adress eller från en specifik port utan att skapa en tjänstdefinition.

Öppna en käll-IP

Om du vill tillåta all inkommande trafik från en specifik IP-adress (eller intervall) anger du zonen med alternativet - --zone och --add-source IP med --add-source .

För att till exempel tillåta all inkommande trafik från 192.168.1.10 i den public zonen, kör:

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

Gör den nya regeln ihållande:

sudo firewall-cmd --runtime-to-permanent

Verifiera ändringarna med följande kommando:

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

192.168.1.10

Syntaxen för att ta bort en IP-källa är densamma som när du lägger till en. --remove-source istället för --add-source :

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

Öppna en källport

För att tillåta all inkommande trafik på en given port anger du zonen med alternativet - --zone och porten och protokollet med --add-port .

Till exempel för att öppna port 8080 i den offentliga zonen för den aktuella sessionen som du löpte:

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

Protokollet kan vara antingen tcp , udp , sctp eller dccp .

Verifiera ändringarna:

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

8080

För att hålla porten öppen efter en omstart lägger du till regeln i de permanenta inställningarna genom att köra samma kommando med --permanent flagga eller genom att utföra:

sudo firewall-cmd --runtime-to-permanent

Syntaxen för att ta bort en port är densamma som när du lägger till en port. --remove-port istället för --add-port .

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

Vidarebefordra hamnar

För att vidarebefordra trafik från en port till en annan port, aktivera först maskerad för önskad zon med --add-masquerade . Skriv till exempel för att aktivera maskerad för den external zonen:

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

Vidarebefordra trafik från en port till en annan på IP-adressen

I följande exempel vidarebefordrar vi trafiken från port 80 till port 8080 på samma server:

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

Vidarebefordra trafik till en annan IP-adress

I följande exempel vidarebefordrar vi trafiken från port 80 till 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

Vidarebefordra trafik till en annan server på en annan port

I följande exempel vidarebefordrar vi trafiken från port 80 till 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

För att göra framåtregeln beständig använder du:

sudo firewall-cmd --runtime-to-permanent

Slutsats

Du har lärt dig hur du konfigurerar och hanterar brandväggstjänsten på ditt CentOS 8-system.

Se till att tillåta alla inkommande anslutningar som är nödvändiga för att ditt system ska fungera, samtidigt som du begränsar alla onödiga anslutningar.

brandvägg brandvägg centos säkerhet