Lär dig Linux

Hantera nätverkssäkerhet med Firewalld med hjälp av kommandorader

Hantera nätverkssäkerhet med Firewalld med hjälp av kommandorader

Att upprätthålla nätverkssäkerhet är nyckeln för systemadministratörer och att konfigurera brandväggen via kommandoraden är en viktig färdighet att lära sig. Artikeln kommer att belysa hur du hanterar brandväggen med firewall-cmd i Linux-kommandoraden.

En brandvägg är i huvudsak programvara som du kan konfigurera för att styra inkommande och utgående nätverkstrafik. Brandväggar kan hindra andra användare från att använda nätverkstjänster i ett system du kör. De flesta Linux-system levereras med en standard brandvägg. Tidigare versioner av Linux-system har använt iptables som demon för paketfiltrering. Nyare versioner av Fedora, RHEL / CentOS, openSUSE levereras med Firewalld som standard brandväggsdemon. Du kan också installera Firewalld i Debian- och Ubuntu-distributioner.


Jag rekommenderar att du använder Firewalld istället för iptables. Ta inte bara mitt ord för det. Läs mer från vår omfattande guide om tillgängliga brandväggar med öppen källkod för ditt Linux-system.

Firewalld är en dynamisk demon för att hantera brandväggar med stöd för nätverks- eller brandväggzoner. Brandväggzoner definierar säkerhetsnivåer för nätverksgränssnitt, tjänster eller anslutningar. Systemadministratörer för nätverkssäkerhet har upptäckt att Firewalld fungerar bra med IPv4-, IPv6-, IP-uppsättningar och Ethernet-broar. För att hantera Firewalld kan du använda kommandot firewall-cmd terminal eller konfigurationsverktyget för brandväggskonfiguration.

Denna guide kommer att använda brandvägg-cmd kommando för att hantera nätverkssäkerhet, och vår testmiljö är Fedora Workstation 33.

Innan vi får allt tekniskt, låt oss lära oss några grundläggande nätverk.

Grunderna i nätverket

En dator ansluten till ett nätverk tilldelas en IP-adress som används för att dirigera data. Datorer har också portar i intervallet 0-65535, som fungerar som anslutningspunkter vid IP-adressen. Applikationer kan reservera specifika portar. Webbservrar reserverar vanligtvis port 80 för säker HTTP-kommunikation. I huvudsak är portområdena 0 - 1024 reserverade för välkända ändamål och systemet.

De två huvudsakliga internetöverföringsprotokollen (TCP & UDP) använder dessa portar under nätverkskommunikation. En värddator skapar en anslutning mellan en källans IP-adress och port (port 80 för osäker HTTP) och destinationsadressen och porten.

För att hantera nätverkssäkerhet kan brandväggsprogram tillåta eller blockera dataöverföring eller kommunikation baserat på regler som portar eller IP-adresser.

Installerar Firewalld

Fedora, RHEL / CentOS 7/8, openSUSE

Firewalld är installerat som standard i Fedora, RHEL / CentOS 7/8 och openSUSE. Om inte, kan du installera det med följande kommando:

# yum install firewalld -y
ELLER
#dnf installera firewalld -y

Debian / Ubuntu

Ubuntu-system levereras med den okomplicerade brandväggen som standard. För att kunna använda firewalld måste du aktivera universumsförvaret och inaktivera den okomplicerade brandväggen.

sudo add-apt-repository universum
sudo apt installera firewalld

Inaktivera okomplicerad brandvägg:

sudo systemctl inaktivera ufw

Aktivera firewalld vid starttid:

sudo systemctl aktivera - nu firewalld

Verifiera att Firewalld körs:

sudo brandvägg-cmd -stat
löpning

Brandväggszoner

Firewalld gör konfigurationen av din brandvägg enkel genom att skapa standardzoner. Zoner är en uppsättning regler som passar de dagliga behoven hos de flesta Linux-administratörer. En brandväggzon kan definiera betrodda eller nekade nivåer för tjänster och portar.

Exempel på standardzoner definierade av Fedora arbetsstation 33

cat / usr / lib / firewalld / zones / FedoraWorkstation.xml


Fedora arbetsstation
Oönskade inkommande nätverkspaket avvisas från port 1 till 1024, med undantag för utvalda nätverkstjänster. [brandvägg] Inkommande paket som är relaterade till utgående nätverksanslutningar accepteras. Utgående nätverksanslutningar är tillåtna.





Hämta din nuvarande zon:
Du kan använda - - bli aktiva zoner flagga för att kontrollera de aktuella zonerna i ditt system.

sudo firewall-cmd - get-active-zones
[sudo] lösenord för tuts:
FedoraWorkstation
gränssnitt: wlp3s0
libvirt
gränssnitt: virbr0

Standardzonen på Fedora Workstation 33 i FedoraWorkstation-zonen

Hämta standardzon & alla definierade zoner:

sudo firewall-cmd --get-default-zone
[sudo] lösenord för tuts:
FedoraWorkstation
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zones
FedoraServer Fedora Workstation blockera dmz släppa externt hem internt libvirt nm-delat offentligt pålitligt arbete

Lista tjänster:

Du kan få de tjänster som brandväggen tillåter andra system att använda med  - -listtjänster flagga.

[tuts @ fosslinux ~] $ sudo firewall-cmd - list-services
dhcpv6-client mdns samba-client ssh

På Fedora Linux 33 tillåter brandväggen åtkomst till fyra tjänster (dhcpv6-client mdns samba-client ssh) med välkända portnummer.

Lista brandväggsportinställningar:
Du kan använda - -listportar flagga för att se andra portinställningar i vilken zon som helst.

tuts @ fosslinux ~] $ sudo firewall-cmd --list-ports --zone = FedoraWorkstation
[sudo] lösenord för tuts:
1025-65535 / udp 1025-65535 / tcp

Vi har angett vilken zon som ska kontrolleras med alternativet --zone = FedoraWorkstaion.

Hantera zoner, hamnar och tjänster

Brandväggskonfigurationer kan konfigureras antingen som körtid eller permanent. Alla brandvägg-cmd-åtgärder kvarstår bara tills datorn eller brandväggen startas om. Du måste skapa permanenta inställningar med -permanent-flaggan.

Skapa en zon

För att skapa en zon måste du använda - -ny zon flagga.
Exempel:
Skapa en ny permanent zon som heter fosscorp:

[tuts @ fosslinux ~] $ sudo firewall-cmd - new-zone fosscorp --permanent
[sudo] lösenord för tuts:
Framgång

Ladda om brandväggsreglerna för att aktivera den nya zonen:

[tuts @ fosslinux ~] $ sudo firewall-cmd --reload

Lägg till ssh-tjänst i fosscorp-zonen så att du kan komma åt den på distans:

[tuts @ fosslinux ~] $ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] lösenord för tuts:
Framgång

Bekräfta att din nya zon 'fosscorp' är aktiv:

[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation blockera dmz släpp externt fosscorp hemintern libvirt nm-delat offentligt pålitligt arbete

Din nya zon fosscorp är nu aktiv och den avvisar alla inkommande anslutningar utom SSH-trafik.

Använd - -ändra gränssnitt flagga för att göra zonen fosscorp till den aktiva och standardzonen för ett nätverksgränssnitt (wlp3s0) som du vill skydda:

[tuts @ fosslinux ~] $ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp - permanent
Gränssnittet är under [brandvägg] kontroll av NetworkManager och ställer in zonen till "fosscorp".
Framgång

Om du vill ställa in fosscorp som standard- och primärzon, kör du följande kommando:

[tuts @ fosslinux ~] $ sudo firewall-cmd --set-default fosscorp
Framgång

Visa de zoner som för närvarande är tilldelade till varje gränssnitt med hjälp av - -bli aktiva zoner flagga:

[tuts @ fosslinux ~] $ sudo firewall-cmd - get-active-zones
fosscorp
gränssnitt: wlp3s0

Lägg till och ta bort tjänster:

Ett snabbt sätt att tillåta trafik genom din brandvägg är att lägga till en fördefinierad tjänst.

Lista tillgängliga fördefinierade tjänster:

tuts @ fosslinux ~] $ sudo firewall-cmd --get-services
[sudo] lösenord för tuts:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd revision bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client
[…]

Avblockera en fördefinierad tjänst

Du kan tillåta HTTPS-trafik (eller någon annan fördefinierad tjänst) genom din brandvägg med hjälp av - -tilläggstjänst flagga.

[tuts @ fosslinux ~] $ sudo firewall-cmd --add-service https --permanent
Framgång
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload

Du kan också ta bort tjänsten med - -ta bort service flagga:

[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-service https --permanent
Framgång
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload

Lägg till och ta bort portar

Du kan också lägga till ett portnummer och en prototyp direkt med flaggan -add-port. Att lägga till ett portnummer direkt kan vara till nytta när en fördefinierad tjänst inte finns.

Exempel:
Du kan lägga till icke-standard port 1717 för SSH till din anpassade zon med följande kommando:

[tuts @ fosslinux ~] $ sudo firewall-cmd --add-port 1717 / tcp --permanent
[sudo] lösenord för tuts:
Framgång
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload

Ta bort porten med alternativet -remove-port flagg:

[tuts @ fosslinux ~] $ sudo firewall-cmd --remove-port 1717 / tcp --permanent
Framgång
[tuts @ fosslinux ~] $ sudo brandvägg-cmd -reload

Du kan också ange en zon för att lägga till eller ta bort en port genom att lägga till -zonflaggan i kommandot:
Lägg till port 1718 för TCP-anslutning till FedoraWorstation-zonen:

[tuts @ fosslinux ~] $ sudo firewall-cmd --zone = FedoraWorkstation --permanent --add-port = 1718 / tcp
Framgång
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
Framgång

Bekräfta om ändringarna har trätt i kraft:

[tuts @ fosslinux ~] $ sudo firewall-cmd - list-all
FedoraWorkstation (aktiv)
mål: standard
icmp-block-inversion: nej
gränssnitt: wlp3s0
källor:
tjänster: dhcpv6-client mdns samba-client ssh
portar: 1025-65535 / udp 1025-65535 / tcp 1718 / tcp
protokoll:
maskerad: nej
framåt-portar:
källportar:
icmp-block:
rika regler:

Obs: Under portar har vi lagt till portnummer 1718 för att tillåta TCP-trafik.

Du kan ta bort port 1718 / tcp genom att köra följande kommando:

[tuts @ fosslinux ~] $ sudo firewall-cmd --zone = FedoraWorkstation --permanent --remove-port = 1718 / tcp
Framgång
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload
Framgång

Obs! Om du vill göra ändringarna permanenta måste du lägga till - -permanent flagga till dina kommandon.

Sammanfattning

Firewalld är ett utmärkt verktyg för att hantera din nätverkssäkerhet. Det bästa sättet att öka dina systemadministrativa färdigheter är att få praktisk erfarenhet. Jag rekommenderar starkt att du installerar Fedora i din virtuella virtuella maskin (VM) eller i Boxes för att experimentera med alla tillgängliga brandvägg-cmd-funktioner. Du kan lära dig mer brandvägg-cmd-funktioner från den officiella Firewalld-hemsidan.

5 bästa arkadspel för Linux
Numera är datorer seriösa maskiner som används för spel. Om du inte kan få den nya poängen vet du vad jag menar. I det här inlägget kommer du att känn...
Strid om Wesnoth 1.13.6 Utveckling släppt
Strid om Wesnoth 1.13.6 släpptes förra månaden, är den sjätte utvecklingsversionen i 1.13.x-serien och den levererar ett antal förbättringar, framför ...
Så här installerar du League Of Legends på Ubuntu 14.04
Om du gillar League of Legends är det här en möjlighet för dig att testa League of Legends. Observera att LOL stöds på PlayOnLinux om du är en Linux-a...