Hur man använder Iptables Netfilter -kommandon på Linux

Innehållsförteckning

Säkerhet måste alltid vara en av de lokaler på vilka administratörer, lednings- och supportpersonal och i allmänhet alla användare av alla nuvarande operativsystem måste arbeta på grund av de många hot som finns i nätverket.

När det gäller Linux -distributioner har de flesta av dem avancerade verktyg för att tillämpa ett filter på nätverkspaket både på nivån för nätverkspaketstyrning vid inmatning, rörelse, kontroll och utmatning av stapeln. Nätverk i kärnan i det använda systemet därför, med början med kärnan 2.4, introducerades iptables, som också kallas netfilter och dessa har en högre nivå av säkerhet och praktiska funktioner för att skydda systemet.

iptables hanterar IPv4 -filtrering medan ip6tables hanterar IPv6 -filtrering i dagens nätverk.
Solvetic kommer att göra en analys av hur iptables fungerar och några av de mer praktiska kommandon som vi kan ta från det.

1. Paketfiltrering på Linux


Kärnan i Linux -distributioner använder Netfilter -verktyget för att utföra paketfiltreringsprocessen och därmed utföra uppgif.webpterna att ta emot eller stoppa dem.

Regler inbyggda i NetfilterNetfilter är som standard införlivat i Linux -kärnan och har tre tabeller eller listor med regler integrerade så här:

  • filter: Avser standardtabellen för pakethantering.
  • nat: Dess funktion är att ändra paket som har skapats i en ny anslutning som främst används av NAT.
  • mangle: Dess användning gäller när specifika nätverkspaket måste ändras.

Nu har varje tabell en grupp inbyggda kedjor som är relaterade till de åtgärder som kan utföras av netfilter, dessa är:

Regler för filterbordDe inbyggda strängarna för filterbordet är:

  • INGÅNG: Det är relaterat till de paket som är avsedda för värden.
  • UTGÅNG: Detta fungerar på nätverkspaket som har genererats lokalt.
  • FRAMÅT: Associerar paketen som har dirigerats genom huvudvärden.

Regler för nat -tabellerDe inbyggda strängarna för natbordet är:

  • PREROUTING: Dess funktion är att ändra nätverkspaket så snart de anländer.
  • UTGÅNG: Den har utformats för att ändra nätverkspaket som skapas lokalt och aktiveras innan de skickas.
  • POSTROUTING: Skapad för att ändra paket innan de skickas globalt.

Regler för mangrovebrädorDe inbyggda kedjorna för mangrovebordet är:

  • INPUT: Utformad för att modifiera nätverkspaketen avsedda för huvudvärden.
  • OUTPUT: Skapad för att ändra lokalt skapade nätverkspaket och fungerar innan de skickas.
  • FRAMÅT: Ändrar paketen som har dirigerats genom huvudvärden.
  • PREROUTING: Din uppgif.webpt är att ändra inkommande paket innan de dirigeras.
  • POSTROUTING: Ändrar nätverkspaket innan sändningsprocessen äger rum.

Varje nätverkspaket som tas emot eller skickas från Linux -operativsystemet är alltid kopplat till minst en tabell. Låt oss nu förstå några av de mer användbara kommandona som vi kan använda med iptables.

2. Visa brandväggsstatus

Steg 1
För att veta det aktuella tillståndet för brandväggen kör vi följande rad:

 sudo iptables -L -n -v 

FÖRSTORA

Steg 2
Där kan vi validera varje kedja med sina respektive nivåer av hanterade paket, parametrarna som används i detta kommando är:

-LVisa listreglerna.

-vGenererar detaljerad information såsom gränssnittsnamn, plus regelalternativ, plus paket- och byte -räknare finns också listade, med suffixet 'K', 'M' eller 'G' för alternativ på 1000, 1 000 000 respektive 1 000 000 000.

-nVisar IP -adressen och porten i numeriskt format.

Steg 3
Om du vill kan du se detta resultat med antal rader, vi kan utföra följande:

 iptables -n -L -v -line -numbers 

FÖRSTORA

3. Stoppa, starta om eller starta iptables på Linux

Steg 1
Huvudkommandona för att hantera iptables -uppgif.webpter på start- eller stoppnivå är:

 service iptables stoppa service iptables starta service iptables restart
Steg 2
Det kommer också att vara möjligt att använda kommandot iptables för att stoppa brandväggen och eliminera alla regler så här:
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FRAMÅT ACCEPT
Steg 3
De definierade parametrarna är:

-FTa bort alla regler.

-XTa bort en sträng.

-ttable_name: Välj tabellen (namngiven nat eller mangle) och ta bort eller kassera reglerna.

-PAnge standardpolicyn, till exempel DROP, REJECT eller ACCEPT.

4. Lägg till nya brandväggsregler i Linux

