Så här använder du iptables för att filtrera paket på Linux

Innehållsförteckning

I den här handledningen ska vi prata om iptables, brandväggen eller brandväggen som vi har i Linux. Med det här verktyget kan vi filtrera paket (som handledningen kommer att hantera), generera en loggpost, utföra NAT -översättningar.

Tack vare iptables kan vi generera regler för att filtrera paket helt enkelt, även om det kan verka lite förvirrande första gången du använder det, kommer du att se att det inte har några komplikationer när du använder det i några dagar.

Användningen av detta verktyg kräver höga privilegier, det vill säga att vi måste vara superanvändare för att få det att fungera. Vi har många funktioner inom iptables, syftet med självstudien är att se en approximation av dess användning genom exempel. Det är viktigt att när du är klar med handledningen fortsätter du att gräva, eftersom det är mycket användbart.

Sedan lämnar vi den officiella webbplatsen om det är av intresse:

NoteraFör IPv6 har vi ip6 -tabeller.

Om vi ​​vill se information om iptables kör vi följande i en terminal:

 man iptables
Vi kommer att se följande information:

På bilden kan du se en del av informationen från kommandot, för att se allt, rulla ner i terminalen. Som vi såg i början av handledningen är en av de uppgif.webpter som iptables tillåter oss att skapa regler eller filter för att veta vad vi ska göra med paketen som har vår maskin som ursprung / destination. För denna uppgif.webpt kommer vi att vara intresserade av att veta varför vi använder följande begrepp:

Styrelser
Iptables har flera tabeller men för vår handledning fokuserar vi bara på filterbord, som ansvarar för filtrering, används som standard i iptables.

Kedjor
Strängarna som jag ska sätta här är de som hör till tabellen som kommenterats tidigare.

  • Inmatning: Paket avsett för vår maskin.
  • Produktion: Paket som kommer från vårt system.
  • Fram: Paket som går igenom vår maskin för att dirigeras till en annan.

Regler
Vi kommer att ange de 2 som kommer att användas i handledningen, men det finns fler.

  • Acceptera: Paket accepteras.
  • Släppa: Paket kasseras.

Parametrar
Några av de parametrar som vi kan använda är följande.

  • -En regel: För att lägga till en regel
  • -D regel: För att radera den regel som vi anger.
  • -L: Tillåter oss att lista reglerna.
  • -F: Radera alla befintliga regler.
  • -j mål: Ange typ av regel (Acceptera, Släpp).
  • -t bord: Det indikerar tabellen som används (som standard filtertabell).
  • -p -protokoll: Används för att ange protokollet.
  • -i gränssnitt: Vi etablerar gränssnittet för regeln.
  • -s: För att ange ursprunget.
  • -d: För att ange destinationen.
  • -h: Visar hjälp.

Det finns många fler, som de kan vara -destination-port eller -källa-port. För att se dem alla kan du köra kommandot vi diskuterade ovan:

 man iptables
Eller så kan du också köra:
 iptables -h
NoteraDu måste titta noga på alternativen som verktyget erbjuder, eftersom det skiljer mellan små och stora bokstäver och vi kan göra ett misstag (det kommer inte att vara detsamma att sätta -s det där -P).

Låt oss börja med exemplen, totalt 10 kommer att läggas, så det kommer att förstås bättre och vi kan se hur iptables fungerar i brandväggsläge. I exemplen ser du inte sudo, det kommer inte att vara nödvändigt om du är som root, annars måste du lägga till ordet sudo i början av varje exempel.

1. Förbjud avgång till valfri destinationTill att börja med ska vi ge ett enkelt exempel, lämna inte utgången någonstans.

 iptables -A OUTPUT -j DROP
Den här är väldigt enkel, som du kan se är nästa ännu enklare.

2. Rensa alla reglerVi fortsätter med ett mycket enkelt exempel, lämnar våra iptables utan regler, för detta kommer vi att utföra:

 iptables -F
Låt oss komplicera det lite mer i nästa.

