Vidensdatabase Enkle instruktioner til at arbejde med Profitserver-tjenesten
Main Vidensdatabase Konfiguration af firewall på Linux

Konfiguration af firewall på Linux


Firewall på Linux spiller en afgørende rolle i sikringen af ​​et computersystem. Det fungerer som en barriere, kontrollerer og filtrerer netværkstrafikken for at beskytte systemet mod uautoriseret adgang, angreb og andre trusler. Uden en korrekt konfigureret firewall kan serveren være sårbar over for forskellige typer cyberangreb, hvilket fører til alvorlige konsekvenser for datasikkerhed og fortrolighed.

I denne artikel vil vi se på to hovedværktøjer til konfiguration af Linux Firewall: firewalld og iptables. Vi vil foretage en komparativ analyse af deres funktioner, funktionalitet og fordele. Derudover vil vi give detaljerede instruktioner til opsætning og brug af hvert af disse værktøjer, samt diskutere bedste praksis for at sikre dit system med en firewall på Linux-platformen. Alle handlinger vil blive demonstreret på en virtuel server med root-adgang.

Konfiguration af firewalld på Linux

Firewalld (Firewall Daemon) er et program til styring af firewallen i Linux-operativsystemer. Det giver en brugergrænseflade til at konfigurere firewall-regler, tillade eller blokere forbindelser til netværksapplikationer. Det er som standard forudinstalleret i de fleste serverdistributioner. Hvis Firewalld ikke er forudinstalleret, kan den installeres uafhængigt af distributionens officielle arkiver.

For Red Hat-systemer (såsom RHEL, CentOS, Fedora) udføres installationen med kommandoen:

yum install firewalld

Til Debian/Ubuntu:

apt-get install firewalld

Efter installationen kan den startes og aktiveres med det samme med kommandoen:

systemctl start firewalld

Dernæst skal du tilføje tjenesten til opstart:

systemctl enable firewalld
Tilføjer firewalld i Linux autoload

På dette tidspunkt anbefaler vi at deaktivere ufw, da samtidig brug af dette værktøj med firewalld eller iptables ikke anbefales. Tjek status:

systemctl status ufw
Tjekker ufw linux

For at stoppe det, indtast kommandoen:

systemctl stop ufw

For fuldstændig deaktivering:

ufw disable

Efter disse handlinger kan du fortsætte med at konfigurere firewalld.

For det første er det nødvendigt at definere tillidszoner. Firewalld bruger begrebet zoner til at bestemme tillidsniveauet for netværksgrænseflader. Hver grænseflade er tildelt én zone, og firewall-regler anvendes baseret på zonen. Listen over alle tilgængelige zoner åbnes med kommandoen:

firewall-cmd --get-zones

Typisk bruges 4 hovedzoner:

  1. offentlige: Denne zone er til netværk, som du anser for usikre;
  2. Privat: Gælder for hjemmenetværk eller andre betroede netværksforbindelser;
  3. Intern: Bruges til interne netværk, såsom dem inden for en organisation eller virksomhedsnetværk;
  4. DMZ: Denne zone er, hvor servere normalt placeres, som skal være tilgængelige fra internettet.

Dette er dog kun ét eksempel. Du kan tilføje din egen zone ved hjælp af kommandoen:

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

Efter tilføjelse kræves en genindlæsning:

firewall-cmd --reload

For at slette en zone bruges en lignende metode

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

Efter at have defineret zoner, er det nødvendigt at tillade trafik for de nødvendige tjenester og havne. For at tillade en bestemt tjeneste, brug kommandoen:

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

Hvor navn er navnet på tjenesten. For eksempel, for at tillade trafik for Apache:

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

For at definere tilladte porte skal du bruge kommandoen:

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

For eksempel ville standard 22-porten til SSH se sådan ud:

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

På dette stadium er hovedreglerne allerede oprettet. Dernæst skal du bestemme, hvordan trafikken vil blive behandlet afhængigt af kilden, destinationen, porten og andre kriterier. For at tilføje en regel (ved hjælp af offentlige zone som et eksempel):

firewall-cmd --zone=public rule

For at tillade indgående trafik fra enhver kilde til port 80 (HTTP):

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

Sådan fjerner du en regel:

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

Hvor regere er regeltypen (f.eks. havn, service, rig-regel osv.), og regelspecifikation er specifikationen af ​​selve reglen.

Efter at have foretaget ændringer i Firewalld-konfigurationen, er det nødvendigt at gemme og anvende dem. For at gemme ændringer, brug kommandoen:

firewall-cmd --runtime-to-permanent

Sådan anvender du ændringer:

firewall-cmd --reload

Når du har gennemført opsætningen, kan du verificere de valgte parametre ved at åbne listen over alle regler:

firewall-cmd --list-all
firewalld Linux-regler

Hvis der opstår problemer, skal du kontrollere Firewalld-logfilerne med kommandoen:

journalctl -u firewalld

Bemærk: Vi har kun dækket den generelle algoritme til opsætning af forbindelsen. Værktøjet har omfattende funktionalitet. For fuldstændig information om alle tilgængelige muligheder kan du bruge officiel dokumentation eller åben hjælp:

firewall-cmd --help

Konfiguration af iptables på Linux

I modsætning til Firewalld er iptables et ældre, men stadig meget brugt værktøj i Linux til styring af firewallen. Det giver en mere direkte og fleksibel tilgang til pakkefiltreringsregler på Linux-kerneniveau. Men iptables kræver mere avanceret viden og erfaring sammenlignet med Firewalld, hvilket gør det mindre tilgængeligt for begyndere. Tjek den forudinstallerede version af værktøjet med kommandoen:

iptables -V

Hvis værktøjet ikke er installeret, skal det installeres. Kommandoen til installation på Ubuntu, Debian:

apt install iptables

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

yum install iptables

Kommandoen til aktivering efter installation:

systemctl start iptables

For at tilføje til opstart skal du udføre:

systemctl enable iptables

Før du starter iptables-konfigurationen, er det vigtigt at forstå, hvordan det fungerer. Dette er hjulpet af programmets syntaks. Det ser ud som følger:

iptables -t table action chain additional_parameters

Lad os dykke dybere ned i hvert emne.

Iptables har fire hovedtabeller: filter, nat, mangle og rå. Hver er designet til at behandle visse typer pakker og har sine egne kæder af regler:

  1. filtrere: Dette er den mest brugte tabel, der indeholder pakkefiltreringsregler. Det bruges til at træffe beslutninger om, hvorvidt pakker skal tillades eller afvises.
  2. NAT: Denne tabel bruges til at ændre netværksadresser og porte i pakker. Det bruges ofte til opsætning af masquerading (NAT).
  3. mangle: I denne tabel kan du ændre pakkeoverskrifter. Det bruges til specialiserede pakkeoperationer, såsom markering.
  4. : Denne tabel bruges til at konfigurere regler, der gælder, før de går gennem forbindelsessporingssystemet. Det bruges typisk til at opsætte regler, der ikke bør ændres af sporingssystemet, såsom at droppe pakker fra bestemte adresser.

Hvert bord indeholder et sæt kæder. Kæder er en sekvens af regler, der kontrolleres sekventielt. Der er tre foruddefinerede kæder:

  1. INPUT (indgående). Reglerne i denne kæde bestemmer, hvad der skal gøres med indgående pakker.
  2. OUTPUT (udgående). Denne kæde gælder for alle pakker, din computer sender til andre enheder eller computere på netværket.
  3. FORWARD (videresendelse). Reglerne i denne kæde angiver, hvad der skal gøres med videresendte pakker.

Endelig har hver kæde en eller anden handling (mål). I praksis bruges 5 hovedhandlinger:

  1. ACCEPTER: Lad pakken passere gennem firewallen.
  2. DROP: Afvis pakken og kasser den uden noget svar.
  3. AFVIS: Afvis pakken og send afsenderen en ICMP-fejlmeddelelse.
  4. LOG: Log pakken i systemloggen og udfør en anden handling (f.eks. ACCEPT eller DROP).
  5. RETURN: Stop med at tjekke reglerne i den aktuelle kæde og vend tilbage til opkaldskæden (hvis relevant).

For at starte opsætningen skal du åbne listen over eksisterende regler med kommandoen:

iptables -L
Konfiguration af firewall på Linux

Som en guide til konfiguration af Iptables, lad os se på praktiske eksempler på de mest almindeligt anvendte kommandoer. For nemheds skyld opdeler vi eksemplerne i 3 grupper, afhængigt af den specifikke kæde.

Kæde INPUT:

  1. Tillad indgående trafik via TCP-protokol på port 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Tillad indgående trafik via UDP-protokol på port 22:

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

3. Bloker indgående trafik fra en bestemt IP-adresse:

iptables -A INPUT -s 192.168.1.100 -j DROP

Kæde PRODUKTION:

  1. Tillad udgående trafik via TCP-protokol på port 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Tillad udgående trafik via UDP-protokol på port 80:

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

3. Bloker udgående trafik til en bestemt port (f.eks. 21):

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

Kæde FORWARD:

  1. Bloker videresendt trafik fra en bestemt række IP-adresser:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Bloker videresendelse af pakker fra en specifik netværksgrænseflade:

iptables -A FORWARD -i eth1 -j DROP

3. Begræns antallet af samtidige forbindelser for en specifik port (i dette eksempel 10 forbindelser pr. minut på port 80):

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

Som du kan se, bruges der i hvert enkelt tilfælde et ekstra argument (kommando). For at få en komplet liste over mulige argumenter og overordnet støtte til værktøjets funktionalitet skal du indtaste:

iptables -h
iptables linux opsætningskommandoliste

For at sikre, at indstillingerne er korrekte, skal du genindtaste kommandoen for at se listen over regler:

iptables -L
Tjek iptables linux regler

For at slette en bestemt regel, brug kommandoen:

iptables -D chain rule_number

For eksempel, hvis du vil slette regel nummer 1 fra INPUT-kæden, vil kommandoen se sådan ud:

iptables -D INPUT 1

For at slette alle regler med én kommando:

iptables -F

Vigtig bemærkning: iptables-regler gemmes ikke automatisk efter genstart af systemet eller tjenesten. For at gemme reglerne skal de tilføjes til en konfigurationsfil og gendannes efter genstart. De iptables-gem og iptables-gendannelse forsyningsselskaber kan hjælpe med dette. Indtast kommandoen for at gemme reglerne:

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

Dette gemmer de aktuelle iptables-regler i filen rules.v4. For at gendanne efter genstart skal du indtaste:

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

Denne kommando gendanner reglerne fra filen rules.v4.

Konklusion

Konfiguration af Firewall på Linux ved hjælp af firewalld eller iptables er et vigtigt aspekt af at sikre serversikkerhed. Begge værktøjer tilbyder pålidelige metoder til at styre netværkstrafik og beskytte systemet mod uautoriseret adgang og cyberangreb. Valget mellem firewalld og iptables afhænger af brugerens specifikke behov og præferencer i betragtning af deres forskellige funktionalitet og styrker.

❮ Forrige artikel Linux-brugere: Administration og tilladelser
Næste artikel ❯ Serverbelastningsdiagnostik

Spørg os om VPS

Vi er altid klar til at besvare dine spørgsmål når som helst på dagen eller natten.