Kunnskapsbase Enkle instruksjoner for å jobbe med Profitserver-tjenesten
Hoved Kunnskapsbase Konfigurere brannmur på Linux

Konfigurere brannmur på Linux


Brannmur på Linux spiller en viktig rolle i å sikre et datasystem. Den fungerer som en barriere, kontrollerer og filtrerer nettverkstrafikk for å beskytte systemet mot uautorisert tilgang, angrep og andre trusler. Uten en riktig konfigurert brannmur kan serveren være sårbar for ulike typer nettangrep, noe som kan føre til alvorlige konsekvenser for datasikkerhet og konfidensialitet.

I denne artikkelen vil vi se på to hovedverktøy for å konfigurere Linux-brannmuren: brannmur og iptables. Vi vil gjennomføre en komparativ analyse av deres funksjoner, funksjonalitet og fordeler. I tillegg vil vi gi detaljerte instruksjoner for å sette opp og bruke hvert av disse verktøyene, samt diskutere beste praksis for å sikre systemet ditt med en brannmur på Linux-plattformen. Alle handlinger vil bli demonstrert på en virtuell server med rottilgang.

Konfigurerer brannmur på Linux

Firewalld (Firewall Daemon) er et program for å administrere brannmuren i Linux-operativsystemer. Det gir et brukergrensesnitt for å konfigurere brannmurregler, tillate eller blokkere tilkoblinger av nettverksapplikasjoner. Den er forhåndsinstallert som standard i de fleste serverdistribusjoner. Hvis Firewalld ikke er forhåndsinstallert, kan den installeres uavhengig av distribusjonens offisielle depoter.

For Red Hat-systemer (som RHEL, CentOS, Fedora) utføres installasjonen med kommandoen:

yum install firewalld

For Debian/Ubuntu:

apt-get install firewalld

Etter installasjonen kan den startes og aktiveres umiddelbart med kommandoen:

systemctl start firewalld

Deretter må du legge til tjenesten til oppstart:

systemctl enable firewalld
Legger til brannmur i Linux autoload

På dette tidspunktet anbefaler vi å deaktivere ufw, siden samtidig bruk av dette verktøyet med brannmur eller iptables ikke anbefales. Sjekk status:

systemctl status ufw
Sjekker ufw linux

For å stoppe det, skriv inn kommandoen:

systemctl stop ufw

For fullstendig deaktivering:

ufw disable

Etter disse handlingene kan du fortsette å konfigurere brannmuren.

Først er det nødvendig å definere tillitssoner. Firewalld bruker konseptet med soner for å bestemme tillitsnivået for nettverksgrensesnitt. Hvert grensesnitt er tildelt én sone, og brannmurregler brukes basert på sonen. Listen over alle tilgjengelige soner åpnes med kommandoen:

firewall-cmd --get-zones

Vanligvis brukes 4 hovedsoner:

  1. offentlig: Denne sonen er for nettverk som du anser som usikre;
  2. Privat: Gjelder hjemmenettverk eller andre pålitelige nettverkstilkoblinger;
  3. Intern: Brukes for interne nettverk, for eksempel i en organisasjon eller bedriftsnettverk;
  4. DMZ: Denne sonen er hvor servere vanligvis plasseres som skal være tilgjengelige fra internett.

Dette er imidlertid bare ett eksempel. Du kan legge til din egen sone ved å bruke kommandoen:

firewall-cmd --permanent --new-zone=nameyourzone

Etter å ha lagt til, kreves en omlasting:

firewall-cmd --reload

For å slette en sone brukes en lignende metode

firewall-cmd --permanent --delete-zone=nameyourzone

Etter å ha definert soner, er det nødvendig å tillate trafikk for de nødvendige tjenestene og havnene. For å tillate en bestemt tjeneste, bruk kommandoen:

firewall-cmd --zone=public --add-service=name

Hvor navn er navnet på tjenesten. For eksempel, for å tillate trafikk for Apache:

firewall-cmd --zone=public --add-service=http

For å definere tillatte porter, bruk kommandoen:

firewall-cmd --zone=public --add-port=number/protocol

For eksempel vil standard 22-porten for SSH se slik ut:

firewall-cmd --zone=public --add-port=22/tcp

På dette stadiet er hovedreglene allerede opprettet. Deretter bestemmer du hvordan trafikken skal behandles avhengig av kilden, destinasjonen, porten og andre kriterier. For å legge til en regel (ved å bruke offentlig sone som et eksempel):

firewall-cmd --zone=public rule

For eksempel, for å tillate innkommende trafikk fra en hvilken som helst kilde til port 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Slik fjerner du en regel:

firewall-cmd --permanent --remove-rule=rule_specification

Hvor herske er typen regel (f.eks. havn, tjeneste, rik-regel, etc.), og regelspesifikasjon er spesifikasjonen av selve regelen.

Etter å ha gjort endringer i Firewalld-konfigurasjonen, er det nødvendig å lagre og bruke dem. For å lagre endringer, bruk kommandoen:

firewall-cmd --runtime-to-permanent

Slik bruker du endringer:

firewall-cmd --reload

Når du har fullført oppsettet, kan du bekrefte de valgte parameterne ved å åpne listen over alle regler:

firewall-cmd --list-all
brannmur Linux-regler

Hvis det oppstår problemer, sjekk Firewalld-loggene med kommandoen:

journalctl -u firewalld

Merk: Vi har bare dekket den generelle algoritmen for å sette opp tilkoblingen. Verktøyet har omfattende funksjonalitet. For full informasjon om alle tilgjengelige alternativer, kan du bruke offisiell dokumentasjon eller åpne hjelp:

firewall-cmd --help

Konfigurere iptables på Linux

I motsetning til Firewalld er iptables et eldre, men fortsatt mye brukt verktøy i Linux for å administrere brannmuren. Det gir en mer direkte og fleksibel tilnærming til pakkefiltreringsregler på Linux-kjernenivå. Imidlertid krever iptables mer avansert kunnskap og erfaring sammenlignet med Firewalld, noe som gjør det mindre tilgjengelig for nybegynnere. Sjekk den forhåndsinstallerte versjonen av verktøyet med kommandoen:

iptables -V

Hvis verktøyet ikke er installert, må det installeres. Kommandoen for installasjon på Ubuntu, Debian:

apt install iptables

For Red Hat-systemer (f.eks. CentOS, Fedora):

yum install iptables

Kommandoen for aktivering etter installasjon:

systemctl start iptables

For å legge til oppstart, kjør:

systemctl enable iptables

Før du starter iptables-konfigurasjonen, er det viktig å forstå hvordan det fungerer. Dette blir hjulpet av syntaksen til programmet. Det ser ut som følger:

iptables -t table action chain additional_parameters

La oss gå dypere inn i hvert element.

Iptables har fire hovedtabeller: filter, nat, mangle og rå. Hver er designet for å behandle visse typer pakker og har sine egne kjeder med regler:

  1. filtrere: Dette er den mest brukte tabellen, som inneholder pakkefiltreringsregler. Den brukes til å ta beslutninger om å tillate eller nekte pakker.
  2. nat: Denne tabellen brukes til å endre nettverksadresser og porter i pakker. Det brukes ofte til å sette opp maskering (NAT).
  3. mangle: I denne tabellen kan du endre pakkehoder. Den brukes til spesialiserte pakkeoperasjoner, for eksempel merking.
  4. : Denne tabellen brukes til å konfigurere regler som gjelder før de går gjennom tilkoblingssporingssystemet. Det brukes vanligvis til å sette opp regler som ikke skal endres av sporingssystemet, for eksempel å slippe pakker fra bestemte adresser.

Hvert bord inneholder et sett med kjeder. Kjeder er en sekvens av regler som kontrolleres sekvensielt. Det er tre forhåndsdefinerte kjeder:

  1. INPUT (innkommende). Reglene i denne kjeden bestemmer hva som skal gjøres med innkommende pakker.
  2. OUTPUT (utgående). Denne kjeden gjelder for alle pakker datamaskinen din sender til andre enheter eller datamaskiner på nettverket.
  3. FORWARD (videresending). Reglene i denne kjeden spesifiserer hva som skal gjøres med videresendte pakker.

Til slutt har hver kjede en eller annen handling (mål). I praksis brukes 5 hovedhandlinger:

  1. ACCEPT: La pakken passere gjennom brannmuren.
  2. DROP: Avvis pakken og kast den uten svar.
  3. AVVIST: Avvis pakken og send avsenderen en ICMP-feilmelding.
  4. LOG: Logg pakken i systemloggen og utfør en annen handling (f.eks. ACCEPT eller DROP).
  5. KOMME TILBAKE: Slutt å sjekke reglene i gjeldende kjede og gå tilbake til ringekjeden (hvis aktuelt).

For å starte oppsettet, åpne listen over eksisterende regler med kommandoen:

iptables -L
Konfigurere brannmur på Linux

Som en guide for å konfigurere Iptables, la oss se på praktiske eksempler på de mest brukte kommandoene. For enkelhets skyld deler vi eksemplene inn i 3 grupper, avhengig av den spesifikke kjeden.

Kjede INPUT:

  1. Tillat innkommende trafikk via TCP-protokoll på port 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Tillat innkommende trafikk via UDP-protokoll på port 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Blokker innkommende trafikk fra en bestemt IP-adresse:

iptables -A INPUT -s 192.168.1.100 -j DROP

Kjede UTGANG:

  1. Tillat utgående trafikk via TCP-protokoll på port 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Tillat utgående trafikk via UDP-protokoll på port 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Blokker utgående trafikk til en bestemt port (for eksempel 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Kjede FRAMOVER:

  1. Blokker videresendt trafikk fra et spesifikt utvalg av IP-adresser:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Blokker videresending av pakker fra et spesifikt nettverksgrensesnitt:

iptables -A FORWARD -i eth1 -j DROP

3. Begrens antall samtidige tilkoblinger for en spesifikk port (i dette eksemplet, 10 tilkoblinger per minutt på port 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Som du kan se, brukes et ekstra argument (kommando) i hvert enkelt tilfelle. For å få en fullstendig liste over mulige argumenter og generell støtte for verktøyets funksjonalitet, skriv inn:

iptables -h
iptables linux oppsett kommandoliste

For å sikre at innstillingene er riktige, skriv inn kommandoen på nytt for å se listen over regler:

iptables -L
Sjekker iptables linux regler

For å slette en bestemt regel, bruk kommandoen:

iptables -D chain rule_number

For eksempel, hvis du ønsker å slette regel nummer 1 fra INPUT-kjeden, vil kommandoen se slik ut:

iptables -D INPUT 1

Slik sletter du alle regler med én kommando:

iptables -F

Viktig merknad: iptables-regler lagres ikke automatisk etter omstart av systemet eller tjenesten. For å lagre reglene må de legges til i en konfigurasjonsfil og gjenopprettes etter omstart. De iptables-lagre og iptables-restore verktøy kan hjelpe med dette. For å lagre reglene, skriv inn kommandoen:

iptables-save > /etc/iptables/rules.v4

Dette lagrer de gjeldende iptables-reglene i rules.v4-filen. For å gjenopprette etter omstart, skriv inn:

iptables-restore < /etc/iptables/rules.v4

Denne kommandoen gjenoppretter reglene fra filen rules.v4.

Konklusjon

Konfigurering av brannmur på Linux ved hjelp av brannmur eller iptables er et viktig aspekt for å sikre serversikkerhet. Begge verktøyene tilbyr pålitelige metoder for å administrere nettverkstrafikk og beskytte systemet mot uautorisert tilgang og nettangrep. Valget mellom brannmur og iptables avhenger av brukerens spesifikke behov og preferanser, med tanke på deres forskjellige funksjonalitet og styrker.

❮ Forrige artikkel Serverbelastningsdiagnostikk
Neste artikkel ❯ Linux-brukere: administrasjon og tillatelser

Spør oss om VPS

Vi er alltid klare til å svare på spørsmålene dine når som helst på dagen eller natten.