Lær Linux

Administrer netværkssikkerhed med Firewalld ved hjælp af kommandolinjer

Administrer netværkssikkerhed med Firewalld ved hjælp af kommandolinjer

Opretholdelse af netværkssikkerhed er nøglen til systemadministratorer, og det er en vigtig færdighed at lære at konfigurere firewall via kommandolinjen. Artiklen vil fremhæve, hvordan du styrer firewallen med firewall-cmd i Linux-kommandolinjen.

En firewall er i det væsentlige software, som du kan konfigurere til at kontrollere indgående og udgående netværkstrafik. Firewalls kan forhindre andre brugere i at bruge netværkstjenester på et system, du kører. De fleste Linux-systemer leveres med en standard firewall. Tidligere versioner af Linux-systemer har brugt iptables som dæmonen for pakkefiltrering. Nyere versioner af Fedora, RHEL / CentOS, openSUSE sendes med Firewalld som standard firewall-dæmon. Du kan også installere Firewalld i distancer fra Debian og Ubuntu.


Jeg anbefaler, at du bruger Firewalld i stedet for iptables. Tag ikke bare mit ord for det. Lær mere fra vores omfattende guide til de tilgængelige open source-firewalls til dit Linux-system.

Firewalld er en dynamisk dæmon til styring af firewalls med understøttelse af netværk eller firewallzoner. Firewall-zoner definerer netværkssikkerhedstillidsniveauer for netværksgrænseflader, tjenester eller forbindelser. Netværkssikkerhedssystemadministratorer har fundet Firewalld til at fungere godt med IPv4, IPv6, IP-sæt og Ethernet-broer. For at administrere Firewalld kan du bruge firewall-cmd terminalkommando eller firewall-config GUI-konfigurationsværktøj.

Denne vejledning bruger firewall-cmd kommando til at administrere netværkssikkerhed, og vores testmiljø er Fedora Workstation 33.

Lad os lære et par netværksbasics, inden vi bliver alle tekniske.

Grundlæggende om netværk

En computer tilsluttet et netværk tildeles en IP-adresse, der bruges til routing af data. Computere har også porte i området 0-65535, der fungerer som forbindelsespunkter på IP-adressen. Applikationer reserverer muligvis specifikke porte. Webservere reserverer typisk port 80 til sikker HTTP-kommunikation. I det væsentlige er portintervaller 0 - 1024 forbeholdt velkendte formål og systemet.

De to vigtigste internetoverførselsprotokoller (TCP & UDP) bruger disse porte under netværkskommunikation. En værtscomputer opretter en forbindelse mellem en kilde-IP-adresse og port (port 80 for ikke-sikker HTTP) og destinationsadressen og porten.

For at administrere netværkssikkerhed kan firewallsoftware tillade eller blokere dataoverførsel eller kommunikation baseret på regler som porte eller IP-adresser.

Installation af Firewalld

Fedora, RHEL / CentOS 7/8, openSUSE

Firewalld er som standard installeret i Fedora, RHEL / CentOS 7/8 og openSUSE. Hvis ikke, kan du installere det ved hjælp af følgende kommando:

# yum installer firewalld -y
ELLER
#dnf installer firewalld -y

Debian / Ubuntu

Ubuntu-systemer leveres som standard med den ukomplicerede firewall. For at bruge firewalld skal du aktivere universets lager og deaktivere den ukomplicerede firewall.

sudo add-apt-repository univers
sudo apt installere firewalld

Deaktiver ukompliceret firewall:

sudo systemctl deaktiver ufw

Aktivér firewalld ved opstartstid:

sudo systemctl aktiv -now firewalld

Bekræft, at Firewalld kører:

sudo firewall-cmd -tilstand
kører

Firewall-zoner

Firewalld gør konfigurationen af ​​din firewall enkel ved at oprette standardzoner. Zoner er et sæt regler, der passer til de daglige behov hos de fleste Linux-administratorer. En firewallzone kan definere pålidelige eller nægtede niveauer for tjenester og porte.

Eksempel på standardzoner defineret af Fedora-arbejdsstation 33

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


Fedora arbejdsstation
Uopfordrede indgående netværkspakker afvises fra port 1 til 1024 undtagen udvalgte netværkstjenester. [firewall] Indgående pakker, der er relateret til udgående netværksforbindelser, accepteres. Udgående netværksforbindelser er tilladt.





Få din nuværende zone:
Du kan bruge - - få-aktive-zoner flag for at kontrollere de aktuelt aktive zoner i dit system.

sudo firewall-cmd - get-active-zoner
[sudo] adgangskode til tuts:
FedoraWorkstation
grænseflader: wlp3s0
libvirt
grænseflader: virbr0

Standardzonen på Fedora Workstation 33 i FedoraWorkstation-zonen

Hent standardzone & alle definerede zoner:

sudo firewall-cmd --get-standard-zone
[sudo] adgangskode til tuts:
FedoraWorkstation
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zoner
FedoraServer Fedora Workstation blok dmz drop eksternt hjem internt libvirt nm-delt offentligt betroet arbejde

Liste over tjenester:

Du kan få de tjenester, firewallen giver andre systemer adgang til ved hjælp af  - -liste-tjenester flag.

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

På Fedora Linux 33 giver firewallen adgang til fire tjenester (dhcpv6-client mdns samba-client ssh) med velkendte portnumre.

Liste over firewallportindstillinger:
Du kan bruge - -liste-porte flag for at se andre portindstillinger i enhver zone.

tuts @ fosslinux ~] $ sudo firewall-cmd --list-porte --zone = FedoraWorkstation
[sudo] adgangskode til tuts:
1025-65535 / udp 1025-65535 / tcp

Vi har specificeret den zone, der skal kontrolleres, ved hjælp af indstillingen - -zone = FedoraWorkstaion.

Håndtering af zoner, porte og tjenester

Firewall-konfigurationer kan konfigureres som enten runtime eller permanent. Alle firewall-cmd-handlinger varer kun, indtil computeren eller firewallen genstarter. Du skal oprette permanente indstillinger med -permanent-flag.

Opret en zone

For at oprette en zone skal du bruge - -ny zone flag.
Eksempel:
Opret en ny permanent zone kaldet fosscorp:

[tuts @ fosslinux ~] $ sudo firewall-cmd - ny-zone fosscorp --permanent
[sudo] adgangskode til tuts:
succes

Genindlæs firewallreglerne for at aktivere den nye zone:

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

Tilføj ssh-tjeneste til fosscorp-zonen, så du kan få adgang til den eksternt:

[tuts @ fosslinux ~] $ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] adgangskode til tuts:
succes

Bekræft, at din nye zone 'fosscorp' er aktiv:

[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zoner
FedoraServer FedoraWorkstation blok dmz drop ekstern fosscorp internt internt libvirt nm-delt offentligt betroet arbejde

Din nye zone fosscorp er nu aktiv, og den afviser alle indgående forbindelser undtagen SSH-trafik.

Brug - -skift-interface flag for at gøre zonen fosscorp til den aktive og standardzone for et netværksinterface (wlp3s0), du vil beskytte:

[tuts @ fosslinux ~] $ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp - permanent
Interfacet er under [firewall] kontrol af NetworkManager, der indstiller zone til 'fosscorp'.
succes

Hvis du vil indstille fosscorp som standard- og primærzone, skal du køre følgende kommando:

[tuts @ fosslinux ~] $ sudo firewall-cmd --set-default fosscorp
succes

Se de zoner, der aktuelt er tildelt til hver grænseflade ved hjælp af - -få-aktive-zoner flag:

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

Tilføj og fjern tjenester:

En hurtig måde at tillade trafik gennem din firewall er at tilføje en foruddefineret tjeneste.

Liste over tilgængelige foruddefinerede tjenester:

tuts @ fosslinux ~] $ sudo firewall-cmd --get-services
[sudo] adgangskode til tuts:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc
bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit kondorsamler ctdb dhcp dhcpv6 dhcpv6-klient
[…]

Fjern blokering af en foruddefineret tjeneste

Du kan tillade HTTPS-trafik (eller enhver anden foruddefineret tjeneste) gennem din firewall ved hjælp af - -tilføjelsestjeneste flag.

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

Du kan også fjerne tjenesten med - -fjern service flag:

[tuts @ fosslinux ~] $ sudo firewall-cmd - fjern-service https --permanent
succes
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload

Tilføj og fjern porte

Du kan også tilføje et portnummer og en prototype direkte med -add-port-flag. Tilføjelse af et portnummer direkte kan være nyttigt, når en foruddefineret tjeneste ikke findes.

Eksempel:
Du kan tilføje det ikke-standardiserede havn 1717 for SSH til din brugerdefinerede zone ved hjælp af følgende kommando:

[tuts @ fosslinux ~] $ sudo firewall-cmd --add-port 1717 / tcp --permanent
[sudo] adgangskode til tuts:
succes
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload

Fjern porten ved hjælp af indstillingen -remove-port flag:

[tuts @ fosslinux ~] $ sudo firewall-cmd - fjern-port 1717 / tcp --permanent
succes
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload

Du kan også angive en zone, der skal tilføjes eller fjerne en port ved at tilføje -zone-flag i kommandoen:
Tilføj port 1718 til TCP-forbindelse til FedoraWorstation-zonen:

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

Bekræft, om ændringerne er trådt i kraft:

[tuts @ fosslinux ~] $ sudo firewall-cmd - list-all
FedoraWorkstation (aktiv)
mål: standard
icmp-blok-inversion: nej
grænseflader: wlp3s0
kilder:
tjenester: dhcpv6-klient mdns samba-klient ssh
porte: 1025-65535 / udp 1025-65535 / tcp 1718 / tcp
protokoller:
maskerade: nej
fremadgående porte:
kilde-porte:
icmp-blokke:
rige regler:

Bemærk: Under porte har vi tilføjet havnenummer 1718 for at tillade TCP-trafik.

Du kan fjerne port 1718 / tcp ved at køre følgende kommando:

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

Bemærk: Hvis du vil gøre dine ændringer permanente, skal du tilføje - -permanent flag til dine kommandoer.

Resumé

Firewalld er et fantastisk værktøj til at styre din netværkssikkerhed. Den bedste måde at øge dine systemadministratoriske færdigheder på er at få praktisk erfaring. Jeg kan varmt anbefale at installere Fedora i din yndlings virtuelle maskine (VM) eller i kasser for at eksperimentere med alle tilgængelige firewall-cmd-funktioner. Du kan lære flere firewall-cmd-funktioner fra den officielle Firewalld-startside.

Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...
Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...