Uautoriseret adgang og hacking-servere er alvorlige trusler, og derfor bør du implementere en firewall som en del af din netværkssikkerhedsteknik. At vide, hvordan man arbejder med Iptables-regler er et af de primære aktiver til at mindske disse risici på dine Linux-systemer. Denne tutorial vil guide dig til at blive fortrolig med grundlæggende firewall-koncepter såsom iptables viser regler og fjern iptables regler i Ubuntu, der hjælper dig med at køre enkle kommandoer for at opnå dette. Før vi diskuterer, hvordan man viser iptables-regler eller sletter dem, lad os tale om, hvad iptables-regler er, og hvorfor vi bruger dem?
Hvad er Iptables?
iptables er et kommandolinje firewall-værktøj, der tillader eller blokerer trafik via politiske kæder. Når forbindelser forsøger at blive oprettet på dit system, leder iptables efter en regel på listen, der matcher dem, hvilket giver dig en ordentlig assistent i netværkssikkerhed. Hvis den ikke finder en til en forbindelse, tyer den til standardhandlingen.
iptables kommer næsten altid forudinstalleret på enhver Linux distribution. Du kan bruge følgende kommando til at opdatere eller installere den:
sudo apt-get install iptables
Hvorfor bruger vi Iptables?
Som en Linux kommandolinje firewall giver iptables systemadministratorer mulighed for at håndtere indgående og udgående trafik via konfigurerbare 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 væsentlig rolle i netværkssikkerhed for de fleste Linux-systemer. Resten af denne artikel er hovedsageligt fokuseret på at beskrive iptables lister alle regler, inklusive begreber som hvordan man viser iptables og fjerner iptables regler.
Mere specifikt vil denne artikel diskutere nogle af de væsentlige iptables-opgaver for at vise dig, hvordan du kan liste regler, slette pakke- og byte-tællere, fjerne Iptables-reglen, tømme kæder og slette alle kæder og acceptere al trafik.
En komplet guide til Iptables i Ubuntu
Før du går gennem iptables show-regler, skal du bemærke, at du skal bruge en Linux-server med iptables-kommandoen installeret. Ud over disse krav er det vigtigt at have sudo-privilegier. Når du arbejder med firewalls, skal du være opmærksom på ikke at låse dig ude af din server ved at blokere SSH-trafik (port:22, som standard). Hvis du mister adgang på grund af dine firewall-indstillinger, skal du muligvis oprette forbindelse til den via en out-of-band-konsol for at rette det.
Læs også: Sådan ændres SSH-porten i Linux | En hurtig trin-for-trin guide til din SSH-port
Listeregler efter specifikation
Du kan se dine aktive iptables-regler i en tabel eller som en liste over regelspecifikationer. Næsten begge metoder giver den samme information i forskellige formater. For at liste alle regler for de aktive iptables efter specifikation, skal du køre kommandoen iptables med -S mulighed:
sudo iptables -S
Efter at have kørt denne iptables show rules-kommando, vil du se et output som dette:

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

Som vi nævnte før, er der en anden måde at få iptables til at vise regler gennemført: at se iptables regler som en tabel med regler. Lad os gennemgå denne teknik.
Listeregler som tabeller
Brug af en kommando til at vise iptables-regler i tabellerne kan hjælpe med at sammenligne forskellige regler. Du skal køre følgende show iptables-kommando med -L mulighed for at udlæse alle disse aktive regler i en tabel:
sudo iptables -L
Denne kommando viser alle de aktuelle regler sorteret efter kæder. Der er en måde, hvorpå du kan begrænse outputtet til en bestemt kæde, såsom INPUT, OUTPUT, TCP osv.; du skal angive kædenavnet direkte efter -L-indstillingen. Her er et eksempel på begrænsning af iptables show-regler til INPUT-kæden:
sudo iptables -L INPUT

Den første linje i ovenstående output viser kædenavnet (INPUT, i dette tilfælde) og dens standardpolitik (DROP). Den følgende linje indeholder overskrifterne for hver kolonne i tabellen og kædens regler. Vi vil gennemgå dem for at hjælpe dig med at lære dem alle:
- Mål: Hvis en pakke svarer til reglen, bestemmer målet, hvad der skal gøres 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 (som TCP, udp, ICMP eller alle)
- opt: angiver IP-indstillinger (bruges sjældent)
- kilde: viser kildens IP-adresse/undernet for trafikken
- destination: præsenterer destinationens IP-adresse/undernet af trafikken
Kolonnen uden etiket foreslår en regels muligheder, og det er enhver del af reglen, der ikke er angivet i de foregående kolonner. Disse oplysninger kan være alt fra kilde- og destinationsporte til pakkens forbindelsestilstand.
Hvordan viser man pakkeantal og aggregeret størrelse?
Når vi opstiller iptables-regler, kan vi vise antallet af pakker og den samlede størrelse af pakkerne 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 muligheder sammen for at opnå denne.
Her er et eksempel, hvor vi vil bruge INPUT-kæden igen, med -v-indstillingen:
sudo iptables -L INPUT -v

Bemærk, at vores liste nu har to kolonner mere pkts og bytes. Vi har lært forskellige måder at få iptables til at vise alle regelkommandoer udført, og det er nu tid til at vide, hvordan man nulstiller pakkeantal og aggregeret størrelse.
Hvordan nulstiller man pakkeantallet og den samlede størrelse?
Du skal bruge indstillingen-Z, hvis du kan lide clear eller nul pakke- og byte-tællere for dine regler. De nulstilles også, hvis der sker en genstart, hvilket er nyttigt, hvis du vil se, om serveren modtager ny trafik, der matcher dine eksisterende regler.
Du kan rydde tællerne for alle kæder og regler ved hjælp af -Z mulighed i sig selv:
sudo iptables -Z
For at fjerne tællerne for alle regler i en specifik kæde, skal du bruge indstillingen -Z og angive kæden. For eksempel bruges følgende kommando til at rydde INPUT-kædetællerne:
sudo iptables -Z INPUT
Hvis du vil fjerne tællerne for en bestemt regel, skal du nævne kædenavn og regelnummer præcist. For eksempel kan du udføre følgende kommando for at nulstille tællerne for den første regel i INPUT-kæden:
sudo iptables -Z INPUT 1
Ud over at kende iptables viser alle regler kommandoer og måder at nulstille iptables pakke og byte tællere, er det godt at vide, hvordan man fjerner iptables reglen.
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 vil vi diskutere disse metoder,
Fjern regler efter specifikation
En af måderne at fjerne iptables-regler på er at gøre det 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 outputtet fra regellisten, iptables -S, for at få hjælp.
For at slette reglen, der fjerner ugyldige indgående pakker (-A INPUT -m conntrack –ctstate INVALID -j DROP), kan du udføre følgende kommandolinje:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Vær opmærksom på, at -A-indstillingen er til at angive regelpositionen på oprettelsestidspunktet og bør udelukkes 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. Indtast følgende kommando for at vælge en regels linjenummer, angiv reglerne i tabelformatet og tilføj -linje-numre mulighed:
sudo iptables -L --line-numbers

Efter at have kørt dette, har alle iptables-regler deres linjenummer, vist med nummeroverskriften.
Når du ved, hvilken regel du gerne vil slette, skal du have dens kæde og linjenummer i dit sind. Du skal bruge kommandoen iptables -D med kæden og regelnummeret. For eksempel, hvis du vil slette inputreglen, der fjerner ugyldige pakker, kan du se, at det er regel 3 i INPUT-kæden. Så kør denne kommando:
sudo iptables -D INPUT 3
Hvordan skyller man kæder?
Der er en måde, hvorpå du kan fjerne alle Iptables-regler i en kæde, som vi kalder skylning af en kæde. Her vil vi dække de forskellige metoder til at gøre dette. Før du går videre, skal du være opmærksom på ikke at blive låst ude af serveren via SSH, når du skyller en kæde med en standardpolitik om drop eller deny. For hvis du gør det, skal du muligvis oprette forbindelse til den via konsollen for at rette din adgang.
Skyl en enkelt kæde
For at skylle en specifik kæde eller med andre ord slette alle reglerne i kæden, kan du bruge -F eller tilsvarende – mulighed for skylning og navnet på den valgte kæde. Lad os sige, at du vil fjerne alle reglerne i INPUT-kæden; hvad skal man gøre? Nå, det er nemt, kør følgende kommando:
sudo iptables -F INPUT
Skyl alle kæder
For at fjerne alle kæder eller skylle dem, kan du bruge -F eller den tilsvarende -skylle mulighed alene:
sudo iptables -F
Hvordan fjerner man alle regler, sletter alle kæder og accepterer alle?
På dette tidspunkt vil vi beskrive, hvordan man fjerner alle firewall-regler, tabeller og kæder og tillader al netværkstrafik. Vær opmærksom på, at denne proces effektivt vil deaktivere 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 årsag til, at vi gør dette, er at sikre, at du ikke bliver låst ude fra serveren med SSH:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Så skal du skylle nat- og manglebordene, skylle alle kæder (-F), og slet alle ikke-standardkæder (-X) sådan her:
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
Efter at have kørt de tidligere kommandoer, vil firewallen tillade al netværkstrafik. Hvis du vil liste dine regler nu, vil du se, at der ikke er nogen; kun de tre standardkæder såsom INPUT-, FORWARD- og OUTPUT-kæder er tilbage.
Hvordan indstilles iptables i Ubuntu?
Som med enhver grundlæggende firewalladfærd kan iptables-reglerne læses i den rækkefølge, der er angivet på hver kæde, hvilket betyder, at du bliver nødt til at indstille reglerne i den rigtige rækkefølge. Når du har tilføjet nye regler, vil du få dem tilføjet til slutningen af regellisten. Du kan tilføje nye regler til en bestemt listeposition ved at indsætte dem vha iptables -I <indeks> -kommando. De <indeks> er for det ordrenummer, du ønsker at indsætte reglen i denne kommando. Du kan bruge følgende kommando til at forstå, hvilket indeksnummer du skal indtaste:
sudo iptables -L --line-numbers
Tallet i starten af hver regellinje viser positionen i kæden. For at tilføje en ny regel over en specifik eksisterende regel, skal du bruge indeksnummeret for den eksisterende regel. For eksempel, hvis du kan lide at tilføje en ny regel til toppen af kæden, skal du bruge følgende kommando med indeksnummer 1:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Hvordan adskiller iptables sig fra firewalld?
Både iptables og firewalld er praktiske værktøjer til at administrere firewalls på forskellige Linux-systemer, der er eksplicit designet til pakkefiltrering (statisk filtrering). Pakkefiltrering er en firewall-strategi, der gør det muligt for brugere at kontrollere adgangen til et specifikt netværk via styring af indgående og udgående informationspakker. De tillader dem enten at passere eller nægte dem baseret på forudindstillede firewall-regler om deres kilde- og destinationsprotokoller og porte og IP-adresser. Disse regler giver meget effektive sikkerhedsmekanismer, hvilket gør filtrering af informationspakke til et godt 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 hjælpe med at gøre det nemmere for brugeren at navigere i det. Med denne introduktion af firewalld og iptables, lad os sammenligne dem mere detaljeret.
iptables vs firewalld: Systemkonfiguration
Firewalld og iptables bruger forskellige konfigurationer og standardlagringsindstillinger. Med iptables betyder enhver ændring at skylle alle de gamle regler ud og læse de nye, så systemet skal genstarte. Men ved at bruge firewalld bliver reglerne ikke genskabt; i stedet anvendes de foretagne uligheder og ændringer for at ændre 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). Alligevel bruger iptables en kommandolinjegrænseflade (CLI), hvilket kan være en udfordring for nogle mennesker at få adgang til Linux-kernens firewall-regler ved hjælp af iptables, hvilket gør firewalld til en mere ligetil mulighed. Det ville være bedst at overveje, at iptables har en kortere responstid, da du kun bruger korte kommandoer. Bortset fra alt dette har begge deres anvendelsesmuligheder, så vælg den, du er mere komfortabel med at arbejde med.
Sidste tanker: iptables viser regler
Iptables er et meget fleksibelt firewall-værktøj specielt skabt til Linux-operativsystemer. Det er ligegyldigt, om du er en nybegynder Linux-nørd eller en professionel systemadministrator; der er en måde, hvorpå iptables-regler kan være nyttige for dig. Denne artikel repræsenterede hovedsageligt grundlæggende kommandoer for dette firewall-værktøj, herunder iptables viser regler og fjerner iptables regler, med det formål kort at gennemgå Linux-kapaciteter. Derudover kan du bruge vores Linux VPS hosting løsninger at udnytte det sande potentiale i dette fantastiske operativsystem. Hos cloudzy tilbyder vi forskellige KVM-drevne Linux VPS-planer, der egner sig til flere brugssager, såsom webhosting, implementering af en webapp eller endda opsætning af et miljø til at udvikle, teste og automatisere kode.
FAQ
Hvordan listes alle Linux iptables-regler efter specifikation?
Hvis du vil vise alle de aktuelt aktive iptables-regler efter deres specifikation eller funktionalitet, kan du gøre det ved iptables-kommandoen efterfulgt af -S flag. Vær opmærksom på at bruge sudo søgeord i dette tilfælde:
sudo iptables -S
Hvordan fjerner man iptables regler?
For at fjerne en specifik kæde, som vil slette alle reglerne i kæden, skal du brug indstillingen -F eller -flush og navnet på kæden. Lad os sige, at vi vil slette alle reglerne i OUTPUT-kæden, hvad skal jeg gøre? Nå, du skal udføre denne kommando:
sudo iptables -F OUTPUT
Hvordan fungerer iptables i Ubuntu?
iptables firewall sammenligner netværkstrafik med et sæt regler. iptables-reglerne specificerer egenskaberne for en pakke, der matcher reglen, og hvilken handling der skal tages, hvis pakker matcher. Selvfølgelig er der mange muligheder for at indstille, hvilke pakker der matcher en bestemt regel.
Træder iptables regler i kraft med det samme? Hvorfor?
Ja, iptables regler træder i kraft øjeblikkeligt; fordi dit script føjes til INPUT- og OUTPUT-kæderne, og dine regler tilføjes til slutningen af disse kæder.