Slik bruker du iptables til å filtrere pakker på Linux

Innholdsfortegnelse

I denne opplæringen skal vi snakke om iptables, brannmuren eller brannmuren som vi har i Linux. Dette verktøyet lar oss filtrere pakker (som opplæringen vil håndtere), generere en loggpost, utføre NAT -oversettelser.

Takket være iptables kan vi generere regler for å filtrere pakker ganske enkelt, selv om det kan virke litt forvirrende første gang du bruker det, vil du se at det ikke har noen komplikasjoner når du bruker det i noen dager.

Bruken av dette verktøyet krever høye privilegier, det vil si at vi må være superbrukere for å få det til å kjøre. Vi har mange funksjoner i iptables. Målet med opplæringen er å se en tilnærming til bruken gjennom eksempler. Det er viktig at når du er ferdig med opplæringen, fortsetter du å grave, da det er veldig nyttig.

Så forlater vi det offisielle nettstedet i tilfelle det er av interesse:

MerkFor IPv6 har vi ip6 -tabeller.

Hvis vi vil se informasjon om iptables, vil vi utføre følgende i en terminal:

 mann iptables
Vi vil se følgende informasjon:

På bildet kan du se en del av informasjonen fra kommandoen, for å se alt, bla ned i terminalen. Som vi så i begynnelsen av opplæringen, er en av oppgavene som iptables vil tillate oss å lage regler eller filtre for å vite hva vi skal gjøre med pakkene som har maskinen som opprinnelse / destinasjon. For denne oppgaven vil vi være interessert i å vite hvorfor vi bruker følgende begreper:

Tavler
Iptables har flere tabeller, men for opplæringen fokuserer vi bare på filterbord, som har ansvaret for filtrering, brukes som standard i iptables.

Kjeder
Strengene som jeg skal sette her er de som tilhører tabellen som er kommentert før.

  • Inngang: Pakker beregnet på maskinen vår.
  • Produksjon: Pakker som stammer fra systemet vårt.
  • Framover: Pakker som går gjennom maskinen vår for å bli dirigert til en annen.

Regler
Vi skal angi de 2 som skal brukes i opplæringen, men det er flere.

  • Aksepterer: Pakker godtas.
  • Miste: Pakker kastes.

Parametere
Noen av parametrene vi kan bruke er følgende.

  • -En regel: For å legge til en regel
  • -D -regelen: For å slette regelen som vi angir.
  • -L: Lar oss liste reglene.
  • -F: Slett alle eksisterende regler.
  • -j mål: Angi type regel (Godta, Slipp).
  • -t bord: Det vil indikere tabellen som brukes (som standard filtertabell).
  • -p protokoll: Brukes til å indikere protokollen.
  • -i grensesnitt: Vi etablerer grensesnittet for regelen.
  • -s: For å indikere opprinnelsen.
  • -d: For å angi destinasjonen.
  • -h: Viser hjelp.

Det er mange flere, som de kan være -destinasjonsport eller -kildeport. For å se dem alle kan du kjøre kommandoen vi diskuterte ovenfor:

 mann iptables
Eller du kan også kjøre:
 iptables -h
MerkDu må se nøye på alternativene som tilbys av verktøyet, siden det skiller mellom små og store bokstaver, og vi kan gjøre en feil (det vil ikke være det samme å sette -s at -P).

La oss starte med eksemplene, totalt 10 vil bli satt, så det blir bedre forstått og vi kan se hvordan iptables fungerer i brannmurmodus. I eksemplene vil du ikke se sudo, det vil ikke være nødvendig hvis du er som root, ellers må du legge til ordet sudo i begynnelsen av hvert eksempel.

1. Forby avgang til et hvilket som helst reisemålTil å begynne med skal vi gi et enkelt eksempel, ikke forlat utgangen noe sted.

 iptables -A OUTPUT -j DROP
Denne er veldig enkel, som du kan se, er den neste enda enklere.

2. Fjern alle reglerVi fortsetter med et veldig enkelt eksempel, la våre iptables være uten regler, for dette vil vi utføre:

 iptables -F
La oss komplisere det litt mer i det neste.

3. Forby avgang gjennom havn 80Nå tar vi vare på å lukke utgangen gjennom en bestemt port, i dette tilfellet er det 80, derfor vil vi ikke ha nettlesing gjennom http -protokollen (hvis vi navigerer til en https -side, kan vi navigere, selv om vi kunne gjøre det samme som 80).

 iptables -A OUTPUT -p tcp -destinasjonsport 80 -j DROP
MerkNår du bruker en destinasjon eller kildeport, må vi sette - -parameteren for å indikere protokoll.

Vi går videre til det fjerde eksemplet.
4. Forby navigering til en sideVed denne anledningen er vi interessert i å forby tilgang til X -siden fra systemet vårt, la oss forestille oss at denne siden er solvetic.com, for dette finner vi ut dens IP, veldig enkelt ved å kjøre en ping vi får den.

Og nå skal vi utføre:

 iptables -A OUTPUT -d 178.33.118.246 -j DROP
Som vi kan se, er det nok å angi din IP etter parameteren -d.

5. Liste opp reglene som finnesDette eksemplet vil prøve å liste opp filterreglene som vi for øyeblikket har definert:

 iptables -L
Vi ser et bilde, vi har bare to regler definert, som vi ser nedenfor:

La oss gå videre til det sjette eksemplet, der vi vil bruke listen over regler igjen.

6. Slett en bestemt regelHer, med utgangspunkt i reglene vi hadde i forrige eksempel, skal vi slette en av utgangsreglene, i dette tilfellet den første som vises, utfører vi følgende:

 iptables -D UTGANG 1
Og for å bekrefte at den ble slettet effektivt, bruker vi eksempel 5:

La oss fortsette med mer.

7. Unngå å pingeVi vil ikke at de skal pinge oss, for dette kommer vi til å blokkere oppføringen for ICMP -protokollen.

 iptables -A INNGANG -p ICMP -j DROP
Nedenfor legger jeg igjen et bilde av pinging før jeg utfører kommandoen ovenfor og etter:

Vi kan se at maskinen ikke svarer, fordi den avviser ICMP -pakker. Hvis vi blokkerer utgangen i stedet for inngangen, ville vi utføre:

 iptables -A OUTPUT -p ICMP -j DROP
Det samme som i forrige bilde ville skje igjen. For å teste har jeg gjort ping 3 ganger, hvis vi kjører kan vi se antall pakker:
 iptables -L -v

Vi ser at det effektivt setter 3 i det forrige bildet.

8. Forhindre at en IP sender oss dataVi kommer til å bruke en input en, vi vil ikke at en bestemt IP skal koble oss, så vi vil utføre:

 iptables -A INPUT -s 192.168.66.1 -j DROP
La oss se på et noe lengre eksempel.

9. Tillat utganger til en rekke IP -erTenk deg at du bare vil godta utdata til en rekke IP -adresser, men avvise resten av utgangene, vi må utføre:

 Iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT Iptables -A OUTPUT -j DROP
MerkUtførelsesrekkefølgen for reglene er viktig, prøv dette eksemplet med nettverket du vil tillate og opprett en tilkobling, du vil se at det fungerer, slett deretter alle reglene og kjør de to setningene i omvendt, nå ville det avvise tilkoblingene .

La oss gå videre til det tiende og siste eksemplet.

10. Åpne port 143 (imap)Vi skal åpne en port for oppføring av alle tcp -pakker, i dette tilfellet 143 (det ville være det samme for resten).

 iptables -A INPUT -m state --state NEW -p tcp --dport 143 -j ACCEPT
I dette eksemplet ønsket vi å bruke --port, slik at du kan se at vi kan bruke denne eller -destinasjonsport, kan vi også bruke --sport i stedet for -kildeport.

Opplæringen slutter her, nå prøver du å bruke andre regler, jo mer du øver, jo raskere vil du ha når du bruker regler, og jo mindre vil det koste deg. For å fullføre, legger vi igjen en opplæring som kan være av interesse for deg, åpning og lukking av porter i Windows 10.

wave wave wave wave wave