3. Förbjud avgång genom hamn 80Nu tar vi hand om att stänga utdata genom en specifik port, i det här fallet är det 80, därför kommer vi inte att surfa på webben via http -protokollet (om vi navigerar till en https -sida kan vi navigera, även om vi skulle kunna göra detsamma som 80).

 iptables -A OUTPUT -p tcp -destination -port 80 -j DROP
NoteraNär vi använder en destinations- eller källport måste vi ange -p -parametern för att ange protokoll.

Vi går vidare till det fjärde exemplet.
4. Förbjud navigering till en sidaVid det här tillfället är vi intresserade av att förbjuda åtkomst till X -sidan från vårt system, låt oss föreställa oss att den här sidan är solvetic.com, för detta tar vi reda på dess IP, mycket enkelt genom att köra en ping kommer vi att få den.

Och nu kommer vi att utföra:

 iptables -A OUTPUT -d 178.33.118.246 -j DROP
Som vi kan se räcker det med att ange din IP efter parametern -d.

5. Lista de regler som finnsI det här exemplet försöker vi lista de filterregler som vi för närvarande har definierat:

 iptables -L
Vi ser en bild, vi har bara två regler definierade, som vi ser nedan:

Låt oss gå vidare till det sjätte exemplet, där vi kommer att använda listan över regler igen.

6. Ta bort en specifik regelMed utgångspunkt från reglerna som vi hade i föregående exempel kommer vi att ta bort en av utgångsreglerna, i det här fallet den första som visas, kör vi följande:

 iptables -D UTGÅNG 1
Och för att verifiera att det raderades effektivt använder vi exempel 5:

Låt oss fortsätta med mer.

7. Undvik att pingaVi vill inte att de ska pinga oss, för detta kommer vi att blockera posten för ICMP -protokollet.

 iptables -A INGÅNG -p ICMP -j DROP
Nedan lämnar jag en bild av pinging innan jag kör ovanstående kommando och efter:

Vi kan se att vår maskin inte svarar, eftersom den avvisar ICMP -paket. Om vi ​​blockerar utmatningen istället för ingången kör vi:

 iptables -A OUTPUT -p ICMP -j DROP
Samma sak som i föregående bild skulle hända igen. För att testa har jag gjort 3 gånger ping, om vi kör kan vi se antalet paket:
 iptables -L -v

Vi ser att det effektivt sätter 3 i föregående bild.

8. Förhindra att en IP skickar data till ossVi kommer att tillämpa en ingång, vi vill inte att en viss IP ska ansluta oss, så vi kommer att utföra:

 iptables -A INPUT -s 192.168.66.1 -j DROP
Låt oss titta på ett något längre exempel.

9. Tillåt utgångar till en rad IP -adresserTänk dig att du bara vill acceptera utdata till en rad IP -adresser, men avvisa resten av utgångarna, vi måste utföra:

 Iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPTERA Iptables -A OUTPUT -j DROP
NoteraOrdningsföljden för reglerna spelar roll, prova det här exemplet med nätverket du vill tillåta och upprätta en anslutning, du kommer att se att det fungerar, radera sedan alla regler och kör de två meningarna i omvänd riktning, nu skulle det avvisa anslutningarna .

Låt oss gå vidare till det tionde och sista exemplet.

10. Öppna port 143 (imap)Vi kommer att öppna en port för inmatning av alla tcp -paket, i detta fall 143 (det skulle vara samma för resten).

 iptables -A INPUT -m state -state NEW -p tcp --dport 143 -j ACCEPT
I det här exemplet ville vi använda --port, så att du kan se att vi kan använda detta eller -destination-portkan vi också använda --sport istället för -källa-port.

Handledningen slutar här, nu försöker du tillämpa andra regler, ju mer du tränar, desto snabbare kommer du att ha när du tillämpar regler, och desto mindre kostar det dig. För att avsluta lämnar vi en handledning som kan vara av intresse för dig, öppning och stängning av portar i Windows 10.

wave wave wave wave wave