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 kommer forhåndsinstallert på Ubuntu og mest debianbaserte distribusjoner. Ubuntu pakker også Gufw Firewall, et grafisk alternativ du kan bruke til å jobbe med iptables.
MERK: For å bruke og konfigurere iptables, trenger du sudo -privilegier på systemet ditt. Du kan lære mer om sudo fra følgende opplæring.
Nå som du vet hva iptables er, la oss dykke rett inn!
Hvordan bruke iptables for å administrere IPv4 -trafikk?
For å bruke iptables for IPv4 -nettverk og trafikkstyring, må du forstå følgende:
Iptables -kommandoen
Iptables tilbyr et utvalg av alternativer som lar deg tilpasse og stille inn 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 spesifikt undergruppe, kjent som iptables -kjeder.
Iptables parametere
Før vi begynner.
Tenk på kommandoen nedenfor:
sudo iptables -i input -s 192.168.0.24 -j Drop
Kommandoen over ber 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 -source | Spesifiser kilden, som kan være en adresse, vertsnavn eller nettverksnavn. |
-P -Protokoll | Angir tilkoblingsprotokollen; for eksempel TCP, UDP, etc. |
-D -Destinasjon | Angir destinasjonen, som kan være en adresse, nettverksnavn eller vertsnavn. |
-J -jump | Sett handlingen iptables skal utføre etter å ha funnet en pakke. |
-o -out -grensesnitt | Angir grensesnittet som Iptable sender pakken. |
-i -in -grensesnitt | Angir grensesnittet som brukes til å etablere nettverkspakker. |
-C -set -teller | Lar administratoren angi byte- og pakketellere for en spesifisert regel. |
-G -GOTO -kjede | Parameteren spesifiserer at behandlingen skal fortsette i den brukersettkjeden ved retur. |
-f -fragment | Ber iPtables å bruke regelen bare på andre og følgende fragmenter av de fragmenterte pakkene. |
Iptables alternativer
Iptables -kommandoen støtter et bredt spekter av alternativer. Noen vanlige inkluderer:
Alternativ | Beskrivelse |
---|---|
-En -avlever | Legger til en regel til slutten av en spesifisert kjede |
-D -Delete | Fjerner en regel fra den spesifiserte kjeden |
-F -flush | Fjerner alle regler, en om gangen |
-L -liste | Viser alle reglene i den spesifiserte kjeden |
-Jeg -INSERT | Setter inn en regel i den spesifiserte kjeden (bestått som et tall, når det ikke er spesifisert nummer; regel blir lagt til øverst) |
-C -sjekk | Spørsmål om en regelmatching; Krav i en spesifisert regel |
-V -verbose | Viser flere detaljer når de brukes med -L -parameteren |
-N -new -chain | Legger til en ny brukerdefinert kjede |
-X -Delete -chain | Fjerner en spesifikk brukerdefinert kjede |
Iptables tabeller
Linux -kjernen har standardtabeller som huser 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 sterkt avhenge av kjernen din konfigurasjon og modulene som er installert.
Her er standard Iptables -tabeller:
1: Filtertabellene
Filtertabellen er en standardtabell som inneholder kjeder som brukes til nettverkspakkefiltrering. Noen av standardkjedene i denne tabellen inkluderer:
Kjede | Beskrivelse |
---|---|
Inngang | Iptables bruker denne kjeden for innkommende pakker til systemet, i.e., Pakker som går til lokale nettverkssokkler. |
Produksjon | Iptables bruker utgangskjeden for lokalt genererte pakker, i.e., Pakker som går ut av systemet. |
Framover | Denne kjeden er det Iptables bruker for pakker som er dirigert eller videresendt via systemet. |
2: NAT -bordene
NAT- eller nettverksadressetabell er en rutingsenhet som brukes til å endre kilden og målet IP-adresser i en nettverkspakke. NAT -bordets hovedbruk 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 -adresseområder når det ytre nettverket. Dette hjelper til med å beskytte detaljer om interne nettverk mot å bli avslørt i offentlige nettverk.
NAT -bordet blir ansatt når en pakke setter i gang en ny forbindelse.
Iptables har en standardtabell for NAT -adressering. Denne tabellen har tre hovedkjeder:
Kjede | Beskrivelse |
---|---|
PREROUTING | Tillater modifisering av pakkeinformasjon før du ankommer inngangskjeden for innkommende pakker |
PRODUKSJON | Reservert for pakker laget lokalt, jeg.e., Før nettverksruting oppstår |
Postrouting | Tillater modifisering av utgående pakker- pakker som forlater utgangskjeden |
Diagrammet nedenfor viser en oversikt på høyt nivå av denne prosessen.
Bruk kommandoen nedenfor for å se NAT -rutetabellene dine.
iptables -t nat -n -v -l
3: Manglebordene
Manglebordet brukes hovedsakelig til spesiell modifisering av pakker. Enkelt sagt brukes den til å endre IP -overskriftene til en nettverkspakke. Endring av pakker kan omfatte å endre en TTL -verdi på pakke, endre gyldige nettverkshop for en pakke osv.
Tabellen inneholder følgende standardkjeder:
Kjede | Beskrivelse |
---|---|
PREROUTING | 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 dirigert gjennom systemet |
4: De rå bordene
Råbordets hovedformål er å konfigurere unntak for pakker som ikke er ment å håndteres av sporingssystemet. Råbordet setter et notrack -merke på pakker, og ber ConnTrack -funksjonen ignorere pakken.
Conntrack er en Linux Kernel Networking -funksjon som lar Linux -kjernen spore alle nettverkstilkoblinger, slik at kjernen kan identifisere pakker som utgjør en nettverksflyt.
Råbordet har to hovedkjeder:
Kjede | Beskrivelse |
---|---|
PREROUTING | Reservert for pakker mottatt av nettverksgrensesnitt |
PRODUKSJON | Reservert for pakker initiert av lokale prosesser |
5: Sikkerhetsbordet
Denne tabellens primære bruk er å sette intern sikkerhetsforbedring for Linux (Selinux) sikkerhetsmekanisme som markerer på pakker. Sikkerhetsmerket kan bli brukt per tilkobling eller pakke.
Den brukes til obligatoriske regler for tilgangskontroll og er den andre tabellen som er tilgjengelig etter filterbordet. Det 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 dirigert gjennom systemet |
Etter å ha sett på standard Iptables, la oss gå et skritt videre og diskutere hvordan du jobber 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 spesifikt sett blir brukt først, etterfulgt av det andre, deretter tredje, og så videre, til den siste.
På grunn av denne funksjonen forhindrer iptables deg i å legge til regler i et sett ved hjelp av -A -parameteren; Du må bruke -i, etterfulgt av nummeret eller ved å tømme det for å legge til toppen av listen.
Viser iptables
For å se dine 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 den nøyaktige rekkefølgen, og respektere reglene som brukes av samme kjede. Du kan se listen over dine Iptables -regler med kommandoen som diskutert ovenfor:
sudo iptables -l -v
For å sette inn en regel som tillater innkommende tilkoblinger til port 9001 over TCP, må vi for eksempel spesifisere regelnummeret til inngangskjeden som overholder trafikkreglene for nettet.
sudo iptables -i input 1 -p tcp - -dport 9001 -m state -State new -j aksepterer
Når du har sett gjeldende Iptables, bør du se den nye regelen i settet.
sudo iptables -l -v
Erstatte regler
Erstatt funksjonalitet fungerer på samme måte som å sette inn, men den bruker Iptables -R -kommandoen. For å endre regelen ovenfor og angi port 9001 for å nekte, vi for eksempel:
sudo iptables -r input 1 -p tcp - -dport 9001 -m state -state new -j avvise
Slette en regel
For å slette en regel, passerer vi regelnummeret. For å slette regelen ovenfor, kan vi for eksempel spesifisere som:
sudo iptables -d input 1
I de fleste Linux -distros er iptables tomme for enten IPv4 og IPv6. Derfor, hvis du ikke har lagt til noen ny regel, vil du få en utdata som ligner på den som er vist nedenfor. Det er risikabelt fordi det betyr at systemet tillater all innkommende, utgående og dirigert trafikk.
La oss tuck inn hvordan du konfigurerer iptables:
Hvordan du konfigurerer iptables?
Det er mange måter å konfigurere iptables regler. Denne delen bruker eksempler for å vise deg hvordan du angir regler ved å bruke IP -adresser og porter.
Blokkerer og tillater trafikk med porter
Du kan bruke en spesifikk port for å blokkere eller tillate all trafikk på et nettverksgrensesnitt. Tenk på følgende eksempler:
sudo iptables -a input -j aksepterer -p tcp -destination -port 1001 -i wlan0
Ovennevnte kommandoer tillater trafikk på port 1001 TCP på WLAN0 -grensesnittet.
sudo iptables -a input -j drop -p tcp -destination -port 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ær inspeksjon av kommandoen:
MERK: Iptables forstår ikke nettverksgrensesnittaliaser. I et system med mer enn ett virtuelt grensesnitt, må du derfor definere destinasjonsadressen manuelt og eksplisitt.
For eksempel:
sudo iptables -a input -j drop -p tcp -destination -port 1001 -i wlan0 -d 192.168.0.24
Hvitelisting og svartelisting 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 tilstand -state etablert, relatert -j aksepterer
iptables -a input -i lo -m kommentar -Kommentar "Tillat loopback -tilkoblinger" -j aksepterer
iptables -a input -p icmp -m Kommentar -Kommentar “Tillat ping å fungere som forventet” -J
AKSEPTERER
iptables -a inngang -S 192.168.0.1/24 -J godta
iptables -a inngang -S 192.168.0.0 -j aksepterer
iptables -p inngangsfall
iptables -p fremoverfall
Den første linjen setter en regel for å tillate 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 for å tillate all trafikk koblet til eksisterende tilkoblinger. I de endelige kommandoene setter vi en policy for innspill og fremover for å slippe alle.
Bruker iptables på IPv6
Iptables kommando fungerer bare på IPv4. For å bruke iptables på IPv6, må du bruke IP6Tables -kommandoen. IP6Tables bruker rå-, filter-, sikkerhets- og manglebord. Den generelle syntaksen for ip6tables ligner iptables, og den støtter også matchende iptables -alternativer som vedlegg, sletting osv.
Vurder å bruke IP6Tables manuelle sider for mer informasjon.
Eksempel på iptables regelsett for nettverkssikkerhet
Å lage passende 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 for å sikre systemet ditt:
1: Tillat loopback -grensesnitttrafikk og avviser all loopback som kommer fra andre grensesnitt
iptables -a input -i lo -j Accept (du kan også bruke ip6tables)
iptables -a inngang ! -Jeg lo -S 127.0.0.0 -j avviser (ip6tables også relevant)
2: nekt alle pingforespørsler
iptables -a input -p icmp -m tilstand -State Ny -ICMP -type 8 -j Avvisning
3: Tillat SSH -tilkoblinger
iptables -a input -p TCP - -DPORT 22 -M Stat -State Ny -j aksepterer
Dette er eksempler på kommandoer du kan bruke for å sikre systemet ditt. Konfigurasjonen vil imidlertid sterkt avhenge av hva eller hvem du vil ha tilgang til forskjellige tjenester.
FORSIKTIGHET: Hvis du foretrekker å deaktivere IPv6 helt, må du sørge for å avgjøre linjen, da dette vil bremse oppdateringsprosessen:
Precedence :: FFFF: 0: 0/96 100 funnet i/etc/gai.konf .
Det er fordi APT Package Manager løser speildomenet i IPv6 på grunn av apt-get-oppdatering.
Hvordan du distribuerer iptables regler?
For å distribuere dine iptables på Ubuntu eller andre Debian-baserte systemer, start med å lage to filer, IP4 og IP6, for sine respektive IP-adresser.
I begge filer, legg til reglene du ønsker å håndheve i de tilsvarende Files-IPV4-reglene til IP4-filen og IPv6-reglene til IP6-filen.
Deretter må vi importere reglene ved å bruke kommandoen:
sudo iptables-restore < /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-perheristent guide
Ubuntu, og vanlige Debian-baserte distribusjoner, leveres med en Iptables-ordentlig pakke som lar deg bruke brannmurreglene dine enkelt ved omstart. Pakken inneholder filer du kan bruke til å angi regler for IPv4 eller IPv6 og kan brukes automatisk ved oppstart.
Du kan også bruke brannmurregler ved å bruke UFW eller GUFW. Vurder følgende opplæring for å lære å bruke UFW.
Hvordan installere iptables perersistent?
Forsikre deg om at du har installert iptables som er installert på systemet ditt. Bruk DPKG for å sjekke om du har pakken installert.
Hvis ikke, bruk følgende kommando:
sudo apt-get installere iptables perersistent
Du vil bli bedt om to ganger for å lagre både dine nåværende 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 bekrefte 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 vil bli brukt automatisk av iptables-permentongen. Filene er enkle tekstfiler som du enkelt kan redigere ved hjelp av hvilken som helst tekstredigerer etter eget valg.
Konklusjon
I denne opplæringen har vi dekket det grunnleggende om iptables. Begynner 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 for å lage brannmurregler som hjelper deg med å sikre systemet ditt.