Steg 1
En av de mest praktiska uppgif.webpterna för iptables är att skapa vissa regler för korrekt hantering av paketen, för att infoga en eller flera regler i den valda kedjan använder vi följande syntax där radnumren först måste upptäckas:

 iptables -L INPUT -n -line -numbers 
Steg 2
låt oss till exempel lägga till följande regel:
 iptables -I INPUT 2 -s 192.168.0.50 -j DROP 
Steg 3
Senare kommer vi att se reglerna med kommandot ovan. Där ser vi att den skapade regeln har lagts till på rad 3 som anges.

FÖRSTORA

5. Ta bort en brandväggsregel på Linux

Steg 1
Först och främst måste vi visa de regler som skapas för att bestämma exakt vilken som ska elimineras, för att få denna information har vi följande alternativ:

 iptables -L INPUT -n --line -numbers iptables -L OUTPUT -n -line -numbers iptables -L OUTPUT -n --line -numbers | mindre
Steg 2
För att ta bort regel 3 som skapats tidigare kommer vi att utföra följande:
 iptables -D INGÅNG 3 

FÖRSTORA

6. Lagra och återställ iptables -regler på Linux

Steg 1
Varje gång vi ändrar iptables -reglerna måste vi fortsätta för att spara dessa ändringar, för det är tillräckligt för att köra följande rad:

 service iptables vet 
Steg 2
Vi kan helt enkelt återställa de regler som vi har lagrat genom att köra följande:
 service iptables startar om 

7. Ange standardregler i Linux


Med iptables kommer det att vara möjligt att tillåta eller neka standardreglerna som måste tillämpas på hela systemet på följande sätt.

Steg 1
För att eliminera all trafik kör vi:

 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FRAMÅT DROP
Steg 2
Så här tar du bort all inkommande trafik:
 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m state -NEW, ESTABLISHED -j ACCEPT

FÖRSTORA

8. Blockera en IP -adress i Linux

Med iptables kommer det att vara möjligt att blockera en viss IP -adress för att förhindra att den har nätverkspaketåtkomst till systemet. För denna uppgif.webpt har vi följande alternativ:

 iptables -A INPUT -s 192.168.0.14 -j DROP (Specific IP) iptables -A INPUT -s 192.168.0.0/24 -j DROP (Address range)

9. Blockera inkommande portförfrågningar på Linux

Steg 1
En annan typisk säkerhetsuppgif.webpt är att begränsa paketåtkomst genom en specifik port, med iptables har vi följande alternativ:

Blockera alla åtgärderBlockera alla åtgärder för en specifik port genom att köra:

 iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Blockera en portBlockera en port för en specifik IP -adress:

 iptables -A INPUT -p tcp -s 192.168.0.14 --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp -s 192.168.0.1/24 --dport 80 -j DROP

Blockera utgående IP -adress
Det är möjligt att blockera utgående trafik till en specifik värd eller domän, till exempel Solvetic.com, för detta utför vi följande:

 värd -t till solvetic.com 

FÖRSTORA

Steg 2
Nu, med denna IP -adress fortsätter vi att blockera:

 iptables -A OUTPUT -d 178.33.118.246 -j DROP 
Steg 3
Det kommer också att vara möjligt att blockera hela domänen så här:
 iptables -A OUTPUT -p tcp -d www.solvetic.com -j DROP 

10. Oavsett om du tillåter nätverkstrafik med MAC -adress i Linux eller inte

En annan möjlighet att använda är att begränsa eller tillåta användning av paket baserat på MAC -adressen för den valda enheten. För detta kommer vi att använda ett av följande alternativ:

 iptables -A INPUT -m mac --mac -source 00: 2F: EF: 85: 04: 09 -j DROP (Neka trafik från vald MAC -adress) iptables -A INPUT -p tcp -destination -port 22 -m mac --mac -source 00: 2F: EF: 85: 04: 09 -j ACCEPT (Stöder paket från adressen som endast anges av port 22)

11. Blockera eller tillåt ICMP -förfrågningar på Linux


ICMP -protokollet (Internet Control Message Protocol) är ett protokoll som utvecklats för att hantera information relaterad till fel i lokala nätverksdatorer, så att med detta protokoll kan fjärrförfrågningar göras för att verifiera tillgänglighet. Av ett team och detta när det gäller säkerhet kan vara känsligt .

Steg 1
Vi kan köra följande rader för att undvika ICMP -förfrågningar på Linux:

 iptables -A INPUT -p icmp --icmp -type echo -request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp -type echo -request -j DROP
Steg 2
Ping -svaren kan också begränsas till vissa nätverk eller värdar så här:
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp -type echo -request -j ACCEPTERA 
Steg 3
Vi kommer endast att kunna acceptera en begränsad typ av ICMP -förfrågningar så här:
 iptables -A INPUT -p icmp --icmp -type echo -reply -j ACCEPT iptables -A INPUT -p icmp --icmp -type destination -unreachable -j ACCEPT iptables -A INPUT -p icmp --icmp -type time- överskridit -j ACCEPTERA

12. Öppna en rad portar och IP -adresser i Linux

Steg 1
Detta är användbart om vi behöver aktivera ett definierat antal portar för att utföra administrativa eller programkörningsåtgärder:

 iptables -A INPUT -m state -state NEW -m tcp -p tcp --port 9000: 9020 -j ACCEPTERA 
Således har vi öppnat utbudet av portar 9000 till 9020 för TCP -anslutningar.

Steg 2
Ett annat alternativ är att aktivera en rad IP -adresser genom att ställa in en specifik port så här. Där har vi godkänt detta område att använda port 80.

 iptables -A INPUT -p tcp -destination -port 80 -m iprange --src -område 192.168.0.70-192.168.0.80 -j ACCEPTERA 

13. Begränsa antalet parallella anslutningar till en server med klient -IP på Linux

Steg 1
Vi kan använda connlimit -modulen för att definiera dessa begränsningar, till exempel för att tillåta 5 ssh -anslutningar per klient, anger vi följande:

 iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit -above 5 -j REJECT 

FÖRSTORA

Steg 2
Så här begränsar du HTTP -åtkomst till 10:

 iptables -p tcp --syn --dport 80 -m connlimit --connlimit -above 10 --connlimit -mask 24 -j DROP 
Steg 3
Vi har angett följande:
  • --climlimit-over 5: Matchar om antalet befintliga anslutningar är större än 5.
  • --connlimit-mask 24: Det här är gruppvärdarna som använder prefixets längd. För IPv4 måste det vara ett tal mellan (inklusive) 0 och 32.

14. Begränsa antalet parallella anslutningar till en server med klient -IP på Linux

Steg 1
NAT (Network Address Translation) är ett system för att översätta nätverksadresser och på så sätt underlätta navigering. För att lista dessa kommer vi att utföra följande:

 iptables -t nat -L -n -v 

FÖRSTORA

Steg 2
Det kommer att vara möjligt att se detta resultat med sina respektive rader så här:

 iptables -t nat -v -L -n -line -number 

15. Tydliga NAT -regler på Linux


Steg 1
Om vi ​​vill ta bort de etablerade NAT -reglerna kommer vi att utföra följande:
 iptables -t nat -v -L -n -line -number iptables -t nat -v -L PREROUTING -n --line -number iptables -t nat -v -L POSTROUTING -n -line -number
Steg 2
För att radera alla "PREROUTING" -regler kör vi följande syntax:
 iptables -t nat -D PREROUTING {Regelnummer} 
Steg 3
För att radera alla "POSTROUTING" -regler som vi utför:
 iptables -t nat -D POSTROUTING {rule number} 

16. Återställ paketräknare i Linux


Först måste vi köra kommandot "iptables -L -n -v", som vi såg tidigare, för att lista räknarna.

Steg 1
För att rensa dessa räknare, kör bara följande:

 iptables -Z 
Steg 2
För att återställa de räknare som endast har åtkomst kör vi:
 iptables -Z INGÅNG 

17. Verifiera brandväggen på Linux

Steg 1
Först och främst måste vi validera om portarna är öppna eller inte med följande kommando:

 netstat -tulpn 

FÖRSTORA

Steg 2
För att validera en specifik port kör vi:

 netstat -tulpn | grep: 80 

FÖRSTORA

Steg 3
Om porten inte är öppen kör vi:

 service httpd start 
Steg 4
Då måste vi se till att iptables har åtkomst via den porten:
 iptables -L INPUT -v -n | grep 80 

18. Tillåt loop -åtkomst med iptables på Linux

Loopback -åtkomst vars åtkomst är från IP 127.0.0.1 är viktigt och bör alltid vara aktiv för administration och nätverkshanteringsuppgif.webpter. För att aktivera det i iptables, kör bara följande.

 iptables -A INPUT -i lo -j ACCEPTERA iptables -A OUTPUT -o lo -j ACCEPTERA

19. Definiera nya iptables -strängar på Linux


Steg 1
Med iptables har vi möjlighet att definiera vår egen kedja och lagra anpassade regler i den. För att definiera en kedja utför vi följande:
 iptables -N "Strängnamn" 
Steg 2
Sedan kör vi "iptables -L" för att lista iptables -strängarna:

FÖRSTORA

Steg 3
I resultatet kommer vi att se vår skapade kedja:

FÖRSTORA

20. Rensa iptables brandväggskedjor eller regler på Linux

För att utföra denna radering måste vi utföra följande:

 iptables -F 
Som vi kan se är iptables en heltäckande lösning för att centralt hantera olika säkerhetsaspekter i Linux -distributioner för att uppnå förbättringar av allt som rör integritet.

wave wave wave wave wave