Sådan begrænses netværksadgang ved hjælp af FirewallD


Som Linux-bruger kan du vælge enten at tillade eller begrænse netværksadgang til nogle tjenester eller IP-adresser ved hjælp af firewalld-firewall, der er hjemmehørende i CentOS/RHEL 8 og de fleste RHEL-baserede distributioner såsom Fedora.

Firewallld-firewall bruger kommandolinjeprogrammet firewall-cmd til at konfigurere firewallregler.

Før vi kan udføre nogen konfigurationer, lad os først aktivere firewalld-tjenesten ved hjælp af systemctl-hjælpeprogrammet som vist:

$ sudo systemctl enable firewalld

Når det er aktiveret, kan du nu starte firewalld-tjenesten ved at udføre:

$ sudo systemctl start firewalld

Du kan bekræfte firewallds status ved at køre kommandoen:

$ sudo systemctl status firewalld

Outputtet nedenfor bekræfter, at firewalld-tjenesten er i gang.

Konfiguration af regler ved hjælp af Firewalld

Nu hvor vi kører firewalld, kan vi gå direkte til at lave nogle konfigurationer. Firewalld giver dig mulighed for at tilføje og blokere porte, sortliste såvel som hvidliste IP-adresser for at give adgang til serveren. Når du er færdig med konfigurationerne, skal du altid sikre dig, at du genindlæser firewallen, så de nye regler træder i kraft.

For at tilføje en port, sig port 443 til HTTPS, brug syntaksen nedenfor. Bemærk, at du skal angive, om porten er en TCP- eller UDP-port efter portnummeret:

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

For at tilføje en UDP-port skal du også angive UDP-indstillingen som vist:

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

Flagget --permanent sikrer, at reglerne fortsætter, selv efter en genstart.

For at blokere en TCP-port, som port 22, skal du køre kommandoen.

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

Tilsvarende følger blokering af en UDP-port den samme syntaks:

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

Netværkstjenester defineres i/etc/services-filen. For at tillade en tjeneste som https skal du udføre kommandoen:

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

For at blokere en tjeneste, for eksempel FTP, skal du udføre:

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

For at tillade en enkelt IP-adresse på tværs af firewallen skal du udføre kommandoen:

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

Du kan også tillade en række IP'er eller et helt subnet ved hjælp af en CIDR (Classless Inter-Domain Routing) notation. For eksempel for at tillade et helt undernet i 255.255.255.0 undernet, skal du udføre.

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

Hvis du vil fjerne en hvidliste-IP fra firewallen, skal du bruge flagget --remove-source som vist:

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

Kør for hele undernettet:

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

Indtil videre har vi set, hvordan du kan tilføje og fjerne porte og tjenester samt hvidliste og fjerne hvidliste-IP'er. For at blokere en IP-adresse bruges 'rige regler' til dette formål.

For eksempel for at blokere IP 192.168.2.50 skal du køre kommandoen:

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

For at blokere hele undernettet skal du køre:

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

Hvis du har foretaget ændringer i firewallreglerne, skal du køre kommandoen nedenfor for at ændringerne skal anvendes med det samme:

$ sudo firewall-cmd --reload

For at skulle kigge på alle reglerne i firewallen skal du udføre kommandoen:

$ sudo firewall-cmd --list-all

Dette afslutter denne guide til, hvordan du tillader eller begrænser netværksadgang ved hjælp af FirewallD på CentOS/RHEL 8. Vi håber, du fandt denne vejledning nyttig.