Lær Linux

Administrer nettverkssikkerhet med Firewalld ved hjelp av kommandolinjer

Administrer nettverkssikkerhet med Firewalld ved hjelp av kommandolinjer

Å opprettholde nettverkssikkerhet er nøkkelen for systemadministratorer og å konfigurere brannmuren via kommandolinjen er en viktig ferdighet å lære. Artikkelen vil fremheve hvordan du administrerer brannmuren med brannmur-cmd i Linux-kommandolinjen.

En brannmur er egentlig programvare som du kan konfigurere for å kontrollere innkommende og utgående nettverkstrafikk. Brannmurer kan forhindre andre brukere i å bruke nettverkstjenester på et system du kjører. De fleste Linux-systemer leveres med en standard brannmur. Tidligere versjoner av Linux-systemer har brukt iptables som demon for pakkefiltrering. Nyere versjoner av Fedora, RHEL / CentOS, openSUSE leveres med Firewalld som standard brannmurdememon. Du kan også installere Firewalld i distribusjoner fra Debian og Ubuntu.


Jeg anbefaler at du bruker Firewalld i stedet for iptables. Ikke bare ta ordet mitt for det. Lær mer fra vår omfattende guide om tilgjengelige åpen kildekode-brannmurer for Linux-systemet ditt.

Firewalld er en dynamisk demon for å administrere brannmurer med støtte for nettverks- eller brannmursoner. Brannmurssoner definerer tillitsnivåer for nettverksgrensesnitt, tjenester eller tilkoblinger. Nettverkssikkerhetssystemadministratorer har funnet Firewalld å fungere bra med IPv4, IPv6, IP-sett og Ethernet-broer. For å administrere Firewalld kan du bruke firewall-cmd terminal-kommandoen eller GUI-konfigurasjonsverktøyet for brannmurkonfigurasjon.

Denne guiden vil bruke brannmur-cmd kommando for å administrere nettverkssikkerhet, og vårt testmiljø vil være Fedora Workstation 33.

Før vi blir tekniske, la oss lære noen grunnleggende nettverk.

Grunnleggende om nettverk

En datamaskin som er koblet til et nettverk, tildeles en IP-adresse som brukes til ruting av data. Datamaskiner har også porter i området 0-65535, som fungerer som tilkoblingspunkter på IP-adressen. Applikasjoner kan reservere spesifikke porter. Webservere reserverer vanligvis port 80 for sikker HTTP-kommunikasjon. I hovedsak er portområdene 0 - 1024 reservert for kjente formål og systemet.

De to viktigste Internett-dataoverføringsprotokollene (TCP & UDP) bruker disse portene under nettverkskommunikasjon. En vertsdatamaskin oppretter en forbindelse mellom en kilde-IP-adresse og port (port 80 for ikke-sikker HTTP) og destinasjonsadressen og porten.

For å administrere nettverkssikkerhet kan brannmurprogramvare tillate eller blokkere dataoverføring eller kommunikasjon basert på regler som porter eller IP-adresser.

Installere Firewalld

Fedora, RHEL / CentOS 7/8, openSUSE

Firewalld er installert som standard i Fedora, RHEL / CentOS 7/8 og openSUSE. Hvis ikke, kan du installere den ved hjelp av følgende kommando:

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

Debian / Ubuntu

Ubuntu-systemer leveres med den ukompliserte brannmuren som standard. Hvis du vil bruke firewalld, må du aktivere universellageret og deaktivere den ukompliserte brannmuren.

sudo add-apt-repository universet
sudo apt installere firewalld

Deaktiver ukomplisert brannmur:

sudo systemctl deaktiver ufw

Aktiver firewalld ved oppstartstid:

sudo systemctl aktiver -now firewalld

Bekreft at Firewalld kjører:

sudo brannmur-cmd -stat
løping

Brannmur soner

Firewalld gjør konfigurasjonen av brannmuren enkel ved å etablere standardsoner. Soner er et sett med regler som passer de daglige behovene til de fleste Linux-administratorer. En brannmur sone kan definere klarerte eller nektet nivåer for tjenester og porter.

Eksempel på standardsoner definert av Fedora arbeidsstasjon 33

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


Fedora arbeidsstasjon
Uoppfordrede innkommende nettverkspakker blir avvist fra port 1 til 1024, bortsett fra utvalgte nettverkstjenester. [brannmur] Innkommende pakker som er relatert til utgående nettverkstilkoblinger godtas. Utgående nettverkstilkoblinger er tillatt.





Få din nåværende sone:
Du kan bruke - - bli aktive soner flagg for å sjekke de aktive sonene i systemet ditt.

sudo firewall-cmd - get-active-zones
[sudo] passord for tuts:
FedoraWorkstation
grensesnitt: wlp3s0
libvirt
grensesnitt: virbr0

Standardsonen på Fedora Workstation 33 i FedoraWorkstation-sonen

Få standardsone og alle definerte soner:

sudo firewall-cmd --get-default-zone
[sudo] passord for tuts:
FedoraWorkstation
[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zones
FedoraServer Fedora arbeidsstasjon blokkerer dmz slipp eksternt hjem internt libvirt nm-delt offentlig klarert arbeid

Liste tjenester:

Du kan få tjenestene brannmuren gir andre systemer tilgang til ved hjelp av  - -liste-tjenester flagg.

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

På Fedora Linux 33 gir brannmuren tilgang til fire tjenester (dhcpv6-client mdns samba-client ssh) med kjente portnumre.

Liste over brannmurportinnstillinger:
Du kan bruke - -liste-porter flagg for å se andre portinnstillinger i en hvilken som helst sone.

tuts @ fosslinux ~] $ sudo firewall-cmd --list-porter --zone = FedoraWorkstation
[sudo] passord for tuts:
1025-65535 / udp 1025-65535 / tcp

Vi har spesifisert sonen som skal kontrolleres ved hjelp av alternativet - -zone = FedoraWorkstaion.

Administrere soner, porter og tjenester

Brannmurkonfigurasjoner kan konfigureres som enten kjøretid eller permanent. Alle brannmur-cmd-handlinger vedvarer bare til datamaskinen eller brannmuren starter på nytt. Du må opprette permanente innstillinger med -permanent-flagget.

Lag en sone

For å opprette en sone, må du bruke - -ny-sone flagg.
Eksempel:
Opprett en ny permanent sone kalt fosscorp:

[tuts @ fosslinux ~] $ sudo firewall-cmd - new-zone fosscorp --permanent
[sudo] passord for tuts:
suksess

Last brannmurreglene på nytt for å aktivere den nye sonen:

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

Legg til ssh-tjeneste i fosscorp-sonen, slik at du får tilgang til den eksternt:

[tuts @ fosslinux ~] $ sudo firewall-cmd --zone fosscorp --add-service ssh --permanent
[sudo] passord for tuts:
suksess

Bekreft at den nye sonen din 'fosscorp' er aktiv:

[tuts @ fosslinux ~] $ sudo firewall-cmd --get-zones
FedoraServer FedoraWorkstation blokkerer dmz drop ekstern fosscorp hjem internt libvirt nm-delt offentlig pålitelig arbeid

Din nye sone fosscorp er nå aktiv, og den avviser alle innkommende forbindelser unntatt SSH-trafikk.

Bruke - -endringsgrensesnitt flagg for å gjøre sonen fosscorp til den aktive sonen og standardsonen for et nettverksgrensesnitt (wlp3s0) du vil beskytte:

[tuts @ fosslinux ~] $ sudo firewall-cmd --change-interface wlp3s0 \
> --zone fosscorp - permanent
Grensesnittet er under [brannmur] kontroll av NetworkManager, og setter sonen til "fosscorp".
suksess

Hvis du vil angi fosscorp som standard og primær sone, kjører du følgende kommando:

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

Se sonene som for øyeblikket er tilordnet hvert grensesnitt ved hjelp av - -bli aktive soner flagg:

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

Legg til og fjern tjenester:

En rask måte å tillate trafikk gjennom brannmuren din er å legge til en forhåndsdefinert tjeneste.

Liste over tilgjengelige forhåndsdefinerte tjenester:

tuts @ fosslinux ~] $ sudo firewall-cmd --get-services
[sudo] passord for 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 condor-collector ctdb dhcp dhcpv6 dhcpv6-klient
[…]

Fjern blokkering av en forhåndsdefinert tjeneste

Du kan tillate HTTPS-trafikk (eller andre forhåndsdefinerte tjenester) gjennom brannmuren ved hjelp av - -tilleggstjeneste flagg.

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

Du kan også fjerne tjenesten med - -fjerne tjenesten flagg:

[tuts @ fosslinux ~] $ sudo firewall-cmd - Fjern-service https --permanent
suksess
[tuts @ fosslinux ~] $ sudo firewall-cmd --reload

Legg til og fjern porter

Du kan også legge til et portnummer og prototype direkte med flagg -add-port. Å legge til et portnummer direkte kan være nyttig når en forhåndsdefinert tjeneste ikke eksisterer.

Eksempel:
Du kan legge til ikke-standard port 1717 for SSH til din tilpassede sone ved hjelp av følgende kommando:

[tuts @ fosslinux ~] $ sudo firewall-cmd --add-port 1717 / tcp --permanent
[sudo] passord for tuts:
suksess
[tuts @ fosslinux ~] $ sudo firewall-cmd -reload

Fjern porten ved å bruke alternativet -remove-port flag:

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

Du kan også spesifisere en sone for å legge til eller fjerne en port ved å legge til -zoneflagget i kommandoen:
Legg til port 1718 for TCP-forbindelse til FedoraWorstation-sonen:

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

Bekreft om endringene har trådt i kraft:

[tuts @ fosslinux ~] $ sudo firewall-cmd - list-all
FedoraWorkstation (aktiv)
mål: standard
icmp-blokk-inversjon: nei
grensesnitt: wlp3s0
kilder:
tjenester: dhcpv6-client mdns samba-client ssh
porter: 1025-65535 / udp 1025-65535 / tcp 1718 / tcp
protokoller:
maskerade: nei
frem-porter:
kilde-porter:
icmp-blokker:
rike regler:

Merk: Under porter har vi lagt til portnummer 1718 for å tillate TCP-trafikk.

Du kan fjerne port 1718 / tcp ved å kjøre følgende kommando:

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

Merk: Hvis du vil gjøre endringene dine permanente, må du legge til - -fast flagg til kommandoene dine.

oppsummering

Firewalld er et flott verktøy for å administrere nettverkssikkerheten din. Den beste måten å øke systemadministratorferdighetene dine på er å få praktisk erfaring. Jeg anbefaler på det sterkeste å installere Fedora i din virtuelle virtuelle maskin (VM) eller i bokser for å eksperimentere med alle tilgjengelige brannmur-cmd-funksjoner. Du kan lære mer brannmur-cmd-funksjoner fra den offisielle Firewalld-hjemmesiden.

Mus Topp 5 ergonomiske datamuseprodukter for Linux
Topp 5 ergonomiske datamuseprodukter for Linux
Gir langvarig bruk av datamaskiner smerter i håndleddet eller fingrene? Lider du av stive ledd og må hele tiden riste på deg hendene? Føler du en bren...
Mus Hvordan endre mus og berøringsplateinnstillinger ved hjelp av Xinput i Linux
Hvordan endre mus og berøringsplateinnstillinger ved hjelp av Xinput i Linux
De fleste Linux-distribusjoner leveres med "libinput" -biblioteket som standard for å håndtere inngangshendelser på et system. Den kan behandle inngan...
Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...