- Korbin Brown
- Oppdatert 27. August 2020, 2:25pm EDT
Iptables er en svært fleksibel brannmur verktøy bygget for Linux operativsystemer. Enten du er en nybegynner Linux geek eller en system administrator, er det sannsynligvis noen måte at iptables kan være til stor nytte for deg. Les videre som vi viser deg hvordan du konfigurerer den mest allsidige Linux firewall.
Photo av ezioman.
Om iptables
iptables er en kommando-linje-brannmur verktøy som bruker policy-kjeder for å tillate eller blokkere trafikken., Når en tilkobling prøver å etablere seg på systemet, iptables ser ut for en regel i listen for å få det til. Dersom den ikke finner en, det tyr til standard action.
iptables nesten alltid kommer pre-installert på en Linux-distribusjon. For å oppdatere/installere det, bare hente iptables-pakke:
sudo apt-get install iptables
Det er GUI alternativer til iptables som Firestarter, men iptables er egentlig ikke så vanskelig når du har et par kommandoer ned., Du ønsker å være ekstremt forsiktig når du konfigurerer iptables regler, særlig hvis du er på SSH vil i en server, fordi en feil kommando kan permanent låse deg ut før det er manuelt fast på den fysiske maskinen.
Typer Kjeder
iptables bruker tre forskjellige kjeder: inngang, frem-og utgang.
Input – Denne kjeden er brukt til å styre atferd for innkommende tilkoblinger. For eksempel, hvis en bruker forsøker å KJØRE inn i din PC/server, iptables vil prøve å matche IP-adressen og porten til en regel i input-kjeden.,
Videresend – Denne kjeden er brukt for innkommende tilkoblinger som ikke faktisk blir levert lokalt. Tenk på en ruter – data er alltid sendes til det, men sjelden faktisk er ment for ruteren seg selv; data er bare videresendt til sitt mål. Med mindre du gjør noen form for ruting, NATing, eller noe annet på systemet som krever videresending, du vil ikke engang bruke denne kjeden.
Det er en sikker-brann måte å sjekke om systemet bruker/trenger fremover kjede.,
iptables -L -v
skjermbildet ovenfor er av en server som er kjørt i noen uker, og har ingen begrensninger på innkommende eller utgående tilkoblinger. Som du kan se, input-kjeden har behandlet 11 GB av pakker og output-kjeden har behandlet 17 GB. Fremre kjede, på den andre siden, har ikke behov for å behandle en enkelt pakke. Dette er fordi serveren ikke gjør noen form for videresending eller blir brukt som en pass-through-enheten.,
Output – Denne kjeden er brukt for utgående tilkoblinger. For eksempel, hvis du prøver å pinge howtogeek.com, iptables vil kontrollere produksjonen-kjeden for å se hva reglene er om ping og howtogeek.com før å gjøre en beslutning om å tillate eller avslå forsøk på tilkobling.
Det forbeholdet
Selv om pinge en ekstern vert virker som noe som bare trenger å traversere utgang kjede, husk at å returnere data, innspill kjede vil bli brukt som godt., Ved bruk av iptables for å låse ned ditt system, husk at mange protokoller vil kreve to-veis kommunikasjon, slik at både input-og output-kjedene må være riktig konfigurert. SSH er en vanlig protokoll som folk glemmer å tillate på begge kjeder.
Personvern Kjede Standard Oppførsel
Før du går i og konfigurering av spesifikke reglene, vil du ønsker å bestemme selv hva du vil bruke som standard oppførsel av de tre kjedene å bli. Med andre ord, hva vil du iptables å gjøre hvis tilkoblingen ikke stemmer med noen av de eksisterende reglene?,
for Å se hva politikken kjedene er konfigurert til å gjøre med uovertruffen trafikken, kjøre iptables -L
– kommandoen.
Som du kan se, har vi også brukt grep-kommandoen til å gi oss renere produksjon. I dette skjermbilde, våre lenker er for tiden regnet for å ta imot trafikken.
Flere ganger enn ikke, vil du ønsker systemet til å godta tilkoblinger som standard. Med mindre du har endret politikken kjede regler som tidligere, denne innstillingen skal allerede være konfigurert., Uansett, her er kommandoen for å godta tilkoblinger med standard:
iptables --policy INPUT ACCEPT
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD ACCEPT
Ved å misligholde å godta regelen, deretter kan du bruke iptables å nekte bestemte IP-adresser eller port tall, mens du fortsetter å godta alle andre tilkoblinger. Vi vil komme til dem kommandoer i et minutt.,
Hvis du vil heller vil nekte alle tilkoblinger og manuelt spesifisere hvilke kolonner du ønsker å tillate å koble til, bør du endre standard policy av kjedene til å slippe. Å gjøre dette vil trolig bare være nyttig for servere som inneholder sensitiv informasjon, og kun noen gang har samme IP-adresser koble til dem.,
iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD DROP
Tilkobling-spesifikke Reaksjoner
Med din standard chain politikk konfigurert, du kan begynne å legge til regler til iptables slik at den vet hva den skal gjøre når det oppstår en forbindelse fra eller til en bestemt IP-adresse eller port. I denne guide, vi kommer til å gå over tre mest grunnleggende og brukte «svar».
Godta – Tillate tilkoblingen.
Drop – Slipp-tilkobling, handle som om det aldri skjedde., Dette er best hvis du ikke ønsker kilde til å forstå systemet som finnes.
Avvis – ikke tillat tilkoblingen, men sende tilbake en feilmelding. Dette er best hvis du ikke vil at en bestemt kilde til å koble til systemet, men du vil at de skal vite at brannmuren din er blokkert dem.
Den beste måten å vise forskjellen mellom disse tre reglene er å vise hvordan det ser ut når en PC prøver å pinge en Linux-maskin med iptables konfigurert for hver av disse innstillingene.,
Slik at den forbindelse:
Slippe den forbindelse:
Avvise den forbindelse:
Tillate eller Blokkere Bestemte Tilkoblinger
Med ditt personvern kjeder konfigurert, kan du nå konfigurere iptables for å tillate eller blokkere bestemte adresser, adresse varierer, og porter. I disse eksemplene, vil vi sette forbindelser til DROP
, men du kan slå dem til ACCEPT
eller REJECT
, avhengig av dine behov og hvordan du har konfigurert din politikk kjeder.,
Merk: I disse eksemplene, vi kommer til å bruke iptables -A
for å legge til regler til eksisterende kjede. iptables starter på toppen av sin liste, og går gjennom hver enkelt regel til det finner en at det stemmer. Hvis du trenger å sette inn en regel over en annen, kan du bruke iptables -I
for å angi antall det skal være i listen.
Tilkoblinger fra en enkelt IP-adresse
Dette eksemplet viser hvordan du kan blokkere alle tilkoblinger fra IP-adressen 10.10.10.10.,
iptables -A INPUT -s 10.10.10.10 -j DROP
Tilkoblinger fra en rekke IP-adresser
Dette eksemplet viser hvordan du kan blokkere alle IP-adresser i 10.10.10.0/24 nettverk området. Du kan bruke en nettmaske eller standard slash notasjon for å angi IP-adresseområde.,
iptables -A INPUT -s 10.10.10.0/24 -j DROP
or
iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP
Connections to a specific port
This example shows how to block SSH connections from 10.10.10.10.
iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP
You can replace «ssh” with any protocol or port number. The -p tcp
part of the code tells iptables what kind of connection the protocol uses., Hvis du var å blokkere en protokoll som bruker UDP snarere enn TCP, så -p udp
ville være nødvendig i stedet.
Dette eksemplet viser hvordan du kan blokkere SSH-tilkoblinger fra en IP-adresse.
iptables -A INPUT -p tcp --dport ssh -j DROP
Tilkobling Stater
Som vi har nevnt tidligere, en rekke protokoller kommer til å kreve to-veis kommunikasjon. For eksempel, hvis du ønsker å tillate SSH forbindelser til systemet, input-og output-kjeder kommer til å trenge en regel lagt til dem., Men, hva om du bare ønsker SSH kommer inn i systemet for å få lov? Vil ikke legge til en regel til utgang kjeden også tillate utgående SSH forsøk?
Det er der forbindelse stater kommer i, noe som gir deg muligheten du hadde behov for å tillate toveis kommunikasjon, men bare én måte-tilkoblinger til å være etablert. Ta en titt på dette eksemplet, der SSH-tilkoblinger FRA 10.10.10.10 er tillatt, men SSH forbindelser TIL 10.10.10.10 ikke., Imidlertid er systemet tillatelse til å sende tilbake informasjon via SSH så lenge økten er allerede etablert, noe som gjør SSH kommunikasjon mulig mellom disse to verter.
Lagre Endringer
endringene du gjør i din iptables regler vil bli forkastet neste gang at iptables-tjenesten blir startet på nytt med mindre du utfører en kommando for å lagre endringene.,div id=»02f11c1957″>
Red Hat / CentOS:
/sbin/service iptables save
Or
/etc/init.d/iptables save
Other Commands
List the currently configured iptables rules:
iptables -L
Adding the -v
option will give you packet and byte information, and adding -n
will list everything numerically., Med andre ord – vertsnavn, protokoller, og nettverk er oppført som tall.
for Å slette alt som er konfigurert regler, kan du sende flush-kommandoen.
iptables -F