Iptables Netfilter-opdrachten gebruiken op Linux

Inhoudsopgave

Beveiliging moet altijd een van de locaties zijn waar beheerders, management en ondersteunend personeel en, in het algemeen, alle gebruikers van een huidig ​​besturingssysteem moeten werken vanwege de meerdere bedreigingen die aanwezig zijn op het netwerk.

In het geval van Linux-distributies hebben de meeste van hen de geavanceerde tools om een ​​filter toe te passen op netwerkpakketten, zowel op het niveau van de verwerking van netwerkpakketbeheer bij invoer, verplaatsing, besturing en uitvoer van de stapel. , daarom werden vanaf kernel 2.4 iptables geïntroduceerd, ook wel netfilter genoemd en deze hebben een hoger beveiligingsniveau en praktische functionaliteiten voor de bescherming van het systeem.

iptables handelt IPv4-filtering af, terwijl ip6tables IPv6-filtering op de huidige netwerken afhandelt.
Solvetic zal een analyse maken van hoe iptables werkt en enkele van de meer praktische commando's die we eruit kunnen halen.

1. Pakketfiltering op Linux


De kernel van Linux-distributies maakt gebruik van de Netfilter-tool om het pakketfilterproces uit te voeren en dus de taken uit te voeren om ze te ontvangen of te stoppen.

Regels ingebouwd in NetfilterNetfilter is standaard opgenomen in de Linux-kernel en heeft drie tabellen of lijsten met regels die als volgt zijn geïntegreerd:

  • filter: verwijst naar de standaardtabel die is ontworpen voor pakketbeheer.
  • nat: Zijn functie is om pakketten te wijzigen die zijn gemaakt in een nieuwe verbinding die voornamelijk door NAT wordt gebruikt.
  • mangel: Het gebruik ervan is van toepassing wanneer specifieke netwerkpakketten moeten worden gewijzigd.

Nu heeft elke tabel een groep ingebouwde ketens die gerelateerd zijn aan de acties die door netfilter kunnen worden uitgevoerd, dit zijn:

Regels voor filtertabellenDe ingebouwde strings voor de filtertabel zijn:

  • INPUT: Het is gerelateerd aan de pakketten die bestemd zijn voor de host.
  • OUTPUT: Dit werkt op netwerkpakketten die lokaal zijn gegenereerd.
  • FORWARD: Koppelt de pakketten die via de hoofdhost zijn gerouteerd.

Regels voor nat-tabellenDe ingebouwde strings voor de nat-tabel zijn:

  • PREROUTING: Zijn functie is om netwerkpakketten te wijzigen zodra ze aankomen.
  • OUTPUT: Het is ontworpen om netwerkpakketten te wijzigen die lokaal zijn gemaakt en wordt geactiveerd voordat ze worden verzonden.
  • POSTROUTING: Gemaakt om pakketten te wijzigen voordat ze wereldwijd worden verzonden.

Regels voor mangrovebordenDe ingebouwde kettingen voor de mangrovetafel zijn:

  • INPUT: Ontworpen om de netwerkpakketten te wijzigen die bestemd zijn voor de hoofdhost.
  • OUTPUT: Gemaakt om lokaal gemaakte netwerkpakketten te wijzigen en werkt voordat ze worden verzonden.
  • FORWARD: Wijzigt de pakketten die door de hoofdhost zijn gerouteerd.
  • PREROUTING: Uw taak is om inkomende pakketten te wijzigen voordat ze worden gerouteerd.
  • POSTROUTING: Wijzigt netwerkpakketten voordat het verzendproces plaatsvindt.

Elk netwerkpakket dat wordt ontvangen of verzonden door het Linux-besturingssysteem is altijd gekoppeld aan ten minste één tabel. Laten we nu enkele van de meer bruikbare commando's begrijpen die we kunnen gebruiken met iptables.

2. De firewallstatus weergeven

Stap 1
Om de huidige status van de firewall te kennen, voeren we de volgende regel uit:

 sudo iptables -L -n -v 

VERGROTEN

Stap 2
Daar kunnen we elke keten valideren met zijn respectieve niveaus van beheerde pakketten, de parameters die in deze opdracht worden gebruikt zijn:

-LGeef de lijstregels weer.

-vGenereert gedetailleerde informatie zoals interfacenaam, plus regelopties, plus pakket- en bytetellers worden ook vermeld, met achtervoegsel 'K', 'M' of 'G' voor opties van respectievelijk 1000, 1.000.000 en 1.000.000.000.

-NGeeft het IP-adres en de poort in numeriek formaat weer.

Stap 3
Als je wilt, zie dit resultaat met aantal regels, we kunnen het volgende uitvoeren:

 iptables -n -L -v --regelnummers 

VERGROTEN

3. Stop, herstart of start iptables op Linux

Stap 1
De belangrijkste commando's om iptables-taken op het start- of stopniveau te beheren zijn:

 service iptables stop service iptables start service iptables herstart
Stap 2
Het zal ook mogelijk zijn om de opdracht iptables te gebruiken om de firewall te stoppen en alle regels als volgt te elimineren:
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangel -F iptables -t mangel -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P VOORUIT ACCEPT
Stap 3
De gedefinieerde parameters zijn:

-FVerwijder alle regels.

-XEen tekenreeks verwijderen.

-ttable_name: Selecteer de tabel (met de naam nat of mangle) en verwijder of verwijder de regels.

-PStel het standaardbeleid in, zoals DROP, REJECT of ACCEPT.

4. Nieuwe firewallregels toevoegen in Linux

Stap 1
Een van de meest praktische taken van iptables is om bepaalde regels te maken voor het juiste beheer van de pakketten, om een ​​of meer regels in de geselecteerde keten in te voegen, zullen we de volgende syntaxis gebruiken waar de regelnummers eerst moeten worden ontdekt:

 iptables -L INPUT -n --regelnummers 
Stap 2
laten we bijvoorbeeld de volgende regel toevoegen:
 iptables -I INPUT 2 -s 192.168.0.50 -j DROP 
Stap 3
Later zullen we de regels zien met behulp van de bovenstaande opdracht. Daar zien we dat de aangemaakte regel is toegevoegd op regel 3 zoals aangegeven.

VERGROTEN

5. Een firewallregel verwijderen op Linux

Stap 1
Allereerst moeten we de regels weergeven die zijn gemaakt om precies te bepalen welke moet worden geëlimineerd, om deze informatie te verkrijgen hebben we de volgende opties:

 iptables -L INPUT -n --regelnummers iptables -L OUTPUT -n --regelnummers iptables -L OUTPUT -n --regelnummers | minder
Stap 2
Om regel 3 die eerder is gemaakt te verwijderen, gaan we nu het volgende uitvoeren:
 iptables -D INGANG 3 

VERGROTEN

6. Bewaar en herstel iptables-regels op Linux

Stap 1
Elke keer dat we een wijziging aanbrengen in de iptables-regels, moeten we doorgaan met het opslaan van die wijzigingen, hiervoor volstaat het om de volgende regel uit te voeren:

 service iptables weet 
Stap 2
We kunnen de regels die we hebben opgeslagen eenvoudig herstellen door het volgende uit te voeren:
 service iptables herstart 

7. Standaardregels instellen in Linux


Met iptables is het op de volgende manier mogelijk om de standaardregels toe te staan ​​of te weigeren die op het hele systeem moeten worden toegepast.

Stap 1
Om al het verkeer te elimineren, voeren we het volgende uit:

 iptables -P INGANG DROP iptables -P UITGANG DROP iptables -P VOORUIT DROP
Stap 2
Om al het inkomende verkeer te verwijderen:
 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m status - NIEUW, GEVESTIGD -j ACCEPT

VERGROTEN

8. Een IP-adres blokkeren in Linux

Met iptables is het mogelijk om een ​​bepaald IP-adres te blokkeren om te voorkomen dat het netwerkpakkettoegang tot het systeem krijgt. Voor deze taak hebben we de volgende opties:

 iptables -A INPUT -s 192.168.0.14 -j DROP (specifiek IP) iptables -A INPUT -s 192.168.0.0/24 -j DROP (adresbereik)

9. Blokkeer inkomende poortverzoeken op Linux

Stap 1
Een andere typische beveiligingstaak is het beperken van pakkettoegang via een specifieke poort, met iptables hebben we de volgende opties:

Alle acties blokkerenBlokkeer alle acties voor een specifieke poort door het volgende uit te voeren:

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

Een poort blokkerenBlokkeer een poort voor een specifiek IP-adres:

 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

Uitgaand IP-adres blokkeren
Het is mogelijk om uitgaand verkeer naar een specifieke host of domein, bijvoorbeeld Solvetic.com, te blokkeren, hiervoor voeren wij het volgende uit:

 host -t naar solvetic.com 

VERGROTEN

Stap 2
Nu gaan we met dit IP-adres verder met het blokkeren:

 iptables -A UITVOER -d 178.33.118.246 -j DROP 
Stap 3
Het is ook mogelijk om het hele domein als volgt te blokkeren:
 iptables -A OUTPUT -p tcp -d www.solvetic.com -j DROP 

10. Wel of niet netwerkverkeer met MAC-adres toestaan ​​in Linux

Een andere mogelijkheid om te gebruiken is om het gebruik van pakketten te beperken of toe te staan ​​op basis van het MAC-adres van het geselecteerde apparaat. Hiervoor gebruiken we een van de volgende opties:

 iptables -A INPUT -m mac --mac-source 00: 2F: EF: 85: 04: 09 -j DROP (verkeer van het geselecteerde MAC-adres weigeren) iptables -A INPUT -p tcp --destination-port 22 - m mac --mac-source 00: 2F: EF: 85: 04: 09 -j ACCEPT (Ondersteunt pakketten van het adres dat alleen wordt aangegeven door poort 22)

11. Blokkeer of sta ICMP-verzoeken toe op Linux


Het ICMP-protocol (Internet Control Message Protocol) is een protocol dat is ontwikkeld om informatie met betrekking tot fouten in lokale netwerkcomputers te beheren, zodat met dit protocol op afstand verzoeken kunnen worden gedaan om de beschikbaarheid van een team te verifiëren en dit in termen van beveiliging kan delicaat zijn .

Stap 1
We kunnen de volgende regels uitvoeren om ICMP-verzoeken op Linux te vermijden:

 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Stap 2
De ping-reacties kunnen ook worden beperkt tot bepaalde netwerken of hosts, zoals deze:
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp-type echo-request -j ACCEPT 
Stap 3
We kunnen slechts een beperkt aantal ICMP-verzoeken accepteren, zoals deze:
 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- overschreden -j ACCEPTEREN

12. Open een reeks poorten en IP-adressen in Linux

Stap 1
Dit is handig als we een gedefinieerde reeks poorten moeten inschakelen om administratieve of programma-uitvoeringsacties uit te voeren:

 iptables -A INPUT -m status --state NIEUW -m tcp -p tcp --dport 9000: 9020 -j ACCEPTEREN 
Zo hebben we het bereik van poorten 9000 tot 9020 geopend voor TCP-verbindingen.

Stap 2
Een ander alternatief is om een ​​reeks IP-adressen in te schakelen door een specifieke poort als deze in te stellen. Daar hebben we dit bereik geautoriseerd om poort 80 te gebruiken.

 iptables -A INPUT -p tcp --bestemmingspoort 80 -m iprange --src-bereik 192.168.0.70-192.168.0.80 -j ACCEPTEREN 

13. Beperk het aantal parallelle verbindingen met een server per client-IP op Linux

Stap 1
We kunnen de connlimit-module gebruiken om deze beperkingen te definiëren, bijvoorbeeld om 5 ssh-verbindingen per client toe te staan, we voeren het volgende in:

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

VERGROTEN

Stap 2
HTTP-toegang beperken tot 10:

 iptables -p tcp --syn --dport 80 -m connlimit --connlimit-boven 10 --connlimit-mask 24 -j DROP 
Stap 3
We hebben het volgende aangegeven:
  • --connlimit-above 5: Komt overeen als het aantal bestaande verbindingen groter is dan 5.
  • --connlimit-mask 24: Dit zijn de groepshosts die de prefixlengte gebruiken. Voor IPv4 moet het een getal zijn tussen (inclusief) 0 en 32.

14. Beperk het aantal parallelle verbindingen met een server per client-IP op Linux

Stap 1
NAT (Network Address Translation) is een systeem om netwerkadressen te vertalen en zo de navigatie te vergemakkelijken. Om deze op te sommen gaan we het volgende uitvoeren:

 iptables -t nat -L -n -v 

VERGROTEN

Stap 2
Het is mogelijk om dit resultaat met hun respectieve regels als volgt te zien:

 iptables -t nat -v -L -n --regelnummer 

15. NAT-regels wissen op Linux


Stap 1
Als we de vastgestelde NAT-regels willen verwijderen, gaan we het volgende uitvoeren:
 iptables -t nat -v -L -n --regelnummer iptables -t nat -v -L PREROUTING -n --regelnummer iptables -t nat -v -L POSTROUTING -n --regelnummer
Stap 2
Om alle "PREROUTING"-regels te verwijderen, voeren we de volgende syntaxis uit:
 iptables -t nat -D PREROUTING {Regelnummer} 
Stap 3
Om alle "POSTROUTING"-regels te verwijderen, voeren we het volgende uit:
 iptables -t nat -D POSTROUTING {regelnummer} 

16. Pakkettellers resetten in Linux


Eerst moeten we het commando "iptables -L -n -v", dat we eerder zagen, uitvoeren om de tellers weer te geven.

Stap 1
Voer het volgende uit om deze tellers te wissen:

 iptables -Z 
Stap 2
Om de alleen-toegangstellers te resetten, voeren we uit:
 iptables -Z INPUT 

17. Valideer de firewall op Linux

Stap 1
Allereerst moeten we valideren of de poorten open zijn of niet met het volgende commando:

 netstat -tulpn 

VERGROTEN

Stap 2
Om een ​​specifieke poort te valideren, voeren we uit:

 netstat -tulpn | grep: 80 

VERGROTEN

Stap 3
Als de poort niet open is, voeren we uit:

 dienst httpd start 
Stap 4
Dan moeten we ervoor zorgen dat iptables toegang heeft via die poort:
 iptables -L INPUT -v -n | grep 80 

18. Sta loop-toegang toe met iptables op Linux

Loopback-toegang waarvan de toegang vanaf IP 127.0.0.1 is, is belangrijk en moet altijd actief blijven voor beheer- en netwerkbeheertaken. Om het in iptables in te schakelen, voert u gewoon het volgende uit.

 iptables -A INGANG -i lo -j ACCEPTEREN iptables -A OUTPUT -o lo -j ACCEPTEREN

19. Definieer nieuwe iptables-strings op Linux


Stap 1
Met iptables hebben we de mogelijkheid om onze eigen keten te definiëren en daarin aangepaste regels op te slaan. Om een ​​keten te definiëren, voeren we het volgende uit:
 iptables -N "Stringnaam" 
Stap 2
Vervolgens voeren we "iptables -L" uit om de iptables-strings weer te geven:

VERGROTEN

Stap 3
In het resultaat zullen we onze gecreëerde keten zien:

VERGROTEN

20. Wis iptables firewall-ketens of regels op Linux

Om deze verwijdering uit te voeren, moeten we het volgende uitvoeren:

 iptables -F 
Zoals we kunnen zien, is iptables een uitgebreide oplossing om verschillende beveiligingsaspecten in Linux-distributies centraal te beheren om verbeteringen te bereiken in alles wat met privacy te maken heeft.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave