Hvordan begrense nettverkstilgang ved hjelp av brannmurD


Som Linux-bruker kan du velge enten å tillate eller begrense nettverkstilgang til enkelte tjenester eller IP-adresser ved å bruke brannmuren som er hjemmehørende i CentOS/RHEL 8 og de fleste RHEL-baserte distribusjoner som Fedora.

Brannmurens brannmur bruker kommandolinjeverktøyet brannmur-cmd for å konfigurere brannmurregler.

Før vi kan utføre noen konfigurasjoner, la oss først aktivere brannmurtjenesten ved å bruke systemctl-verktøyet som vist:

$ sudo systemctl enable firewalld

Når den er aktivert, kan du nå starte brannmurtjenesten ved å utføre:

$ sudo systemctl start firewalld

Du kan bekrefte statusen til brannmuren ved å kjøre kommandoen:

$ sudo systemctl status firewalld

Utdataene nedenfor bekrefter at brannmurtjenesten er oppe og kjører.

Konfigurere regler ved hjelp av brannmur

Nå som vi har en brannmur kjører, kan vi gå rett til å lage noen konfigurasjoner. Firewalld lar deg legge til og blokkere porter, svarteliste, samt hviteliste IP-adresser for å gi tilgang til serveren. Når du er ferdig med konfigurasjonene, sørg alltid for at du laster inn brannmuren på nytt for at de nye reglene skal tre i kraft.

For å legge til en port, si port 443 for HTTPS, bruk syntaksen nedenfor. Merk at du må spesifisere om porten er en TCP- eller UDP-port etter portnummeret:

$ sudo firewall-cmd --add-port=22/tcp --permanent

På samme måte, for å legge til en UDP-port, spesifiser UDP-alternativet som vist:

$ sudo firewall-cmd --add-port=53/udp --permanent

--permanent-flagget sikrer at reglene vedvarer selv etter en omstart.

For å blokkere en TCP-port, som port 22, kjør kommandoen.

$ sudo firewall-cmd --remove-port=22/tcp --permanent

På samme måte vil blokkering av en UDP-port følge samme syntaks:

$ sudo firewall-cmd --remove-port=53/udp --permanent

Nettverkstjenester er definert i filen /etc/services. For å tillate en tjeneste som https, kjør kommandoen:

$ sudo firewall-cmd --add-service=https

For å blokkere en tjeneste, for eksempel FTP, kjør:

$ sudo firewall-cmd --remove-service=https

For å tillate en enkelt IP-adresse over brannmuren, utfør kommandoen:

$ sudo firewall-cmd --permanent --add-source=192.168.2.50

Du kan også tillate en rekke IP-er eller et helt undernett ved å bruke en CIDR-notasjon (Classless Inter-Domain Routing). For å tillate et helt undernett i undernettet 255.255.255.0, utfør for eksempel.

$ sudo firewall-cmd --permanent --add-source=192.168.2.0/24

Hvis du ønsker å fjerne en hvitelistet IP på brannmuren, bruk --remove-source-flagget som vist:

$ sudo firewall-cmd --permanent --remove-source=192.168.2.50

For hele undernettet, kjør:

$ sudo firewall-cmd --permanent --remove-source=192.168.2.50/24

Så langt har vi sett hvordan du kan legge til og fjerne porter og tjenester samt hviteliste og fjerne hvitelistede IP-er. For å blokkere en IP-adresse brukes 'rike regler' til dette formålet.

For å blokkere IP 192.168.2.50 for eksempel, kjør kommandoen:

$ sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.50' reject"

For å blokkere hele undernettet, kjør:

$ sudo firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.2.0/24' reject"

Hvis du har gjort noen endringer i brannmurreglene, må du kjøre kommandoen nedenfor for at endringene skal brukes umiddelbart:

$ sudo firewall-cmd --reload

For å måtte se på alle reglene i brannmuren, kjør kommandoen:

$ sudo firewall-cmd --list-all

Dette avslutter denne veiledningen om hvordan du tillater eller begrenser nettverkstilgang ved å bruke FirewallD på CentOS/RHEL 8. Vi håper du syntes denne veiledningen var nyttig.