Bruke FirewallD til å administrere brannmuren din på CentOS 7

FirewallD er en dynamisk administrert brannmur som gir støtte for IPv4- og IPv6-brannmurregler og brannmursoner som er tilgjengelig på RHEL 7-baserte servere. Det er en direkte erstatning for iptablesog fungerer med kjernens netfilterkode.

I denne artikkelen vil vi ta en kort titt på hvordan du administrerer brannmuren på CentOS 7 ved å bruke firewall-cmdkommandoen.

Sjekker om FirewallD kjører

Det første trinnet er å sjekke om FirewallD er installert og kjører. Dette kan gjøres systemdved å kjø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 sjekke ved å bruke firewall-cmdverktøyet:

$ firewall-cmd --state
running

Administrere soner

FirewallD opererer ved å bruke konseptet zoneshvor en sone definerte nivået av tillit som brukes for en tilkobling. Du kan dele forskjellige nettverksgrensesnitt i forskjellige soner for å bruke spesifikke brannmurregler per grensesnitt, eller du kan bruke én sone for alle grensesnitt.

Ut av esken gjøres alt på standardsonen public, men det er flere andre forhåndskonfigurerte soner som også kan brukes.

Viser alle tilgjengelige soner

Du må kanskje få en liste over alle tilgjengelige soner, hvorav det er flere ut av esken. Igjen, dette kan gjøres ved å bruke firewall-cmd:

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

Kontrollerer standardsonen

Du kan finne standardsonen som for øyeblikket er konfigurert ved å bruke firewall-cmd:

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

Hvis du ønsker å endre standardsonen (for eksempel til home), kan dette gjøres ved å kjøre:

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

Denne informasjonen vil gjenspeiles i hovedkonfigurasjonsfilen, /etc/firewalld/firewalld.conf. Det anbefales imidlertid at du ikke endrer denne filen manuelt og i stedet bruker firewall-cmd.

Kontrollerer gjeldende tildelte soner

Du kan få en liste over sonene du har tildelt grensesnitt til ved å kjøre:

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

Du kan også sjekke sonen til et enkelt grensesnitt ( eth0i dette tilfellet) ved å kjøre:

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

Opprette soner

Hvis standard forhåndskonfigurerte soner ikke helt passer dine behov, er den enkleste måten å opprette en ny sone ( zone1) igjen via firewall-cmd:

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

Etter opprettelsen må du laste inn på nytt:

$ firewall-cmd --reload
success

Bruke en sone til et grensesnitt

For å permanent tilordne et nettverksgrensesnitt til en sone, kan du bruke firewall-cmdmen husk å inkludere --permanentflagget for å fortsette endringen. Hvis du bruker NetworkManager, bør du også være sikker på å bruke for nmcliå angi tilkoblingssonen.

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

Få den permanente konfigurasjonen av en sone

For å sjekke den permanente konfigurasjonen av en sone ( publici dette tilfellet) inkludert tildelte grensesnitt, tillatte tjenester, portinnstillinger og mer, kjør:

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

Administrere tjenester

Når du har tildelt og konfigurert de nødvendige sonene dine, kan du begynne å legge til tjenester i sonene. Tjenester beskriver protokollene og portene som kan nås for en sone.

Liste over eksisterende tjenester

En rekke vanlige tjenester er forhåndskonfigurert i brannmuren. Disse kan listes opp:

$ 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 tjenestene som er aktivert for standardsonen:

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

Legge til en tjeneste i en sone

Du kan aktivere en gitt tjeneste for en sone ( public) permanent ved å bruke --add-serviceflagget:

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

Og last deretter inn gjeldende brannmurøkt på nytt:

$ firewall-cmd --reload
success

Så, for å bekrefte at det ble lagt til:

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

Fjerne en tjeneste fra en sone

Du kan fjerne en gitt tjeneste for en sone ( public) permanent ved å bruke --remove-serviceflagget:

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

Og last deretter inn gjeldende brannmurøkt på nytt:

$ firewall-cmd --reload
success

Så, for å bekrefte at det ble lagt til:

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

Legge til/fjerne flere tjenester fra en sone

Du kan legge til eller fjerne flere tjenester (for eksempel httpog https) fra en sone enten én om gangen eller alle samtidig ved å pakke de ønskede tjenestenavnene inn i krøllete klammeparenteser ( {, }):

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

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

Opprette nye tjenester

Noen ganger må du kanskje legge til nye tilpassede tjenester - for eksempel hvis du har endret porten for SSH-demonen. Tjenester er definert ved hjelp av trivielle XML-filer, med standardfilene 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 enkleste måten å opprette en ny tjeneste på er å kopiere en av disse eksisterende tjenestefilene og endre den. Tilpassede tjenester bør ligge i /etc/firewalld/services. For eksempel, for å tilpasse SSH-tjenesten:

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

Innholdet i denne kopierte filen skal se slik ut:

$ 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 å endre porten, bør du endre kortnavnet for tjenesten og porten. Du kan også endre beskrivelsen hvis du ønsker det, men dette er bare ekstra metadata som kan brukes av et brukergrensesnitt eller en annen applikasjon. I dette eksemplet endrer 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 lagret, må du laste inn brannmuren på nytt, og deretter kan du bruke regelen din på sonen din:

$ firewall-cmd --reload
success

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

Havneledelse

I tillegg til å bruke tjenester, kan du også manuelt tillate porter etter protokoll. Slik tillater du TCP-porten 7777for publicsonen:

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

Du kan også legge til et portområde:

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

For å fjerne (og dermed nekte) TCP-port 7777for publicsonen:

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

Du kan også liste opp gjeldende tillatte porter for en gitt sone ( public) etter å ha lastet inn gjeldende brannmurøkt på nytt:

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

Aktiverer FirewallD

Når du har konfigurert brannmuren etter din smak, bør du sørge for å aktivere den via systemd for å sikre at den starter ved oppstart:

$ systemctl enable firewalld

Konklusjon

Det er mange flere innstillinger og alternativer i FirewallD, for eksempel portvideresending, maskering og kommunikasjon med brannmuren via D-Bus. Forhåpentligvis har denne veiledningen imidlertid hjulpet deg med å forstå det grunnleggende og har gitt deg verktøyene for å komme i gang med brannmuring utenfor serveren din. Litt ekstra lesing nedenfor vil hjelpe deg å få mest mulig ut av brannmuren din.


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruker du et annet system? Plesk er et proprietært kontrollpanel for webverten som lar brukere administrere sine personlige og/eller klienters nettsteder, databaser

Slik installerer du Squid Proxy på CentOS

Slik installerer du Squid Proxy på CentOS

Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Microweber på CentOS 7

Slik installerer du Microweber på CentOS 7

Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg

Hvordan installere Vanilla Forum på CentOS 7

Hvordan installere Vanilla Forum på CentOS 7

Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern

Slik installerer du Mattermost 4.1 på CentOS 7

Slik installerer du Mattermost 4.1 på CentOS 7

Bruker du et annet system? Mattermost er et åpen kildekode, selvdrevet alternativ til Slack SAAS-meldingstjenesten. Med andre ord, med Mattermost kan du ca

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Opprette et nettverk av Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hva du trenger En Vultr VPS med minst 1 GB RAM. SSH-tilgang (med root/administratorrettigheter). Trinn 1: Installere BungeeCord Først

La oss kryptere på Plesk

La oss kryptere på Plesk

Plesk-kontrollpanelet har en veldig fin integrasjon for Lets Encrypt. Lets Encrypt er en av de eneste SSL-leverandørene som gir ut sertifikater komplett

La oss kryptere på cPanel

La oss kryptere på cPanel

Lets Encrypt er en sertifiseringsinstans dedikert til å tilby SSL-sertifikater gratis. cPanel har bygget en ryddig integrasjon slik at du og din klient

Hvordan installere Concrete5 på CentOS 7

Hvordan installere Concrete5 på CentOS 7

Bruker du et annet system? Concrete5 er et åpen kildekode CMS som tilbyr mange karakteristiske og nyttige funksjoner for å hjelpe redaktører med å produsere innhold enkelt og

Slik installerer du Review Board på CentOS 7

Slik installerer du Review Board på CentOS 7

Bruker du et annet system? Review Board er et gratis og åpen kildekodeverktøy for gjennomgang av kildekode, dokumentasjon, bilder og mye mer. Det er nettbasert programvare

Sett opp HTTP-autentisering med Nginx på CentOS 7

Sett opp HTTP-autentisering med Nginx på CentOS 7

I denne veiledningen lærer du hvordan du setter opp HTTP-autentisering for en Nginx-webserver som kjører på CentOS 7. Krav For å komme i gang trenger du

Slik installerer du GoAccess på CentOS 7

Slik installerer du GoAccess på CentOS 7

Bruker du et annet system? GoAccess er en åpen kildekode-nettlogganalysator. Du kan bruke den til analyse av logger på sanntidsbasis i enten terminalen eller

Hvordan installere YOURLS på CentOS 7

Hvordan installere YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en åpen kildekode-applikasjon for URL-forkorting og dataanalyse. I denne artikkelen vil vi dekke installasjonsprosessen

Hvordan installere og konfigurere ArangoDB på CentOS 7

Hvordan installere og konfigurere ArangoDB på CentOS 7

Bruker du et annet system? Introduksjon ArangoDB er en åpen kildekode NoSQL-database med en fleksibel datamodell for dokumenter, grafer og nøkkelverdier. Det er

Bruke Etckeeper for versjonskontroll av /etc

Bruke Etckeeper for versjonskontroll av /etc

Innledning /etc/-katalogen spiller en kritisk rolle i måten et Linux-system fungerer på. Grunnen til dette er fordi nesten alle systemkonfigurasjoner

Hvorfor bør du bruke SSHFS? Hvordan montere et eksternt filsystem med SSHFS på CentOS 6

Hvorfor bør du bruke SSHFS? Hvordan montere et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mengder servere. Når filer må åpnes på tvers av forskjellige servere, logger du på hver enkelt individuelt ca

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 akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer