iptables

Ubuntu Iptables Hvordan kontrollere nettverkstrafikk ved hjelp av iptables?

Ubuntu Iptables Hvordan kontrollere nettverkstrafikk ved hjelp av iptables?
“... A user-space Unix-verktøy som gir systemadministratorer muligheten til å konfigurere IP-pakkefiltreringsregler implementert av kjernens nettfiltermodul.” Iptables fungerer som en brannmur ved hjelp av pakkerfiltreringsregler basert på forskjellige kriterier som IP-adresse, port og protokoller.

Denne guiden vil diskutere hvordan du konfigurerer og bruker iptables-regler på et Ubuntu-system for å sikre nettverket ditt. Enten du er en nybegynner Linux-bruker eller en erfaren systemadministrator, fra denne guiden, og på en eller annen måte, vil du lære noe nyttig om iptables.

Iptables er forhåndsinstallert på Ubuntu og de fleste Debian-baserte distribusjoner. Ubuntu pakker også GUFW-brannmur, et grafisk alternativ du kan bruke til å jobbe med iptables.

MERK: For å bruke og konfigurere iptables, trenger du sudo-rettigheter på systemet ditt. Du kan lære mer om sudo fra følgende veiledning.

Nå som du vet hva Iptables er, la oss dykke rett inn!

Hvordan bruke iptables til å håndtere IPv4-trafikk?

For å bruke Iptables for IPv4-nettverk og trafikkadministrasjon, må du forstå følgende:

Iptables-kommandoen

Iptables tilbyr et utvalg av alternativer som lar deg tilpasse og justere iptables-reglene dine. La oss diskutere noen av disse parametrene og se hva de gjør.

MERK: Du kan konfigurere et sett med regler som administrerer et bestemt delsett, kjent som iptables-kjeder.

Iptables-parametere

Før vi begynner å lage og konfigurere iptables-regler, la oss først forstå det grunnleggende iptables, for eksempel generell syntaks og standardargumenter.

Tenk på kommandoen nedenfor:

sudo iptables -I INNGANG -s 192.168.0.24 -j DROP

Kommandoen ovenfor forteller iptables å lage en regel i kjeden. Regelen slipper alle pakkene fra IP-adressen 192.168.0.24.

La oss undersøke kommandoen, linje for linje, for å forstå den bedre.

Iptables tilbyr et utvalg av parametere som du kan bruke til å konfigurere forskjellige regler. De forskjellige parametrene du kan bruke til å konfigurere iptables-regler inkluderer:

Iptables regelparameter Beskrivelse
-s-kilde Spesifiser kilden, som kan være en adresse, vertsnavn eller nettverksnavn.
-p -protokol Spesifiserer tilkoblingsprotokollen; for eksempel TCP, UDP osv.
-d -destinasjon Spesifiserer destinasjonen, som kan være en adresse, nettverksnavn eller vertsnavn.
-j-hopp Setter handlingen iptables skal utføre etter å ha funnet en pakke.
-o -out-interface Angir grensesnittet som iptable sender pakken gjennom.
-i -in-interface Angir grensesnittet som brukes til å etablere nettverkspakker.
-c-sett-tellere Lar administratoren angi byte- og pakketellerne for en spesifisert regel.
-g -goto kjede Parameteren spesifiserer at behandlingen skal fortsette i den brukersettede kjeden ved retur.
-f -fragment Forteller iptables å bruke regelen bare på de andre og påfølgende fragmentene av de fragmenterte pakkene.

Iptables-alternativer

Kommandoen iptables støtter et bredt utvalg av alternativer. Noen vanlige inkluderer:

Alternativ Beskrivelse
-A -tillegg Legger til en regel på slutten av en spesifisert kjede
-D-slett Fjerner en regel fra den angitte kjeden
-F -spyle Fjerner alle regler, en om gangen
-L-liste Viser alle reglene i den angitte kjeden
-Jeg setter inn Setter inn en regel i den angitte kjeden (overført som et tall når det ikke er noe angitt; regelen blir lagt til øverst)
-C - sjekk Spørsmål om samsvar med en regel; krav i en spesifisert regel
-v -verbose Viser flere detaljer når de brukes med -L parameteren
-N-ny kjede Legger til en ny brukerdefinert kjede
-X -delete-chain Fjerner en bestemt brukerdefinert kjede

