Android

Så här ställer du in en brandvägg med brandvägg på centos 7

Настройка firewall в CentOS 7 (firewalld)

Настройка firewall в CentOS 7 (firewalld)

Innehållsförteckning:

Anonim

En korrekt konfigurerad brandvägg är en av de viktigaste aspekterna av övergripande systemsäkerhet.

FirewallD är en komplett brandväggslösning som hanterar systemets iptablesregler och tillhandahåller ett D-Bus-gränssnitt för att använda dem. Från och med CentOS 7, ersätter FirewallD iptables som standardverktyg för brandväggshantering.

I den här tutorialen visar vi dig hur du ställer in en brandvägg med FirewallD i ditt CentOS 7-system och förklarar de grundläggande FirewallD-koncepten.

förutsättningar

Innan du börjar med den här tutorialen, se till att du är inloggad på din server med ett användarkonto med sudo-privilegier eller med root-användaren. Den bästa praxis är att köra administrativa kommandon som sudo-användare istället för root. Om du inte har en sudo-användare i ditt CentOS-system kan du skapa en genom att följa dessa instruktioner.

Grundläggande brandväggskoncept

FirewallD använder begreppen zoner och tjänster istället för iptables-kedjan och regler. Baserat på de zoner och tjänster du konfigurerar kan du styra vilken trafik som är tillåten eller tillåtet till och från systemet.

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

Brandväggszoner

Zoner är fördefinierade uppsättningar av regler som anger vilken trafik som ska tillåtas baserat på 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.

Firewalld Runtime och Permanent Settings

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

Runtime-konfigurationen är den faktiska körkonfigurationen och den är inte beständig vid omstarter. När Firewalld-tjänsten 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 permanenta måste du använda alternativet --permanent .

Installera och aktivera FirewallD

  1. Firewalld installeras som standard på CentOS 7, men om det inte är installerat på ditt system kan du installera paketet genom att skriva:

    sudo yum install firewalld

    Brandväggstjänsten är som standard inaktiverad. Du kan kontrollera brandväggsstatusen med:

    sudo firewall-cmd --state

    Så här startar du FirewallD-tjänsten och aktiverar den på starttyp:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Arbeta med brandväggszoner

Efter att ha aktiverat FirewallD-tjänsten för första gången ställs den public zonen in som en standardzon. Du kan visa 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

Som standard tilldelas alla nätverksgränssnitt standardzonen. Så här kontrollerar du vilka zoner som används av ditt nätverksgränssnitt (er):

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

Utgången ovan säger att både gränssnitt eth0 och eth1 tilldelas den offentliga zonen.

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 ställs in som standard, som används av både eth0 och eth1 gränssnitt. Anslutningarna relaterade till DHCP-klienten och SSH är också tillåtna.

sudo firewall-cmd --list-all-zones

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

Ändra zonet för ett gränssnitt

Du kan enkelt ändra gränssnittszonen genom att använda alternativet - --zone i kombination med --change-interface . Följande kommando tilldelar 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.

För att t.ex. ändra standardzonen till hem bör du köra följande kommando:

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

Verifiera ändringarna med:

sudo firewall-cmd --get-default-zone

home

Öppna en hamn eller tjänst

Med FirewallD kan du tillåta trafik för specifika portar 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

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

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 tjänst. --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.

Vad händer om du kör ett program som Plex Media Server för vilken det inte finns någon lämplig tjänst tillgänglig?

I situationer som dessa har du två alternativ. Du kan antingen öppna lämpliga portar eller definiera en ny FirewallD-tjänst.

Till exempel lyssnar Plex-servern på port 32400 och använder TCP, för att öppna porten i den offentliga zonen för den aktuella sessionen, använd --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp Protokoll kan vara antingen tcp eller udp .

För att verifiera att porten har lagts till framgång använder --list-ports alternativet - --list-ports :

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

32400/tcp

För att hålla porten 32400 öppen efter en omstart lägger du till regeln i de permanenta inställningarna genom att köra samma kommando med alternativet --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=32400/tcp

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 vi 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…

Vidarebefordra Port med Firewalld

För att vidarebefordra trafik från en port till en annan port eller adress, aktivera först maskering för den önskade zonen med hjälp av --add-masquerade . Till exempel för att aktivera maskerad för external zontyp:

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

  • Vidarebefordra trafik från en port till en annan på samma server

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 server

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

Skapa en regeluppsättning med FirewallD

I följande exempel visar vi hur du konfigurerar din brandvägg om du kör en webbserver. Vi antar att din server bara har ett gränssnitt eth0 , och du vill tillåta inkommande trafik endast på SSH-, HTTP- och

  1. Ändra standardzonen till dmz

    Vi kommer att använda dmz (demilitariserad) zon eftersom den som standard bara tillåter SSH-trafik. eth0 följande kommandon för att ändra standardzonen till dmz och tilldela den till eth0 gränssnittet:

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

    Öppna HTTP- och

    För att öppna HTTP- och HTTPS-portar läggs permanenta servicegler till dmz-zonen:

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

    Gör ändringarna omedelbart genom att ladda om brandväggen:

    sudo firewall-cmd --reload

    Verifiera ändringarna

    Så här kontrollerar du inställningarna för dmz-zonkonfiguration:

    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:

    Utgången ovan berättar att dmz är standardzonen, tillämpas på eth0 gränssnittet och ssh (22) http (80) och https (443) portar är öppna.

Slutsats

Du har lärt dig hur du konfigurerar och hanterar FirewallD-tjänsten på ditt CentOS-system.

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

brandvägg brandvägg iptables centos säkerhet