Sådan bruges iptables til at filtrere pakker på Linux

Indholdsfortegnelse

I denne tutorial vil vi tale om iptables, firewall eller firewall, som vi har i Linux. Dette værktøj giver os mulighed for at filtrere pakker (som selvstudiet vil behandle), generere en logpost, udføre NAT -oversættelser.

Takket være iptables kan vi ganske enkelt generere regler for filtrering af pakker, selvom det kan virke lidt forvirrende første gang, du bruger det, vil du se, at det ikke har nogen komplikationer, når du bruger det i et par dage.

Brugen af ​​dette værktøj kræver høje privilegier, det vil sige, at vi skal være superbrugere for at få det til at køre. Vi har mange funktioner inden for iptables, formålet med selvstudiet er at se en tilnærmelse til dets anvendelse gennem eksempler. Det er vigtigt, at når du er færdig med selvstudiet, fortsætter du med at grave, da det er meget nyttigt.

Så forlader vi det officielle websted, hvis det er af interesse:

BemærkTil IPv6 har vi ip6 -tabeller.

Hvis vi vil se oplysninger om iptables, udfører vi følgende i en terminal:

 mand iptables
Vi ser følgende oplysninger:

På billedet kan du se en del af oplysningerne fra kommandoen, for at se det hele skal du rulle ned i terminalen. Som vi så i begyndelsen af ​​selvstudiet, er en af ​​de opgaver, som iptables tillader os, at oprette regler eller filtre for at vide, hvad vi skal gøre med de pakker, der har vores maskine som deres oprindelse / destination. Til denne opgave vil vi være interesseret i at vide, hvorfor vi bruger følgende begreber:

Tavler
Iptables har flere tabeller, men til vores tutorial fokuserer vi kun på filterbord, som er ansvarlig for filtrering, bruges som standard i iptables.

Kæder
De strenge, jeg vil lægge her, er dem, der tilhører tabellen, der blev kommenteret før.

  • Input: Pakker bestemt til vores maskine.
  • Produktion: Pakker, der stammer fra vores system.
  • Frem: Pakker, der går gennem vores maskine for at blive dirigeret til en anden.

Regler
Vi kommer til at angive de 2, der vil blive brugt i selvstudiet, men der er flere.

  • Acceptere: Pakker accepteres.
  • Dråbe: Pakker kasseres.

Parametre
Nogle af de parametre, vi kan bruge, er følgende.

  • -En regel: For at tilføje en regel
  • -D -reglen: For at slette den regel, vi angiver.
  • -L: Tillader os at angive reglerne.
  • -F: Slet alle eksisterende regler.
  • -j mål: Indstil regeltype (Accepter, slip).
  • -t bord: Det angiver den tabel, der bruges (som standard filtertabel).
  • -p protokol: Bruges til at angive protokollen.
  • -i grænseflade: Vi etablerer grænsefladen for reglen.
  • -s: For at angive oprindelsen.
  • -d: For at angive destinationen.
  • -h: Viser hjælp.

Der er mange flere, som de kan være --Destinationshavn eller -kilde-port. For at se dem alle kan du køre kommandoen, vi diskuterede ovenfor:

 mand iptables
Eller du kan også køre:
 iptables -h
BemærkDu skal se nøje på de muligheder, værktøjet tilbyder, da det skelner mellem små og store bogstaver, og vi kan begå en fejl (det vil ikke være det samme at sætte -s at -P).

Lad os starte med eksemplerne, der vil blive sat i alt 10, så det bliver bedre forstået, og vi kan se, hvordan iptables fungerer i firewall -tilstand. I eksemplerne ser du ikke sudo, det er ikke nødvendigt, hvis du er som root, ellers bliver du nødt til at tilføje ordet sudo i begyndelsen af ​​hvert eksempel.

1. Forby afgang til enhver destinationTil at begynde med vil vi give et let eksempel, lad ikke udgangen ligge nogen steder.

 iptables -A OUTPUT -j DROP
Denne er meget let, som du kan se, er den næste endnu lettere.

2. Ryd alle reglerVi fortsætter med et meget enkelt eksempel, lad vores iptables være uden regler, for dette vil vi udføre:

 iptables -F
