Brug af FirewallD til at administrere din firewall på CentOS 7

FirewallD er en dynamisk styret firewall, der understøtter IPv4- og IPv6-firewallregler og firewallzoner, som er tilgængelig på RHEL 7-baserede servere. Det er en direkte erstatning for iptablesog fungerer sammen med kernens netfilterkode.

I denne artikel vil vi tage et kort kig på styring af firewallen på CentOS 7 ved hjælp af firewall-cmdkommandoen.

Kontrollerer, om FirewallD kører

Det første trin er at kontrollere, om FirewallD er installeret og kører. Dette kan gøres systemdved at køre følgende:

$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-03-10 15:07:00 UTC; 1min 30s ago
   ...

Alternativt kan du tjekke ved hjælp af firewall-cmdværktøjet:

$ firewall-cmd --state
running

Håndtering af zoner

FirewallD fungerer ved at bruge konceptet om, zoneshvor en zone definerede det tillidsniveau, der bruges til en forbindelse. Du kan opdele forskellige netværksgrænseflader i forskellige zoner for at anvende specifikke firewallregler pr. grænseflade, eller du kan bruge én zone til alle grænseflader.

Ud af boksen er alt gjort på standardzonen public, men der er flere andre forudkonfigurerede zoner, der også kan anvendes.

Viser alle tilgængelige zoner

Du skal muligvis få en liste over alle de tilgængelige zoner, hvoraf der er flere ud af kassen. Igen kan dette gøres ved hjælp af firewall-cmd:

$ firewall-cmd --get-zones
block dmz drop external home internal public trusted work

Kontrollerer standardzonen

Du kan finde den standardzone, der i øjeblikket er konfigureret ved hjælp af firewall-cmd:

$ firewall-cmd --get-default-zone
public

Hvis du ønsker at ændre standardzonen (for eksempel til home), kan dette gøres ved at køre:

$ firewall-cmd --set-default-zone=home
success

Disse oplysninger vil blive afspejlet i hovedkonfigurationsfilen, /etc/firewalld/firewalld.conf. Det anbefales dog, at du ikke manuelt ændrer denne fil og i stedet bruger firewall-cmd.

Kontrollerer de aktuelt tildelte zoner

Du kan få en liste over de zoner, som du har fået tildelt grænseflader til, ved at køre:

$ firewall-cmd --get-active-zones
public
  interfaces: eth0

Du kan også kontrollere zonen for en enkelt grænseflade ( eth0i dette tilfælde) ved at køre:

$  firewall-cmd --get-zone-of-interface=eth0
public

Oprettelse af zoner

Hvis de forudkonfigurerede standardzoner ikke helt passer til dine behov, er den nemmeste måde at oprette en ny zone ( zone1) igen via firewall-cmd:

$ firewall-cmd --permanent --new-zone=zone1
success

Efter oprettelsen skal du genindlæse:

$ firewall-cmd --reload
success

Anvendelse af en zone til en grænseflade

For permanent at tildele en netværksgrænseflade til en zone, kan du bruge, firewall-cmdmen husk at inkludere --permanentflaget for at fortsætte ændringen. Hvis du bruger NetworkManager, skal du også være sikker på at bruge nmclitil at indstille forbindelseszonen.

$ firewall-cmd --permanent --zone=internal --change-interface=eth1`
success

Få den permanente konfiguration af en zone

For at kontrollere den permanente konfiguration af en zone ( publici dette tilfælde) inklusive de tildelte grænseflader, tilladte tjenester, portindstillinger og mere, skal du køre:

$ firewall-cmd --permanent --zone=public --list-all
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

Håndtering af tjenester

Når du har tildelt og konfigureret dine nødvendige zoner, kan du begynde at tilføje tjenester til zoner. Tjenester beskriver de protokoller og porte, der kan tilgås for en zone.

Liste over eksisterende tjenester

En række almindelige tjenester er forudkonfigureret i firewalld. Disse kan anføres:

$ firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

Du kan også få en liste over de tjenester, der er aktiveret for standardzonen:

$ firewall-cmd --list-services
dhcpv6-client ssh

Tilføjelse af en tjeneste til en zone

Du kan aktivere en given tjeneste for en zone ( public) permanent ved at bruge --add-serviceflaget:

$ firewall-cmd --permanent --zone=public --add-service=http
success

Og genindlæs derefter den aktuelle firewall-session:

$ firewall-cmd --reload
success

Derefter, for at bekræfte, at det blev tilføjet:

$ firewall-cmd --zone=public --list-services
dhcpv6-client http ssh

Fjernelse af en tjeneste fra en zone

Du kan fjerne en given tjeneste for en zone ( public) permanent ved at bruge --remove-serviceflaget:

$ firewall-cmd --permanent --zone=public --remove-service=http
success

Og genindlæs derefter den aktuelle firewall-session:

$ firewall-cmd --reload
success

Derefter, for at bekræfte, at det blev tilføjet:

$ firewall-cmd --zone=public --list-services
dhcpv6-client ssh

Tilføjelse/fjernelse af flere tjenester fra en zone

Du kan tilføje eller fjerne flere tjenester (f.eks. httpog https) fra en zone enten én ad gangen eller alle på én gang ved at pakke de ønskede tjenestenavne ind i krøllede klammeparenteser ( {, }):

$ firewall-cmd --permanent --zone=public --add-service=
success

$ firewall-cmd --permanent --zone=public --list-services
dhcpv6-client http https ssh

Oprettelse af nye tjenester

Nogle gange skal du muligvis tilføje nye brugerdefinerede tjenester - for eksempel hvis du har ændret porten til SSH-dæmonen. Tjenester defineres ved hjælp af trivielle XML-filer, hvor standardfilerne findes i /usr/lib/firewalld/services:

$  tree /usr/lib/firewalld/services
/usr/lib/firewalld/services
├── amanda-client.xml
├── bacula-client.xml
├── bacula.xml
├── dhcpv6-client.xml
├── dhcpv6.xml
├── dhcp.xml
├── dns.xml
├── freeipa-ldaps.xml
├── freeipa-ldap.xml
├── freeipa-replication.xml
├── ftp.xml
├── high-availability.xml
├── https.xml
├── http.xml
...

Den nemmeste måde at oprette en ny tjeneste på er at kopiere en af ​​disse eksisterende servicefiler og ændre den. Tilpassede tjenester bør ligge i /etc/firewalld/services. For eksempel for at tilpasse SSH-tjenesten:

$ cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-custom.xml

Indholdet af denne kopierede fil skal se sådan ud:

$ cat /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

For at ændre porten skal du ændre det korte navn for tjenesten og porten. Du kan også ændre beskrivelsen, hvis du ønsker det, men dette er blot ekstra metadata, der kan bruges af en brugergrænseflade eller en anden applikation. I dette eksempel ændrer jeg porten til 1234:

$ nano /etc/firewalld/services/ssh-custom.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH-Custom</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="1234"/>
</service>

Når den er gemt, skal du genindlæse firewallen, og derefter kan du anvende din regel på din zone:

$ firewall-cmd --reload
success

$ firewall-cmd --permanent --zone=public --add-service=ssh-custom
success

Havneledelse

Ud over at bruge tjenester, kan du også manuelt tillade porte efter protokol. Sådan tillades TCP-porten 7777for publiczonen:

$ firewall-cmd --permanent --zone=public --add-port=7777/tcp
success

Du kan også tilføje et portområde:

$ firewall-cmd --permanent --zone=public --add-port=7000-8000/tcp
success

For at fjerne (og dermed afvise) TCP-port 7777for publiczonen:

$ firewall-cmd --permanent --zone=public --remove-port=7777/tcp
success

Du kan også angive de aktuelt tilladte porte for en given zone ( public) efter genindlæsning af den aktuelle firewallsession:

$ firewall-cmd --zone=public --list-ports
7000-8000/tcp

Aktivering af FirewallD

Når du har konfigureret firewallen til din smag, skal du være sikker på at aktivere den via systemd for at sikre, at den starter ved opstart:

$ systemctl enable firewalld

Konklusion

Der er rigtig mange flere indstillinger og muligheder i FirewallD, såsom portvideresendelse, maskering og kommunikation med firewallen via D-Bus. Forhåbentlig har denne guide dog hjulpet dig med at forstå det grundlæggende og har givet dig værktøjerne til at komme i gang med firewalling fra din server. Noget yderligere læsning nedenfor vil hjælpe dig med at få mest muligt ud af din firewall.

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere