iptables

Ubuntu Iptables Sådan styres netværkstrafik ved hjælp af iptables?

Ubuntu Iptables Sådan styres netværkstrafik ved hjælp af iptables?
“... A user-space Unix-værktøj, der giver systemadministratorer mulighed for at konfigurere IP-pakkefiltreringsregler implementeret af kernens netfiltermodul.” Iptables fungerer som en firewall ved hjælp af regler for pakkefiltrering baseret på forskellige kriterier såsom IP-adresse, port og protokoller.

Denne vejledning diskuterer, hvordan man konfigurerer og bruger iptables-regler på et Ubuntu-system til at sikre dit netværk. Uanset om du er en nybegynder Linux-bruger eller en erfaren systemadministrator, fra denne vejledning og på en eller anden måde vil du lære noget nyttigt om iptables.

Iptables leveres forudinstalleret på Ubuntu og de fleste Debian-baserede distributioner. Ubuntu pakker også GUFW-firewall, et grafisk alternativ, du kan bruge til at arbejde med iptables.

BEMÆRK: For at bruge og konfigurere iptables har du brug for sudo-rettigheder på dit system. Du kan lære mere om sudo fra følgende vejledning.

Nu hvor du ved hvad Iptables er, lad os dykke lige ind!

Sådan bruges iptables til at styre IPv4-trafik?

For at bruge Iptables til IPv4-netværk og trafikstyring skal du forstå følgende:

Iptables-kommandoen

Iptables tilbyder et udvalg af muligheder, der giver dig mulighed for at tilpasse og indstille dine iptables-regler. Lad os diskutere nogle af disse parametre og se, hvad de gør.

BEMÆRK: Du kan konfigurere et sæt regler, der styrer et bestemt undersæt, kendt som iptables-kæder.

Iptables-parametre

Før vi begynder at oprette og konfigurere iptables-regler, lad os først forstå det grundlæggende i iptables, såsom generel syntaks og standardargumenter.

Overvej kommandoen nedenfor:

sudo iptables -I INPUT -s 192.168.0.24 -j DROP

Kommandoen ovenfor fortæller iptables at oprette en regel i kæden. Reglen slipper alle pakker fra IP-adressen 192.168.0.24.

Lad os undersøge kommandoen linje for linje for at forstå den bedre.

Iptables tilbyder et udvalg af parametre, som du kan bruge til at konfigurere forskellige regler. De forskellige parametre, du kan bruge til at konfigurere iptables-regler, inkluderer:

Iptables-regelparameter Beskrivelse
-s-kilde Angiv kilden, som kan være en adresse, et værtsnavn eller et netværksnavn.
-p-protokol Specificerer forbindelsesprotokollen; for eksempel TCP, UDP osv.
-d -destination Angiver destinationen, som kan være en adresse, netværksnavn eller værtsnavn.
-j-spring Indstiller handlingen iptables skal udføres efter at have fundet en pakke.
-o -out-interface Indstiller grænsefladen, gennem hvilken iptable sender pakken.
-i -in-interface Indstiller det interface, der bruges til at etablere netværkspakker.
-c-sæt-tællere Tillader administratoren at indstille byte- og pakketællerne til en bestemt regel.
-g -kæde Parameteren specificerer, at behandlingen skal fortsætte i brugersætkæden ved returnering.
-f -fragment Fortæller iptables, at de kun skal anvende reglen på de andet og de følgende fragmenter af de fragmenterede pakker.

Iptables-indstillinger

Kommandoen iptables understøtter en lang række muligheder. Nogle almindelige inkluderer:

Mulighed Beskrivelse
-A -tilføj Tilføjer en regel til slutningen af ​​en specificeret kæde
-D-slet Fjerner en regel fra den angivne kæde
-F-skyl Fjerner alle regler, en ad gangen
-L-liste Viser alle reglerne i den angivne kæde
-Jeg indsætter Indsætter en regel i den angivne kæde (videregivet som et tal, når der ikke er angivet et nummer; reglen tilføjes øverst)
-C -kontrol Forespørgsler efter en regelmatchning krav i en specificeret regel
-v -verbose Viser flere detaljer, når de bruges med -L-parameteren
-N-ny kæde Tilføjer en ny brugerdefineret kæde
-X-slet-kæde Fjerner en bestemt brugerdefineret kæde

Iptables-tabeller

Linux-kernen har standardtabeller, der indeholder et sæt relaterede regler. Disse standardtabeller har et sæt standardkæder, men brugere kan tilpasse reglerne ved at tilføje brugerdefinerede regler.

BEMÆRK: Standardtabellerne afhænger stærkt af din kernekonfiguration og de installerede moduler.

Her er standardtabellerne iptables:

1: Filtertabellerne

Filtertabellen er en standardtabel, der indeholder kæder, der bruges til netværkspakkefiltrering. Nogle af standardkæderne i denne tabel inkluderer:

Kæde Beskrivelse
Indgang Iptables bruger denne kæde til alle indkommende pakker til systemet, dvs.e., pakker, der går til lokale netværksstik.
Produktion Iptables bruger outputkæden til lokalt genererede pakker, dvs.e., pakker, der går ud af systemet.
Frem Denne kæde er, hvad Iptables bruger til pakker, der dirigeres eller videresendes via systemet.

2: NAT-tabellerne

NAT eller Network Address Table er en routing-enhed, der bruges til at ændre kilden og målrette IP-adresser i en netværkspakke. NAT-tabelens vigtigste anvendelse er at forbinde to netværk i et privat adresseområde med det offentlige netværk.

NAT blev udviklet til at understøtte maskering af ægte IP-adresser, så private IP-adresser strækker sig fra at nå det eksterne netværk. Dette hjælper med at beskytte detaljer om interne netværk fra at blive afsløret i offentlige netværk.

NAT-tabellen bliver ansat, når en pakke initierer en ny forbindelse.

Iptables har en standardtabel til NAT-adressering. Denne tabel har tre hovedkæder:

Kæde Beskrivelse
FORUDSÆTNING Tillader ændring af pakkeinformation, inden de ankommer til INPUT-kæden, der bruges til indkommende pakker
PRODUKTION Reserveret til pakker oprettet lokalt, dvs.e., inden netværksrutingen opstår
POSTROUTERING Tillader ændring af udgående pakker - Pakker, der forlader OUTPUT-kæden

Diagrammet nedenfor viser en oversigt på højt niveau af denne proces.

Brug kommandoen nedenfor for at se dine NAT Routing-tabeller.

iptables -t nat -n -v -L

3: The Mangle Tables

Mandelbordet bruges hovedsageligt til speciel modifikation af pakker. Enkelt sagt bruges det til at ændre IP-headere på en netværkspakke. Ændring af pakker kan omfatte ændring af en TTL-værdi af pakke, ændring af gyldige netværkshumler til en pakke osv.

Tabellen indeholder følgende standardkæder:

Kæde Beskrivelse
FORUDSÆTNING Reserveret til indkommende pakker
POSTROUTING Bruges til udgående pakker
INDGANG Bruges til pakker, der kommer direkte ind på serveren
PRODUKTION Bruges til lokale pakker
Frem Reserveret til pakker dirigeret gennem systemet

4: De rå borde

Råbordets hovedformål er at konfigurere undtagelser for pakker, der ikke er beregnet til at blive håndteret af sporingssystemet. Råbordet angiver et NOTRACK-mærke på pakker, hvilket beder konntrack-funktionen om at ignorere pakken.

Conntrack er en Linux-kernenetværk, der gør det muligt for Linux-kernen at spore alle netværksforbindelser, så kernen kan identificere pakker, der udgør et netværksflow.

Råbordet har to hovedkæder:

Kæde Beskrivelse
FORUDSÆTNING Reserveret til pakker modtaget af netværksgrænseflader
PRODUKTION Reserveret til pakker initieret af lokale processer

5: Sikkerhedstabellen

Denne tabells primære anvendelse er at indstille intern sikkerhedsforbedring til Linux (SELinux) sikkerhedsmekanisme, der markerer på pakker. Sikkerhedsmærket kan anvendes pr. Forbindelse eller pakke.

Det bruges til obligatoriske regler for adgangskontrol og er den anden tabel, der åbnes efter filtertabellen. Det tilbyder følgende standardkæder:

Kæde Beskrivelse
INDGANG Reserveret til indkommende pakker til systemet
PRODUKTION Bruges til lokalt oprettede pakker
FREM Bruges til pakker dirigeret gennem systemet

Efter at have set på standard-Iptables, lad os gå et skridt videre og diskutere, hvordan man arbejder med iptables-regler.

Sådan arbejder du med iptables-regler?

Iptables-regler anvendes i stigende rækkefølge. Dette betyder, at den første regel i et bestemt sæt anvendes først, efterfulgt af den anden, derefter tredje osv., Indtil den sidste.

På grund af denne funktion forhindrer iptables dig i at tilføje regler i et sæt ved hjælp af -A-parameteren; du skal bruge -I efterfulgt af nummeret eller ved at tømme det for at føje til toppen af ​​listen.

Viser Iptables

For at se dine iptables skal du bruge kommandoen iptables -L -v til IPv4 og ip6tables -L -v til IPv6.

Indsættelse af regler

For at indsætte regler i et sæt skal du placere dem i den nøjagtige rækkefølge under overholdelse af de regler, der bruges af den samme kæde. Du kan se listen over dine iptables-regler med kommandoen som beskrevet ovenfor:

sudo iptables -L -v

For eksempel for at indsætte en regel, der tillader indgående forbindelser til port 9001 via TCP, skal vi specificere regelnummeret til INPUT-kæden, der overholder trafikreglerne på nettet.

sudo iptables -I INPUT 1 -p TCP --dport 9001 -m state --state NEW -j ACCEPT

Når du har vist de aktuelle iptables, skal du se den nye regel i sættet.

sudo iptables -L -v

Udskiftning af regler

Udskiftningsfunktionaliteten fungerer på samme måde for at indsætte, men den bruger iptables -R-kommandoen. For eksempel for at ændre ovenstående regel og indstille port 9001 til at benægte:

sudo iptables -R INPUT 1 -p TCP --dport 9001 -m state --state NEW -j REJECT

Sletning af en regel

For at slette en regel videregiver vi regelnummeret. For eksempel for at slette reglen ovenfor kan vi angive som:

sudo iptables -D INPUT 1

I de fleste Linux-distroer er iptables tomme for enten IPv4 og IPv6. Derfor, hvis du ikke har tilføjet nogen ny regel, får du en output svarende til den vist nedenfor. Det er risikabelt, fordi det betyder, at systemet tillader al indgående, udgående og rutetrafik.

Lad os se nærmere på, hvordan man konfigurerer iptables:

Sådan konfigureres iptables?

Der er adskillige måder at konfigurere iptables-regler på. Dette afsnit bruger eksempler til at vise dig, hvordan du indstiller regler ved hjælp af IP-adresser og porte.

Blokering og tilladelse af trafik efter havne

Du kan bruge en bestemt port til at blokere eller tillade al trafik på et netværksinterface. Overvej følgende eksempler:

sudo iptables -A INPUT -j ACCEPT -p TCP - destination-port 1001 -i wlan0

Ovenstående kommandoer tillader trafik på port 1001 TCP på wlan0-grænsefladen.

sudo iptables -A INPUT -j DROP -p TCP - destination-port 1001 -i wlan0

Denne kommando gør det modsatte af ovenstående kommando, da den blokerer al trafik på port 1001 på wlan0.

Her er en nøje inspektion af kommandoen:

BEMÆRK: Iptables forstår ikke aliaser til netværksinterface. Således skal du i et system med mere end en virtuel grænseflade definere destinationsadressen manuelt og eksplicit.

For eksempel:

sudo iptables -A INPUT -j DROP -p TCP - destination-port 1001 -i wlan0 -d 192.168.0.24

Hvidliste og sortliste IP-adresser

Du kan oprette firewallregler ved hjælp af iptables. Et eksempel er ved at stoppe al trafik og kun tillade netværkstrafik fra eksplicitte IP-adresser.

Eksempel:

iptables -A INPUT -m tilstand --stat ESTABLERET, RELATERET -j ACCEPT
iptables -A INPUT -i lo -m kommentar - kommentar "Tillad loopback-forbindelser" -j ACCEPT
iptables -A INPUT -p icmp -m kommentar - kommentar “Tillad, at Ping fungerer som forventet” -j

ACCEPTERE

iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT
iptables -A INPUT -s 192.168.0.0 -j ACCEPT
iptables -P INPUT DROP
iptables -P VIDERE DROP

Den første linje indstiller en regel, der tillader alle kilde-IP-adresser i 192.168.0.1/24 undernet. Du kan også bruge CIDR eller individuelle IP-adresser. I den følgende kommando indstiller vi reglen til at tillade al trafik forbundet til eksisterende forbindelser. I de sidste kommandoer satte vi en politik for INPUT og FORWARD til at droppe alle.

Brug af iptables på IPv6

Iptables-kommandoen fungerer kun på IPv4. For at bruge iptables på IPv6 skal du bruge kommandoen ip6tables. Ip6tables bruger rå-, filter-, sikkerheds- og mangeltabeller. Den generelle syntaks for ip6tables ligner iptables, og den understøtter også matchende iptables-indstillinger som tilføj, slet osv.

Overvej at bruge ip6tables manuelle sider for at få flere oplysninger.

Eksempel på iptables-regelsæt til netværkssikkerhed

Oprettelse af egnede firewallregler afhænger hovedsageligt af den service, der kører på et system, og de porte, der er i brug. Her er dog nogle grundlæggende netværkskonfigurationsregler, du kan bruge til at sikre dit system:

1: Tillad Loopback-interface-trafik, og afvis al loopback, der kommer fra andre grænseflader

iptables -A INPUT -i lo -j ACCEPT (Du kan også bruge ip6tables)
iptables -En INPUT ! -i lo -s 127.0.0.0 -j REJECT (ip6tables også gældende)

2: Afvis alle pinganmodninger

iptables -A INPUT -p icmp -m tilstand --tilstand NY --icmp-type 8 -j REJECT

3: Tillad SSH-forbindelser

iptables -A INPUT -p tcp --dport 22 -m tilstand --stat NY -j ACCEPT

Dette er eksempler på kommandoer, du kan bruge til at sikre dit system. Konfigurationen afhænger dog stærkt af, hvad eller hvem du vil have adgang til forskellige tjenester.

ADVARSEL: Hvis du foretrækker at deaktivere IPv6 fuldstændigt, skal du sørge for at kommentere linjen, da dette vil sænke opdateringsprocessen:

forrang :: ffff: 0: 0/96 100 fundet i / etc / gai.konf .

Det skyldes, at APT-pakkehåndtereren løser spejldomænet i IPv6 på grund af apt-get-opdatering.

Sådan implementeres iptables-regler?

For at implementere dine iptables på Ubuntu eller andre Debian-baserede systemer, start med at oprette to filer, ip4 og ip6, til deres respektive IP-adresser.

I begge filer skal du tilføje de regler, du vil håndhæve i deres tilsvarende filer-IPv4-regler til ip4-fil og IPv6-regler til ip6-fil.

Dernæst skal vi importere reglerne ved hjælp af kommandoen:

sudo iptables-gendannelse < /tmp/ip4 (replace filename for IPv6)

Derefter kan du kontrollere, om reglerne er anvendt ved hjælp af kommandoen:

sudo iptables -L -v

En hurtig iptables-vedvarende guide

Ubuntu og almindelige Debian-baserede distributioner leveres med en iptables-vedvarende pakke, der giver dig mulighed for nemt at anvende dine firewallregler ved genstart. Pakken indeholder filer, du kan bruge til at indstille regler for IPv4 eller IPv6 og kan anvendes automatisk ved opstart.

Du kan også bruge firewallregler ved hjælp af UFW eller GUFW. Overvej følgende vejledning for at lære at bruge UFW.

Sådan installeres iptables-persistent?

Sørg for, at du har vedvarende iptables installeret på dit system. Brug dpkg til at kontrollere, om du har pakken installeret.

Hvis ikke, skal du bruge følgende kommando:

sudo apt-get install iptables-persistent

Du bliver bedt om to gange for at gemme både dine nuværende IPv4- og IPv6-regler. Klik på Ja for at gemme begge regler.

Klik på ja for at gemme IPv6.

Når installationen er afsluttet, skal du kontrollere, at du har underkatalogen iptables, som vist på billedet nedenfor.

Nu kan du bruge reglerne.v4 og regler.v6 for at tilføje regler for iptables, og de anvendes automatisk af iptables-persistent. Filerne er enkle tekstfiler, som du nemt kan redigere ved hjælp af en hvilken som helst teksteditor efter eget valg.

Konklusion

I denne vejledning har vi dækket det grundlæggende i iptables. Startende med at arbejde med iptables, grundlæggende kommandoer, standard iptables-tabeller og parametre.

Fra det, du har lært, skal du være i stand til at bruge iptables til at oprette firewallregler, der hjælper med at sikre dit system.

Mus WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
Hvis du vil forbedre standardfunktionerne for din musemarkør, skal du bruge freeware WinMouse. Det tilføjer flere funktioner, der hjælper dig med at f...
Mus Museklik på venstre museknap fungerer ikke på Windows 10
Museklik på venstre museknap fungerer ikke på Windows 10
Hvis du bruger en dedikeret mus med din bærbare computer eller stationære computer, men musens venstre-klik-knap fungerer ikke på Windows 10/8/7 af en...
Mus Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Hvis du finder ud af, at din musemarkør hopper eller bevæger sig alene, automatisk tilfældigt, mens du skriver Windows-bærbar computer eller computer,...