Iptables tutorial

Iptables tutorial

Iptables er en kommandolinje brannmur som filtrerer pakker i henhold til de definerte reglene. Med iptables kan brukere godta, nekte eller videre tilkoblinger; Det er utrolig allsidig og mye brukt til tross for at de blir erstattet av nftables.

Etter å ha lest denne opplæringen, vil du forstå politikk.

Merk: SUDO-kommando ble lagt til for lesere som trenger å kopiere og lede reglene som er nevnt i denne opplæringen iPtables Tutorial.

Iptables Ordliste:

MÅL: Når du bruker iptables, er et mål en handling du vil at iptables skal bruke når en pakke samsvarer med en regel.

KJEDE: En kjede er en liste over regler; Tilgjengelige innebygde kjeder er: Input, output, videresending, føring og postrouting.

BORD: Tabeller er iptables funksjoner for hvert formål. For eksempel er det en tabell for rutingoppgaver og en annen tabell for filtreringsoppgaver; Hver tabell inneholder regelkjeder.

Tilgjengelige tabeller er filter, NAT, Raw, Security og Mangle. Hver tabell inneholder innebygde (regel) kjeder. Følgende liste viser hvilke kjeder som inkluderer hver tabell:

FILTER Inngang PRODUKSJON FRAMOVER
Nat PREROUTING Postrouting PRODUKSJON
PREROUTING PRODUKSJON
Mangle PREROUTING Postrouting PRODUKSJON Inngang FRAMOVER
SIKKERHET Inngang PRODUKSJON FRAMOVER

Avhengig av handlingen du vil at iptables skal gjøre, må du spesifisere en tabell ved hjelp av alternativet -T etterfulgt av tabellnavnet. I denne opplæringen er alternativet ikke brukt. Denne opplæringen fokuserer på filtreringsformål ved å bruke filtertabellen som er brukt som standard når alternativet -T ikke bestått. Mens du leser denne opplæringen, lærer du noen av konseptene som er nevnt ovenfor.

Hvordan installere:

For å installere iptables på Debian og dens baserte Linux -distribusjoner kjøres:

sudo apt installer iptables -y

Før du installerer iptables på Redhat -baserte Linux -distribusjoner, må du deaktivere Firewalld ved å løpe:

sudo systemctl stopp brannmur
sudo SystemCTL deaktiver Firewalld
sudo SystemCTL Mask -Now Firewalld

Installer deretter iptables ved å utføre:

sudo yum installer iptables-tjenester
sudo systemctl start iptables
sudo systemctl start ip6tables
sudo systemctl aktiverer iptables
sudo systemctl aktiver Ip6tables
sudo systemctl start ip6tables

Komme i gang med iptables:

Før du starter, sjekk for tidligere regler ved å instruere Iptables om å liste opp eksisterende retningslinjer og regler ved hjelp av -L (-Liste) parameteren.

sudo iptables -l

Utgangen over viser 3 rader: Kjedeinngang, kjede fremover og kjedeutgang. Hvor Inngang refererer til retningslinjer for innkommende trafikk, PRODUKSJON refererer til retningslinjer som brukes på utgående trafikk, og FRAMOVER refererer til rutingspolitikk.

Produksjonen viser også at det ikke er noen definerte regler, og alle definerte retningslinjer aksepteres.

Det er tre typer retningslinjer: Godta, avvise og slippe.

Politikken AKSEPTERER tillater tilkoblinger; Politikken Avvise nekter tilkoblinger som returnerer en feil; Politikken MISTE nekter tilkoblinger uten å produsere feil.
Når du bruker MISTE, UDP Pakker slippes, og oppførselen vil være den samme som å koble til en port uten tjeneste. TCP pakker vil returnere en ACK/RST, som er den samme responsen som en åpen port uten service på den vil svare med. Når du bruker Avvise, En ICMP-pakke returnerer destinasjon-ikke kan nås for kildeverten.

Når du takler iptables, trenger du først å definere de tre retningslinjene for hver kjede; Etter det kan du legge til unntak og spesifikasjoner. Å legge til retningslinjer ser slik ut:

sudo iptables -p inngang
sudo iptables -p output
sudo iptables -p fremover

Iptables tillatte og restriktive retningslinjer:

Du kan bruke iptables med en tillatt policy ved å godta alle innkommende tilkoblinger, bortsett fra disse du spesifikt slipper eller avviser. I dette tilfellet er hver forbindelse tillatt med mindre du definerer en regel for å nekte den spesifikt.

Tvert imot, begrensende politikk nekter alle forbindelser bortsett fra disse du spesifikt godtar. I dette tilfellet blir hver forbindelse nektet med mindre du definerer en regel for å godta den.

Bruke en restriktiv policy med iptables:

Følgende eksempel viser hvordan du bruker en restriktiv policy med iptables ved å slippe all innkommende trafikk bortsett fra tillatt.

Blokkerer innkommende trafikk.

VIKTIG: Å bruke følgende 3 regler kan forlate deg uten internettforbindelse. Ved å bruke reglene som er nevnt i "iptables, legger du til regler og iptables stater", legger du til de nødvendige unntakene for å gjenopprette tilgangen til internett. Du kan konsekvent utføre sudo iptables -f for å spyle regler.

Du kan blokkere all innkommende trafikk, slik at bare utgående trafikk blar gjennom nettet og for applikasjoner du trenger.

sudo iptables -p inngangsfall
sudo iptables -p output godta
sudo iptables -p fremre dråpe

Hvor:

-P = policy

sudo iptables -p inngangsfall: instruere iptables om å nekte all innkommende trafikk uten å svare på kilden.

sudo iptables -p output godta: Definerer en aksepteringspolitikk for utgående trafikk.

sudo iptables -p fremre dråpe: instruerer iptables om ikke å utføre rutingsoppgaver som slipper alle pakker som er bestemt til en annen vert (prøver å passere gjennom den brannmurte enheten) uten svar.

Eksemplet over tillater å surfe på nettet og tilkoblinger startet av den lokale enheten (-P -utgang aksepterer) men vil forhindre tilkoblinger initiert av en annen vert (-P inngangsfall) Som SSH prøver å få tilgang til enheten din, returner ikke feilmeldinger.

Når du aktiverer iptables med en restriktiv policy som i forrige eksempel, må du legge til regler for å justere konfigurasjonen. For eksempel, hvis du holder konfigurasjonen nevnt ovenfor uten å legge til et rimelig unntak for Loopback (LO) -grensesnittet, kan det hende at noen applikasjoner ikke fungerer riktig. Du må også tillate innkommende trafikk som tilhører eller er relatert til en forbindelse startet av enheten din.

Iptables legger til regler og iptables stater

Det er viktig å forstå at iptables bruker regler etter ordre. Når du definerer en regel etter en tidligere regel, vil den andre regelen omskrive den siste hvis en pakke samsvarer med samme regel.

Jeg liker det forrige eksemplet; Du blokkerte all innkommende trafikk, du må legge til unntak for Loopback -grensesnittet; Dette kan oppnås ved å legge til -A (vedlegg) -parameteren.

sudo iptables -a input -m conntrack - -ctstate etablert, relatert -j aksepterer
sudo iptables -a output -m conntrack - -ctstate etablert -j aksepterer

Modulen (-m) conntrack -ctstate Etablert, relatert instruerer iptables om å bekrefte om tilkoblingsstatus er Etablert eller relatert til en eksisterende forbindelse før du bruker den definerte regelpolitikken.

Det er 4 mulige tilstander iptables kan sjekke:

Iptables oppgir nytt: Pakken eller trafikken du tillater eller blokkerer prøver å starte en ny forbindelse.

Iptables State etablert: Pakken eller trafikken du tillater eller blokkerer er en del av en etablert forbindelse.

Iptables tilstand relatert: Pakken eller trafikken starter en ny forbindelse, men er relatert til en eksisterende forbindelse.

Iptables stats ugyldig: Pakken eller trafikken er ukjent uten staten.

Den første linjen i eksemplet ovenfor instruerer iptables om å godta innkommende pakker fra trafikken som kommer fra eller relatert til tilkoblinger startet av enheten din. Den andre linjen instruerer iptables om å akseptere bare utgående trafikk fra allerede etablerte forbindelser.

Iptables legger til å akseptere loopback -trafikk og definere grensesnitt:

Loopback -grensesnittet brukes av programmer som må samhandle med Localhost. Hvis du ikke tillater loopback -trafikk, kan det hende at noen applikasjoner ikke fungerer.

Følgende kommando tillater loopback -tilkoblinger:

sudo iptables -a input -i lo -j aksepterer
sudo iptables -a output -o lo -j aksepterer

Hvor -i og -o brukes til å spesifisere nettverksenheten for innkommende trafikk (-i) og utgående trafikk (-o).

Bruke en tillatt policy med iptables:

Du kan også definere en tillatt policy som tillater all trafikk bortsett fra den spesifiserte nedlagte eller avviste. Du kan aktivere alt bortsett fra et spesifikt IP- eller IP -område, eller du kan nekte pakker basert på overskriftene deres, blant flere muligheter.

Følgende eksempel viser hvordan du bruker en tillatt policy som tillater all trafikk bortsett fra et IP -område som er blokkert for SSH -tjenesten.

sudo iptables -p inngang aksepterer
sudo iptables -p output godta
sudo iptables -p fremre dråpe
sudo iptables -a input -p tcp - -dport 22 -m ipriange - -src -range 192.168.1.100-192.168.1.110 -J avviser

Eksemplet over bruker en tillatt policy, men blokkerer SSH -tilgang til alle IP -er som tilhører området 192.168.1.100 og 192.168.1.110.

Hvor -P spesifiserer protokollen, -DPORT (eller -Destinasjonsporter) destinasjonsporten (22, SSH) og modulen iPrange med argument -SRC -rekkevidden (kildeområdet) tillater å definere IP -området. Alternativet -J (-hopp) instruerer iptables hva du skal gjøre med pakken; I dette tilfellet representerer vi avviser.

Blokkering av porter med iptables

Følgende eksempel viser hvordan du blokkerer en spesifikk port for alle tilkoblinger, SSH -porten.

sudo iptables -a input -p tcp -destination -port 22 -j dråpe

Lagrer endringer i Iptables

Iptables -regler er ikke vedvarende; Etter omstart vil ikke reglene bli gjenopprettet. For å gjøre dine regler vedvarende, kjør følgende kommandoer der den første linjen lagrer reglene i filen /etc /iptables.opp.regler, og den andre linjen er å opprette filen for iptables å starte etter omstart.

sudo iptables-lave> /etc /iptables.opp.regler
nano/etc/nettverk/if-pre-up.d/iptables

Legg til følgende i filen og lukkes lagringsendringer (Ctrl+x).

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.up.rules

Til slutt, gi filutførelsestillatelser ved å kjøre:

chmod +x/etc/nettverk/if-pre-up.d/iptables

Spyling eller fjerning av iptables regler:

Du kan fjerne alle Iptables -reglene dine ved å kjøre følgende kommando:

sudo iptables -f

For å fjerne en spesifikk kjede som inngang, kan du kjøre:

sudo iptables -f

Konklusjon:

Iptables er blant de mest sofistikerte og fleksible brannmurene i markedet. Til tross for at den er erstattet, forblir det som en av de mest spredte defensive og rutingsprogramvaren.

Implementeringen kan raskt læres av nye Linux -brukere med grunnleggende kunnskap om TCP/IP. Når brukere forstår syntaksen, blir det en enkel oppgave å definere regler.

Det er mange flere flere moduler og alternativer som ikke ble dekket av denne introduksjonsopplæringen. Du kan se flere eksempler på iptables på iptables for nybegynnere.

Jeg håper denne opplæringen i Iptables var nyttig. Fortsett å følge Linux -hint for flere Linux -tips og opplæringsprogrammer.