Uautoriseret adgang og serverhacking er alvorlige trusler. Derfor bør du implementere en firewall som del af din netværkssikkerhed. At kunne arbejde med iptables-regler er en af de vigtigste kompetencer til at mindske disse risici på dine Linux-systemer. Dette tutorial guiderer dig gennem grundlæggende firewall-koncepter som at vise iptables-regler og fjerne iptables-regler på Ubuntu, så du kan køre simple kommandoer til at nå målet. Før vi diskuterer hvordan man lister eller sletter iptables-regler, lad os først forklare hvad iptables-regler er og hvorfor vi bruger dem.
- Hvad er Iptables?
- En komplet guide til Iptables på Ubuntu
- Hvordan fjerner man iptables-regler?
- Hvordan spøler man alle regler, sletter alle kæder og accepterer alt?
- Hvordan sætter man iptables op i Ubuntu?
- Hvad er forskellen mellem iptables og firewalld?
- Afsluttende tanker: iptables viser regler
- Ofte stillede spørgsmål
Hvad er Iptables?
iptables er et kommandolinje-firewallværktøj, der tillader eller blokerer trafik via politikkæder. Når forbindelser forsøges oprettet på dit system, søger iptables efter en regel på listen, der matcher dem, og giver dig en god assistent inden for netværkssikkerhed. Hvis den ikke finder en for en forbindelse, bruges standardhandlingen.
iptables kommer næsten altid forinstalleret på enhver Linux-distribution. Du kan bruge følgende kommando til at opdatere eller installere det:
sudo apt-get install iptables
Hvorfor bruger vi Iptables?
Som Linux kommandolinje-firewall tillader iptables systemadministratorer at håndtere indgående og udgående trafik via konfigurérbare tabelregler. Iptables bruger et sæt tabeller med kæder, der indeholder et sæt indbyggede eller brugerdefinerede regler.
Som nævnt i det foregående afsnit spiller iptables en vigtig rolle i netværkssikkerheden for de fleste Linux-systemer. Resten af denne artikel fokuserer hovedsageligt på at beskrive iptables liste over alle regler, herunder koncepter som hvordan man viser iptables og fjerner iptables-regler.
Mere specifikt vil denne artikel diskutere nogle af de vigtigste iptables-opgaver for at vise dig, hvordan du viser regler, sletter pakke- og byte-tællere, fjerner iptables-regel, tømmer kæder og sletter alle kæder og accepterer al trafik.
En komplet guide til Iptables på Ubuntu
Før du giver dig i gang med iptables viser regler, skal du være opmærksom på, at du skal bruge en Linux-server med iptables-kommandoen installeret. Ud over disse krav er det vigtig at have sudo-rettigheder. Når du arbejder med firewalls, skal du være opmærksom på ikke at låse dig selv ude fra din server ved at blokere SSH-trafik (port: 22, som standard). Hvis du mister adgangen på grund af dine firewall-indstillinger, skal du muligvis oprette forbindelse til den via en out-of-band-konsol for at reparere det.
Læs også: Sådan ændrer du SSH-porten i Linux | Trinvis vejledning til din SSH-port
Listen regler efter specifikation
Du kan se dine aktive iptables-regler i en tabel eller som en liste over regelspecifikationer. Næsten begge metoder giver samme information i forskellige formater. For at vise alle regler for den aktive iptables efter specifikation skal du køre iptables-kommandoen med -S mulighed:
sudo iptables -S
Efter at have kørt denne iptables-kommando til at vise regler, får du et output som dette:

Visning af en specifik kæde
Hvis du vil begrænse outputtet af show iptables til en specifik kæde som INPUT, OUTPUT eller TCP, kan du angive kædenavnet direkte efter -S-muligheden. For eksempel hjælper følgende iptables show rules-kommando med at angive i TCP-kæden:
sudo iptables -S TCP

Som vi nævnte tidligere, findes der en anden måde at se iptables-regler på: ved at vise iptables-regler som en tabel. Lad os gennemgå denne teknik.
Listen regler som tabeller
Du kan sammenligne forskellige regler ved at bruge en kommando til at vise iptables-regler i tabeller. Du skal køre følgende kommando til at vise iptables-regler med -L mulighed for at udlæse alle disse aktive regler i en tabel:
sudo iptables -L
Denne kommando viser alle nuværende regler sorteret efter kæder. Du kan begrænse udlæsningen til en bestemt kæde såsom INPUT, OUTPUT, TCP osv. ved at angive kædenavnet direkte efter -L-indstillingen. Her er et eksempel på at begrænse iptables-regelvisning til INPUT-kæden:
sudo iptables -L INPUT

Den første linje i ovenstående udlæsning viser kædenavnet (INPUT i dette tilfælde) og dens standardpolitik (DROP). Den næste linje indeholder kolonneoverskrifterne for tabellen og kædens regler. Vi gennemgår dem, så du lærer dem alle:
- Target: Hvis en pakke matcher reglen, bestemmer target, hvad der skal ske med den. Du kan få en pakke accepteret, droppet, logget eller sendt til en anden kæde for at blive sammenlignet med flere regler.
- prot: Protokollen (såsom TCP, udp, ICMP eller all)
- opt: angiver IP-indstillinger (bruges sjældent)
- source: viser kildens IP-adresse/netværk for trafikken
- destination: viser destinationens IP-adresse/netværk for trafikken
Kolonnen uden etiket angiver en regels indstillinger og er enhver del af reglen, som ikke er angivet i de forrige kolonner. Disse oplysninger kan være alt fra kilde- og destinationsporte til pakkens forbindelsesstatus.
Læs også: Installer OpenVPN på VPS – OpenVPN-klientopsætning 🔑
Hvordan vises pakketællinger og samlet størrelse?
Når du viser iptables-regler, kan du se antallet af pakker og den samlede størrelse af pakker i bytes, der matcher hver enkelt iptables-regel. Dette er ofte nyttigt til at forstå, hvilke regler der matcher pakker. Du skal bruge -L og -v-indstillinger sammen for at gennemføre dette det.
Her er et eksempel, hvor vi bruger INPUT-kæden igen med -v-indstillingen:
sudo iptables -L INPUT -v

Bemærk, at vores liste nu har to yderligere kolonner navngivet pkts og bytes. Vi har lært forskellige måder at udføre kommandoer til at vise alle iptables-regler på, og det er nu tid til at vide, hvordan man nulstiller pakketal og samlet størrelse.
Hvordan nulstilles pakketællinger og samlet størrelse?
Du skal bruge -Z-indstillingen, hvis du ønsker at nulstille eller rydde pakke- og byteoptællere for dine regler. De nulstilles også ved en genstart, hvilket er nyttigt, hvis du vil se, om serveren modtager ny trafik, der matcher dine eksisterende regler.
Du kan rydde optællerne for alle kæder og regler ved hjælp af -Z mulighed for sig selv:
sudo iptables -Z
For at fjerne optællerne for alle regler i en bestemt kæde skal du bruge -Z-indstillingen og angive kæden. For eksempel bruges følgende kommando til at rydde INPUT-kædens optællere:
sudo iptables -Z INPUT
Hvis du ønsker at fjerne optællerne for en bestemt regel, skal du præcist angive kædenavnet og regelnummeret. Du kan for eksempel udføre følgende kommando for at nulstille optællerne for den første regel i INPUT-kæden:
sudo iptables -Z INPUT 1
Ud over at kende kommandoer til at vise alle iptables-regler og måder at nulstille iptables-pakke- og byteoptællere på, er det godt at vide, hvordan man fjerner en iptables-regel.
Hvordan fjerner man iptables-regler?
Du kan bruge flere kommandoer til at fjerne iptables-regler eller endda slette alle regler i en kæde. Her gennemgår vi disse metoder.
Fjern regler efter specifikation
En af måderne at fjerne iptables-regler på er via regelspecifikation. Det giver dig mulighed for at køre iptables-kommandoen med -D mulighed og regelspecifikationen. Hvis du vil fjerne regler ved hjælp af denne teknik, kan du bruge output fra regeloversigten, iptables -S, til hjælp.
For eksempel kan du slette reglen, der dropper ugyldige indgående pakker (-A INPUT -m conntrack –ctstate INVALID -j DROP), ved at køre følgende kommando:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Bemærk, at -A-indstillingen bruges til at angive regelposition ved oprettelse og skal udelades her.
Fjern regler efter kæde og nummer
Den anden metode, du kan bruge til at fjerne iptables-regler, er via dens kæde og linjenummer. Skriv følgende kommando for at vælge et regels linjenummer, vise reglerne i tabelformat og tilføje –line-numbers-indstillingen:
sudo iptables -L --line-numbers

Efter at have kørt dette har alle iptables-regler deres linjenummer, vist af num-headeren.
Når du ved, hvilken regel du gerne vil slette, og du har dens kæde og linjenummer i tankerne, skal du bruge iptables -D-kommandoen med kæden og regelens nummer. For eksempel, hvis du vil slette inputreglen, der dropper ugyldige pakker, kan du se, at det er regel 3 i INPUT-kæden. Kør så denne kommando:
sudo iptables -D INPUT 3
Hvordan spøler man kæder?
Der er en måde at fjerne alle iptables-regler i en kæde på, hvilket vi kalder spoling af en kæde. Her gennemgår vi de forskellige metoder til at gøre dette. Før du fortsætter, skal du være opmærksom på ikke at blive låst ude af serveren via SSH, når du spuler en kæde med en standardpolitik for drop eller deny. Fordi hvis du gør det, skal du muligvis forbinde til det via konsollen for at rette din adgang.
Spul en enkelt kæde
For at spule en bestemt kæde, eller med andre ord slette alle regler i kæden, kan du bruge -F eller det tilsvarende –flush-indstilling og navnet på den valgte kæde. Siger du vil fjerne alle regler i INPUT-kæden; hvad skal du gøre? Nå, det er nemt, kør følgende kommando:
sudo iptables -F INPUT
Spul alle kæder
For at fjerne alle kæder eller spule dem kan du bruge -F eller den tilsvarende –flush-indstilling alene:
sudo iptables -F
Hvordan spøler man alle regler, sletter alle kæder og accepterer alt?
På dette punkt vil vi beskrive, hvordan du spuler alle firewall-regler, tabeller og kæder og tillader al netværkstrafik. Vær opmærksom på, at denne proces effektivt deaktiverer firewallen. Så du bør kun følge dette afsnit, hvis du vil starte forfra med din firewall-konfiguration.
Du skal først indstille standardpolitikkerne for hver af de indbyggede kæder til ACCEPT. Den primære grund til, at vi gør dette, er at sikre, at du ikke bliver låst ude af serveren via SSH:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Derefter skal du spule nat- og mangle-tabellerne, spule alle kæder (-F)og slette alle ikke-standardkæder (-X) sådan:
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
Efter at have kørt de foregående kommandoer tillader firewallen al netværkstrafik. Hvis du vil vise dine regler nu, vil du se, at der ikke er nogle; kun de tre standardkæder som INPUT-, FORWARD- og OUTPUT-kæder forbliver.
Hvordan sætter man iptables op i Ubuntu?
Som med enhver grundlæggende firewall-adfærd kan iptables-regler læses i den rækkefølge, de er anført på hver kæde, hvilket betyder, at du skal indstille reglerne i den korrekte rækkefølge. Når du tilføjer nye regler, vil de blive tilføjet til slutningen af regellisten. Du kan tilføje nye regler til en bestemt listemposition ved at indsætte dem ved hjælp af iptables -I <index> -kommando. Det <index> er for det ordningsnummer, du ønsker at indsætte reglen i denne kommando. Du kan bruge følgende kommando til at forstå, hvilket indeksnummer du skal angive:
sudo iptables -L --line-numbers
Nummeret ved starten af hver regelline viser placeringen i kæden. For at tilføje en ny regel over en eksisterende regel skal du bruge indeksnummeret for den eksisterende regel. Hvis du fx vil tilføje en ny regel øverst i kæden, skal du bruge følgende kommando med indeksnummer 1:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Hvad er forskellen mellem iptables og firewalld?
Både iptables og firewalld er praktiske værktøjer til at administrere firewalls på forskellige Linux-systemer, som er specifikt designet til pakkefiltrering (statisk filtrering). Pakkefiltrering er en firewall-strategi, der giver brugerne kontrol over adgangen til et specifikt netværk ved at styre indgående og udgående informationspakker. De tillader dem at passere gennem eller blokerer dem baseret på forudindstillede firewall-regler om deres kilde- og destinationsprotokoller, porte og IP-adresser. Disse regler giver meget effektive sikkerhedsmekanismer, hvilket gør pakkefiltrering til en god forsvar mod enheder, der dirigeres uden for systemets LAN (Local Area Network).
Bemærk, at firewalld oprindeligt blev introduceret som software til at håndtere iptables for at gøre det nemmere for brugerne at navigere det. Med introduktionen af firewalld og iptables, lad os sammenligne dem mere detaljeret.
iptables vs firewalld: Systemkonfiguration
Firewalld og iptables bruger forskellige konfigurationer og standardlagringssindstillinger. Med iptables betyder hver ændring, at alle gamle regler bliver fjernet, og nye bliver læst, så systemet skal genstarte. Med firewalld bliver reglerne derimod ikke genskabt. I stedet bliver ændringerne anvendt på de eksisterende regler, så du kan se dem træde i kraft under kørsel.
iptables vs firewalld: Brugergrænseflade
Firewalld bruger en grafisk brugergrænseflade (GUI). iptables bruger derimod en kommandoliniegrænseflade (CLI), hvilket kan være udfordrende for nogle, når de skal få adgang til Linux-kernens firewall-regler ved hjælp af iptables, så firewalld er et mere ligetil valg. Det er værd at bemærke, at iptables har en kortere responstid, da du kun bruger korte kommandoer. Bortset fra det har begge deres anvendelsestilfælde, så vælg den, som du er mest komfortabel med at arbejde med.
Afsluttende tanker: iptables viser regler
Iptables er et yderst fleksibelt firewall-værktøj, der specifikt er skabt til Linux-operativsystemer. Det betyder ikke noget, om du er ny til Linux eller en erfaren systemadministrator; der er måder, hvorpå iptables-regler kan være nyttige for dig. Denne artikel præsenterede primært grundlæggende kommandoer til dette firewall-værktøj, herunder visning af iptables-regler og fjernelse af iptables-regler, med det formål kort at gennemgå Linux-funktionerne. Desuden kan du bruge vores Linux VPS hosting-løsninger til at udnytte det fulde potentiale i dette fantastiske operativsystem. På Cloudzy tilbyder vi forskellige KVM-drevne Linux VPS-planer, der egner sig til flere anvendelsestilfælde, såsom webhosting, udrulning af en web-app eller opsætning af et miljø til udvikling, test og automatisering af kode.
Ofte stillede spørgsmål
Hvordan viser man alle Linux iptables-regler efter specifikation?
Hvis du vil vise alle de aktive iptables-regler efter deres specifikation eller funktionalitet, kan du gøre det med iptables-kommandoen efterfulgt af -S flag. Vær opmærksom på at bruge sudo nøgleordet i dette tilfælde:
sudo iptables -S
Hvordan fjerner man iptables-regler?
For at fjerne en specifik kæde, som sletter alle regler i kæden, skal du bruge indstillingen -F eller –flush og navnet på kæden. Lad os sige, at vi vil slette alle regler i OUTPUT-kæden. Hvad gør vi? Nå, du skal udføre denne kommando:
sudo iptables -F OUTPUT
Hvordan fungerer iptables i Ubuntu?
Firewall'en iptables sammenligner netværkstrafik med et sæt regler. iptables-reglerne angiver karakteristika for en pakke, der skal passe til reglen, og hvilken handling der skal udføres, hvis pakker matcher. Selvfølgelig er der mange muligheder for at indstille, hvilke pakker der matcher en specifik regel.
Træder iptables-regler i kraft med det samme? Hvorfor?
Ja, iptables-regler træder i kraft øjeblikkeligt, fordi dit script tilføjer til INPUT- og OUTPUT-kæderne, og dine regler føjes til slutningen af disse kæder.