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.


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruger du et andet system? Plesk er et proprietært webhost kontrolpanel, der giver brugerne mulighed for at administrere deres personlige og/eller klienters websteder, databaser

Sådan installeres Squid Proxy på CentOS

Sådan installeres Squid Proxy på CentOS

Squid er et populært, gratis Linux-program, der giver dig mulighed for at oprette en webproxy til videresendelse. I denne vejledning vil du se, hvordan du installerer Squid på CentOS for at gøre dig

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer

Konfiguration af statisk netværk og IPv6 på CentOS 7

Konfiguration af statisk netværk og IPv6 på CentOS 7

VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres Microweber på CentOS 7

Sådan installeres Microweber på CentOS 7

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres Mattermost 4.1 på CentOS 7

Sådan installeres Mattermost 4.1 på CentOS 7

Bruger du et andet system? Mattermost er et open source, selvhostet alternativ til Slack SAAS-meddelelsestjenesten. Med andre ord, med Mattermost er du ca

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først

Lad os kryptere på Plesk

Lad os kryptere på Plesk

Plesk-kontrolpanelet har en meget flot integration til Lets Encrypt. Lets Encrypt er en af ​​de eneste SSL-udbydere, der udleverer certifikater komplet

Lader kryptere på cPanel

Lader kryptere på cPanel

Lets Encrypt er en certifikatmyndighed dedikeret til at levere SSL-certifikater gratis. cPanel har bygget en pæn integration, så du og din klient

Sådan installeres Concrete5 på CentOS 7

Sådan installeres Concrete5 på CentOS 7

Bruger du et andet system? Concrete5 er et open source CMS, som tilbyder mange karakteristiske og nyttige funktioner til at hjælpe redaktører med at producere indhold nemt og

Sådan installeres Review Board på CentOS 7

Sådan installeres Review Board på CentOS 7

Bruger du et andet system? Review Board er et gratis og open source-værktøj til gennemgang af kildekode, dokumentation, billeder og mange flere. Det er webbaseret software

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

I denne vejledning lærer du, hvordan du opsætter HTTP-godkendelse for en Nginx-webserver, der kører på CentOS 7. Krav For at komme i gang skal du bruge

Sådan installeres YOURLS på CentOS 7

Sådan installeres YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en open source URL-forkortelse og dataanalyseapplikation. I denne artikel vil vi dække installationsprocessen

Sådan installeres og konfigureres ArangoDB på CentOS 7

Sådan installeres og konfigureres ArangoDB på CentOS 7

Bruger du et andet system? Introduktion ArangoDB er en open source NoSQL-database med en fleksibel datamodel for dokumenter, grafer og nøgleværdier. det er

Brug af Etckeeper til versionskontrol af /etc

Brug af Etckeeper til versionskontrol af /etc

Introduktion /etc/-biblioteket spiller en afgørende rolle i den måde et Linux-system fungerer på. Årsagen til dette er, at næsten alle systemkonfigurationer

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mængder servere. Når filer skal tilgås på tværs af forskellige servere, logges ind på hver enkelt individuelt ca

Opsætning af en Half Life 2-server på CentOS 6

Opsætning af en Half Life 2-server på CentOS 6

Denne vejledning vil dække processen med at installere en Half Life 2-spilserver på CentOS 6 System. Trin 1: Installation af forudsætninger For at opsætte ou

Sådan installeres Laravel GitScrum på CentOS 7

Sådan installeres Laravel GitScrum på CentOS 7

Laravel GitScrum eller GitScrum er et open source-produktivitetsværktøj designet til at hjælpe udviklingsteams med at implementere Scrum-metoden på en måde, der ligner t.

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.

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.

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.

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