Iptables-tabeller

Linux-kjernen har standardtabeller som inneholder et sett med relaterte regler. Disse standardtabellene har et sett med standardkjeder, men brukere kan tilpasse reglene ved å legge til brukerdefinerte regler.

MERK: Standardtabellene vil i stor grad avhenge av kjernekonfigurasjonen og installerte moduler.

Her er standard iptables-tabellene:

1: Filtertabellene

Filtertabellen er en standardtabell som inneholder kjeder som brukes til filtrering av nettverkspakker. Noen av standardkjedene i denne tabellen inkluderer:

Kjede Beskrivelse
Inngang Iptables bruker denne kjeden for alle innkommende pakker til systemet, dvs.e., pakker som går til lokale nettverkskontakter.
Produksjon Iptables bruker utgangskjeden for lokalt genererte pakker, dvs.e., pakker som går ut av systemet.
Framover Denne kjeden er hva Iptables bruker for pakker som blir rutet eller videresendt via systemet.

2: NAT-tabellene

NAT eller nettverksadressetabell er en ruteanordning som brukes til å endre kilde og mål-IP-adresser i en nettverkspakke. NAT-tabellens viktigste bruk er å koble to nettverk i et privat adresseområde med det offentlige nettverket.

NAT ble utviklet for å støtte maskering av ekte IP-adresser, slik at private IP-adresser varierer fra å nå det eksterne nettverket. Dette bidrar til å beskytte detaljer om interne nettverk fra å bli avslørt i offentlige nettverk.

NAT-tabellen blir ansatt når en pakke starter en ny forbindelse.

Iptables har en standardtabell for NAT-adressering. Denne tabellen har tre hovedkjeder:

Kjede Beskrivelse
FORSIKTIG Tillater endring av pakkeinformasjon før du ankommer INPUT-kjeden som brukes til innkommende pakker
PRODUKSJON Reservert for pakker opprettet lokalt, dvs.e., før nettverksruting skjer
POSTROUTING Tillater endring av utgående pakker - Pakker som forlater OUTPUT-kjeden

Diagrammet nedenfor viser en oversikt på høyt nivå av denne prosessen.

Bruk kommandoen nedenfor for å se NAT Routing-tabellene.

iptables -t nat -n -v -L

3: The Mangle Tables

Mangeletabellen brukes hovedsakelig til spesiell modifisering av pakker. Enkelt sagt brukes den til å endre IP-hodene til en nettverkspakke. Endring av pakker kan omfatte endring av en TTL-verdi av pakke, endring av gyldige nettverkshopp for en pakke, osv.

Tabellen inneholder følgende standardkjeder:

Kjede Beskrivelse
FORSIKTIG Reservert for innkommende pakker
POSTROUTING Brukes til utgående pakker
INNGANG Brukes til pakker som kommer direkte inn på serveren
PRODUKSJON Brukes til lokale pakker
Framover Reservert for pakker som er rutet gjennom systemet

4: Råbordene

Råbordets hovedformål er å konfigurere unntak for pakker som ikke er ment å bli håndtert av sporingssystemet. Råbordet setter et NOTRACK-merke på pakker, og bedt konntrack-funksjonen om å ignorere pakken.

Conntrack er en Linux-kjerne-nettverksfunksjon som gjør at Linux-kjernen kan spore alle nettverkstilkoblinger, slik at kjernen kan identifisere pakker som utgjør en nettverksflyt.

Råbordet har to hovedkjeder:

Kjede Beskrivelse
FORSIKTIG Reservert for pakker mottatt av nettverksgrensesnitt
PRODUKSJON Reservert for pakker initiert av lokale prosesser

5: Sikkerhetstabellen

Denne tabellens primære bruk er å sette intern Security Enhancement for Linux (SELinux) sikkerhetsmekanisme som markerer på pakker. Sikkerhetsmerket kan brukes per tilkobling eller pakke.

Den brukes til obligatoriske tilgangskontrollregler og er den andre tabellen som åpnes etter filtertabellen. Den tilbyr følgende standardkjeder:

Kjede Beskrivelse
INNGANG Reservert for innkommende pakker til systemet
PRODUKSJON Brukes til lokalt opprettede pakker
FRAMOVER Brukes til pakker som er rutet gjennom systemet

Etter å ha sett på standard Iptables, la oss gå et skritt videre og diskutere hvordan du kan arbeide med iptables-regler.

Hvordan jobbe med iptables-regler?

Iptables-regler blir brukt i stigende rekkefølge. Dette betyr at den første regelen i et bestemt sett blir brukt først, etterfulgt av den andre, deretter den tredje og så videre, til den siste.

På grunn av denne funksjonen forhindrer iptables deg fra å legge til regler i et sett med parameteren -A; du må bruke -I, etterfulgt av nummeret eller ved å tømme det for å legge til øverst på listen.

Viser Iptables

For å se iptables, bruk kommandoen iptables -L -v for IPv4 og ip6tables -L -v for IPv6.

Sette inn regler

For å sette inn regler i et sett, må du plassere dem i nøyaktig rekkefølge, med respekt for reglene som brukes av samme kjede. Du kan se listen over iptables-reglene dine med kommandoen som diskutert ovenfor:

sudo iptables -L -v

For eksempel, for å sette inn en regel som tillater innkommende forbindelser til port 9001 over TCP, må vi spesifisere regelnummeret til INPUT-kjeden som følger trafikkreglene for nettet.

sudo iptables -I INNGANG 1 -p TCP --dport 9001 -m tilstand --stat NYTT -j ACCEPT

Når du har vist gjeldende iptables, bør du se den nye regelen i settet.

sudo iptables -L -v

Erstatter regler

Erstatningsfunksjonaliteten fungerer på samme måte for å sette inn, men den bruker iptables -R-kommandoen. For eksempel, for å endre regelen ovenfor og sette port 9001 til å nekte, gjør vi:

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

Slette en regel

For å slette en regel, passerer vi regelnummeret. For eksempel, for å slette regelen ovenfor, kan vi spesifisere som:

sudo iptables -D INNGANG 1

I de fleste Linux-distribusjoner er iptables tomme for enten IPv4 og IPv6. Derfor, hvis du ikke har lagt til noen ny regel, vil du få en utgang som ligner den som er vist nedenfor. Det er risikabelt fordi det betyr at systemet tillater all innkommende, utgående og rutetrafikk.

La oss se nærmere på hvordan du konfigurerer iptables:

Hvordan konfigurere iptables?

Det er mange måter å konfigurere iptables-regler på. Denne delen bruker eksempler for å vise deg hvordan du setter regler ved hjelp av IP-adresser og porter.

Blokkering og tillatelse av trafikk etter havner

Du kan bruke en bestemt port for å blokkere eller tillate all trafikk på et nettverksgrensesnitt. Tenk på følgende eksempler:

sudo iptables -A INNGANG -j ACCEPT -p TCP - destinasjonsport 1001 -i wlan0

Ovennevnte kommandoer tillater trafikk på port 1001 TCP på wlan0-grensesnittet.

sudo iptables -A INNGANG -j DROP -p TCP - destinasjonsport 1001 -i wlan0

Denne kommandoen gjør det motsatte av kommandoen ovenfor, da den blokkerer all trafikk på port 1001 på wlan0.

Her er en nøye inspeksjon av kommandoen:

MERK: Iptables forstår ikke alias for nettverksgrensesnitt. I et system med mer enn ett virtuelt grensesnitt, må du definere destinasjonsadressen manuelt og eksplisitt.

For eksempel:

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

Hviteliste og svarteliste IP-adresser

Du kan opprette brannmurregler ved hjelp av iptables. Et eksempel er ved å stoppe all trafikk og bare tillate nettverkstrafikk fra eksplisitte IP-adresser.

Eksempel:

iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A INNGANG -i lo -m kommentar - kommentar "Tillat loopback-tilkoblinger" -j ACCEPT
iptables -A INNGANG -p icmp -m kommentar - kommentar “La Ping fungere som forventet” -j

AKSEPTERER

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

Den første linjen setter en regel som tillater alle kilde-IP-adresser i 192.168.0.1/24 undernett. Du kan også bruke CIDR eller individuelle IP-adresser. I den følgende kommandoen setter vi regelen slik at all trafikk er koblet til eksisterende forbindelser. I de siste kommandoene setter vi en policy for INPUT og FORWARD for å droppe alle.

Bruke iptables på IPv6

Iptables-kommandoen fungerer bare på IPv4. For å bruke iptables på IPv6, må du bruke ip6tables-kommandoen. Ip6tables bruker rå-, filter-, sikkerhets- og mangeltabeller. Den generelle syntaksen for ip6tables ligner på iptables, og den støtter også matchende iptables-alternativer som å legge til, slette osv.

Vurder å bruke ip6tables manuelle sider for mer informasjon.

Eksempel på iptables-regler for nettverkssikkerhet

Å lage egnede brannmurregler vil hovedsakelig avhenge av tjenesten som kjører på et system og portene som er i bruk. Her er imidlertid noen grunnleggende nettverkskonfigurasjonsregler du kan bruke til å sikre systemet ditt:

1: Tillat trafikk på Loopback-grensesnitt og avvis all loopback som kommer fra andre grensesnitt

iptables -A INPUT -i lo -j ACCEPT (Du kan også bruke ip6tables)
iptables -A INNGANG ! -jeg er -s 127.0.0.0 -j REJECT (ip6tables gjelder også)

2: Avvis alle pingforespørsler

iptables -A INPUT -p icmp -m state --state NEW --icmp-type 8 -j REJECT

3: Tillat SSH-tilkoblinger

iptables -A INNGANG -p tcp --port 22 -m tilstand --stat NYTT -j ACCEPT

Dette er eksempler på kommandoer du kan bruke til å sikre systemet ditt. Imidlertid vil konfigurasjonen i stor grad avhenge av hva eller hvem du vil ha tilgang til forskjellige tjenester.

FORSIKTIGHET: Hvis du foretrekker å deaktivere IPv6 helt, må du sørge for å kommentere linjen, da dette vil redusere oppdateringsprosessen:

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

Det er fordi APT-pakkeforvalteren løser speildomenet i IPv6 på grunn av apt-get-oppdatering.

Hvordan distribuere iptables-regler?

For å distribuere iptables på Ubuntu eller andre Debian-baserte systemer, begynn med å opprette to filer, ip4 og ip6, for deres respektive IP-adresser.

I begge filene legger du til reglene du vil håndheve i deres tilsvarende filer-IPv4-regler til ip4-fil og IPv6-regler til ip6-fil.

Deretter må vi importere reglene ved hjelp av kommandoen:

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

Deretter kan du bekrefte om reglene har brukt ved hjelp av kommandoen:

sudo iptables -L -v

En rask iptables-vedvarende guide

Ubuntu, og vanlige Debian-baserte distribusjoner, kommer med en iptables-vedvarende pakke som lar deg bruke brannmurreglene dine enkelt ved omstart. Pakken inneholder filer du kan bruke til å sette regler for IPv4 eller IPv6 og kan brukes automatisk ved oppstart.

Du kan også bruke brannmurregler ved bruk av UFW eller GUFW. Vurder følgende veiledning for å lære hvordan du bruker UFW.

Slik installerer du iptables-persistent?

Forsikre deg om at du har vedvarende iptables installert på systemet ditt. Bruk dpkg for å sjekke om du har pakken installert.

Hvis ikke, bruk følgende kommando:

sudo apt-get install iptables-persistent

Du blir bedt om to ganger for å lagre både gjeldende IPv4- og IPv6-regler. Klikk på Ja for å lagre begge reglene.

Klikk på ja for å lagre IPv6.

Når installasjonen er fullført, må du kontrollere at du har underkatalogen iptables, som vist på bildet nedenfor.

Nå kan du bruke reglene.v4 og regler.v6 for å legge til iptables-regler, og de blir brukt automatisk av iptables-persistent. Filene er enkle tekstfiler som du enkelt kan redigere ved hjelp av hvilken som helst tekstredigerer du ønsker.

Konklusjon

I denne opplæringen har vi dekket det grunnleggende om iptables. Starter med å jobbe med iptables, grunnleggende kommandoer, standard iptables-tabeller og parametere.

Fra det du har lært, bør du være i stand til å bruke iptables til å lage brannmurregler som bidrar til å sikre systemet ditt.

SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...
Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...
0 A.D. Opplæringen
Ut av de mange strategispillene der ute, 0 A.D. klarer å skille seg ut som en omfattende tittel og et veldig dypt, taktisk spill til tross for å være ...