Lad os komplicere det lidt mere i den næste.

3. Forby afgang gennem havn 80Nu sørger vi for at lukke output via en bestemt port, i dette tilfælde er det 80, derfor har vi ikke webbrowsing gennem http -protokollen (hvis vi navigerer til en https -side, kan vi navigere, selvom vi kunne gøre det samme som 80).

 iptables -A OUTPUT -p tcp -destination -port 80 -j DROP
BemærkNår vi bruger en destinations- eller kildeport, skal vi sætte parameteren -p for at angive protokol.

Vi går videre til det fjerde eksempel.
4. Forbyde navigation til en sideVed denne lejlighed er vi interesserede i at forbyde adgang til X -side fra vores system, lad os forestille os, at denne side er solvetic.com, for dette finder vi ud af dens IP, meget let ved at udføre et ping, vi får det.

Og nu vil vi udføre:

 iptables -A OUTPUT -d 178.33.118.246 -j DROP
Som vi kan se, er det nok at angive din IP efter parameteren -d.

5. Angiv de regler, der findesDette eksempel vil forsøge at liste de filterregler, som vi i øjeblikket har defineret:

 iptables -L
Vi ser et billede, vi har kun to regler defineret, som vi ser nedenfor:

Lad os gå videre til det sjette eksempel, hvor vi igen vil bruge listen over regler.

6. Slet en bestemt regelHer, ud fra de regler, som vi havde i det foregående eksempel, skal vi slette en af ​​exit -reglerne, i dette tilfælde den første, der vises, udfører vi følgende:

 iptables -D OUTPUT 1
Og for at kontrollere, at det effektivt blev slettet, bruger vi eksempel 5:

Lad os fortsætte med mere.

7. Undgå at blive pingetVi vil ikke have, at de skal pinge os, for dette vil vi blokere posten for ICMP -protokollen.

 iptables -A INPUT -p ICMP -j DROP
Nedenfor efterlader jeg et billede af pinging, før jeg udfører ovenstående kommando og efter:

Vi kan se, at vores maskine ikke svarer, fordi den afviser ICMP -pakker. Hvis vi blokerer output i stedet for input, ville vi udføre:

 iptables -A OUTPUT -p ICMP -j DROP
Det samme som i det forrige billede ville ske igen. For at teste har jeg lavet 3 gange ping, hvis vi udfører, kan vi se antallet af pakker:
 iptables -L -v

Vi ser, at det effektivt sætter 3 i det forrige billede.

8. Undgå, at en IP sender os dataVi kommer til at anvende en input en, vi vil ikke have en bestemt IP til at forbinde os, så vi vil udføre:

 iptables -A INPUT -s 192.168.66.1 -j DROP
Lad os se på et noget længere eksempel.

9. Tillad udgange til en række IP'erForestil dig, at du kun vil acceptere output til en række IP -adresser, men afvise resten af ​​output, vi skal udføre:

 Iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT Iptables -A OUTPUT -j DROP
BemærkRækkefølgen for udførelse af reglerne betyder noget, prøv dette eksempel med det netværk, du vil tillade, og opret en forbindelse, du vil se, at det virker, derefter slette alle reglerne og udføre de 2 sætninger i omvendt, nu ville det afvise forbindelserne .

Lad os gå videre til det tiende og sidste eksempel.

10. Åbn port 143 (imap)Vi vil åbne en port til indtastning af alle tcp -pakker, i dette tilfælde 143 (det ville være det samme for resten).

 iptables -A INPUT -m state -state NEW -p tcp --dport 143 -j ACCEPT
I dette eksempel ville vi bruge --port, så du kan se, at vi kan bruge denne eller --Destinationshavn, kunne vi også bruge --sport i stedet for -kilde-port.

Undervisningen slutter her, nu prøver du at anvende andre regler, jo mere du øver, jo hurtigere vil du have, når du anvender regler, og jo mindre vil det koste dig. For at afslutte efterlader vi en vejledning, der kan være af interesse for dig, om åbning og lukning af porte i Windows 10.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave