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.

Legg igjen 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 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.

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.

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.

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