iptables

Ubuntu Iptables Netwerkverkeer regelen met iptables?

Ubuntu Iptables Netwerkverkeer regelen met iptables?
"… EEN gebruikersruimte Unix-hulpprogramma dat systeembeheerders de mogelijkheid geeft om IP-pakketfilterregels te configureren die zijn geïmplementeerd door de netfiltermodule van de Kernel.” Iptables fungeren als een firewall met behulp van pakketfilterregels op basis van verschillende criteria, zoals IP-adres, poort en protocollen.

In deze handleiding wordt besproken hoe u iptables-regels op een Ubuntu-systeem kunt configureren en gebruiken om uw netwerk te beveiligen. Of je nu een beginnende Linux-gebruiker bent of een doorgewinterde systeembeheerder, uit deze gids zul je op de een of andere manier iets nuttigs leren over iptables.

Iptables zijn vooraf geïnstalleerd op Ubuntu en de meeste op Debian gebaseerde distributies. Ubuntu verpakt ook een GUFW-firewall, een grafisch alternatief dat u kunt gebruiken om met iptables te werken.

OPMERKING: Om iptables te gebruiken en te configureren, heb je sudo-rechten op je systeem nodig. U kunt meer leren over sudo in de volgende zelfstudie:.

Nu je weet wat Iptables is, gaan we er meteen in duiken!

Hoe iptables te gebruiken om IPv4-verkeer te beheren?

Om Iptables te gebruiken voor IPv4-netwerk- en verkeersbeheer, moet u het volgende begrijpen:

Het Iptables-commando

Iptables biedt een selectie van opties waarmee u uw iptables-regels kunt aanpassen en afstemmen. Laten we enkele van deze parameters bespreken en kijken wat ze doen.

OPMERKING: U kunt een set regels configureren die een specifieke subset beheren, ook wel iptables-ketens genoemd.

Iptables-parameters:

Voordat we beginnen met het maken en configureren van iptables-regels, moeten we eerst de basis van iptables begrijpen, zoals de algemene syntaxis en standaardargumenten.

Overweeg de onderstaande opdracht:

sudo iptables -I INPUT -s 192.168.0.24 -j DROP

Het bovenstaande commando vertelt de iptables om een ​​regel in de keten te maken. De regel verwijdert alle pakketten van het IP-adres 192.168.0.24.

Laten we de opdracht regel voor regel eens bekijken om het beter te begrijpen.

Iptables biedt een selectie van parameters die u kunt gebruiken om verschillende regels te configureren. De verschillende parameters die u kunt gebruiken om iptables-regels te configureren, zijn onder meer:

Iptables-regelparameter Omschrijving
-s -bron Geef de bron op, dit kan een adres, hostnaam of netwerknaam zijn.
-p -protocol Specificeert het verbindingsprotocol; bijvoorbeeld TCP, UDP, enz.
-d -bestemming Specificeert de bestemming, wat een adres, netwerknaam of hostnaam kan zijn.
-j -jump Stelt de actie in die iptables moet uitvoeren na het vinden van een pakket.
-o -out-interface Stelt de interface in via welke de iptable het pakket verzendt.
-i -in-interface Stelt de interface in die wordt gebruikt om netwerkpakketten tot stand te brengen.
-c -set-tellers Hiermee kan de beheerder de byte- en pakkettellers instellen voor een opgegeven regel.
-g -goto keten De parameter specificeert dat de verwerking bij terugkeer moet doorgaan in de door de gebruiker ingestelde keten.
-f -fragment Vertelt iptables om de regel alleen toe te passen op de tweede en volgende fragmenten van de gefragmenteerde pakketten.

Iptables-opties

De opdracht iptables ondersteunt een breed scala aan opties. Enkele veel voorkomende zijn:

Keuze Omschrijving
-A -toevoegen Voegt een regel toe aan het einde van een opgegeven keten
-D -verwijderen Verwijdert een regel uit de opgegeven keten
-F -flush Verwijdert alle regels, één voor één
-L -lijst Toont alle regels in de opgegeven keten
-ik -insert Voegt een regel in de opgegeven keten in (doorgegeven als een getal, als er geen getal is opgegeven; regel wordt bovenaan toegevoegd)
-C -check Query's voor een regelovereenkomst; vereiste in een gespecificeerde regel
-v -uitgebreide Geeft meer details weer bij gebruik met de parameter -L
-N -nieuwe-keten Voegt een nieuwe door de gebruiker gedefinieerde keten toe
-X -verwijder-keten Verwijdert een specifieke door de gebruiker gedefinieerde keten

Iptables-tabellen

De Linux-kernel heeft standaardtabellen die een reeks gerelateerde regels bevatten. Deze standaardtabellen hebben een set standaardketens, maar gebruikers kunnen de regels aanpassen door door de gebruiker gedefinieerde regels toe te voegen.

OPMERKING: De standaardtabellen zijn sterk afhankelijk van uw kernelconfiguratie en de geïnstalleerde modules.

Dit zijn de standaard iptables-tabellen:

1: De filtertabellen

De filtertabel is een standaardtabel die ketens bevat die worden gebruikt voor netwerkpakketfiltering. Enkele van de standaardketens in deze tabel zijn:

Ketting Omschrijving
Invoer Iptables gebruiken deze keten voor alle inkomende pakketten naar het systeem, i.e., pakketten die naar lokale netwerksockets gaan.
Uitgang: Iptables gebruiken de uitvoerketen voor lokaal gegenereerde pakketten, i.e., pakketten die uit het systeem gaan.
Vooruit Deze keten is wat de Iptables gebruiken voor pakketten die via het systeem worden gerouteerd of doorgestuurd.

2: De NAT-tabellen

NAT of Network Address Table is een routeringsapparaat dat wordt gebruikt om de bron- en doel-IP-adressen in een netwerkpakket te wijzigen. Het belangrijkste gebruik van de NAT-tabel is het verbinden van twee netwerken in een privéadresbereik met het openbare netwerk.

NAT is ontwikkeld om het maskeren van echte IP-adressen te ondersteunen, zodat privé-IP-adresbereiken het externe netwerk niet kunnen bereiken. Dit helpt voorkomen dat details over interne netwerken worden onthuld in openbare netwerken.

De NAT-tabel wordt gebruikt wanneer een pakket een nieuwe verbinding initieert.

Iptables hebben een standaardtabel voor NAT-adressering. Deze tafel heeft drie hoofdketens:

Ketting Omschrijving
VOORROUTING Staat de wijziging van pakketinformatie toe voordat deze in de INPUT-keten arriveert die wordt gebruikt voor inkomende pakketten
UITGANG Gereserveerd voor pakketten die lokaal zijn gemaakt, i.e., voordat netwerkroutering plaatsvindt
POSTROUTING Staat de wijziging van uitgaande pakketten toe - Pakketten die de OUTPUT-keten verlaten

Het onderstaande diagram toont een overzicht op hoog niveau van dit proces.

Gebruik de onderstaande opdracht om uw NAT-routeringstabellen te bekijken.

iptables -t nat -n -v -L

3: De mangeltafels

De mangeltafel wordt voornamelijk gebruikt voor speciale wijziging van pakketten. In eenvoudige bewoordingen wordt het gebruikt om de IP-headers van een netwerkpakket te wijzigen. Wijziging van pakketten kan bestaan ​​uit het wijzigen van een TTL-waarde van een pakket, het wijzigen van geldige netwerkhops voor een pakket, enz.

De tabel bevat de volgende standaardketens:

Ketting Omschrijving
VOORROUTING Gereserveerd voor inkomende pakketten
POSTROUTING Gebruikt voor uitgaande pakketten
INVOER Gebruikt voor pakketten die rechtstreeks de server binnenkomen
UITGANG Gebruikt voor lokale pakketten
Vooruit Gereserveerd voor pakketten die door het systeem worden gerouteerd

4: De onbewerkte tabellen

Het hoofddoel van de onbewerkte tabel is om uitzonderingen te configureren voor pakketten die niet bedoeld zijn om door het volgsysteem te worden verwerkt. De onbewerkte tabel stelt een NOTRACK-markering in op pakketten, waardoor de conntrack-functie wordt gevraagd het pakket te negeren.

Conntrack is een Linux-kernelnetwerkfunctie waarmee de Linux-kernel alle netwerkverbindingen kan volgen, waardoor de kernel pakketten kan identificeren die een netwerkstroom vormen.

De onbewerkte tafel heeft twee hoofdketens:

Ketting Omschrijving
VOORROUTING Gereserveerd voor pakketten die worden ontvangen door netwerkinterfaces
UITGANG Gereserveerd voor pakketten die zijn geïnitieerd door lokale processen

5: De beveiligingstabel

Het primaire gebruik van deze tabel is het instellen van een intern beveiligingsmechanisme voor Security Enhancement for Linux (SELinux) dat markeert op pakketten. Het beveiligingsteken kan per verbinding of pakket worden toegepast.

Het wordt gebruikt voor verplichte toegangsbeheerregels en is de tweede tabel die toegankelijk is na de filtertabel. Het biedt de volgende standaardketens:

Ketting Omschrijving
INVOER Gereserveerd voor inkomende pakketten naar het systeem
UITGANG Gebruikt voor lokaal gemaakte pakketten
VOORUIT Gebruikt voor pakketten die door het systeem worden gerouteerd

Laten we, na te hebben gekeken naar de standaard Iptables, een stap verder gaan en bespreken hoe we met iptables-regels kunnen werken.

Hoe te werken met iptables-regels?

Iptables-regels worden in oplopende volgorde toegepast. Dit betekent dat de eerste regel in een specifieke set eerst wordt toegepast, gevolgd door de tweede, dan de derde, enzovoort, tot de laatste.

Vanwege deze functie voorkomen iptables dat je regels in een set kunt toevoegen met behulp van de -A parameter; je moet de -I gebruiken, gevolgd door het nummer of door het leeg te maken om bovenaan de lijst toe te voegen.

Iptables weergeven

Om je iptables te bekijken, gebruik je het commando iptables -L -v voor IPv4 en ip6tables -L -v voor IPv6.

Regels invoegen

Om regels in een set in te voegen, moet u ze in de exacte volgorde plaatsen, met respect voor de regels die door dezelfde keten worden gebruikt. U kunt de lijst met uw iptables-regels bekijken met het commando zoals hierboven besproken:

sudo iptables -L -v

Als we bijvoorbeeld een regel willen invoegen die inkomende verbindingen naar poort 9001 via TCP toestaat, moeten we het regelnummer opgeven voor de INPUT-keten die voldoet aan de verkeersregels voor het web.

sudo iptables -I INPUT 1 -p TCP --dport 9001 -m status --state NIEUW -j ACCEPTEREN

Zodra je de huidige iptables hebt bekeken, zou je de nieuwe regel in de set moeten zien.

sudo iptables -L -v

Regels vervangen

De vervangfunctie werkt op dezelfde manier om in te voegen, maar het gebruikt de opdracht iptables -R. Om bijvoorbeeld de bovenstaande regel te wijzigen en poort 9001 in te stellen op weigeren, doen we het volgende:

sudo iptables -R INPUT 1 -p TCP --dport 9001 -m state --state NIEUW -j REJECT

Een regel verwijderen

Om een ​​regel te verwijderen, geven we het regelnummer door. Als we bijvoorbeeld de bovenstaande regel willen verwijderen, kunnen we specificeren als:

sudo iptables -D INPUT 1

In de meeste Linux-distributies zijn iptables leeg voor IPv4 en IPv6. Als u dus geen nieuwe regel heeft toegevoegd, krijgt u een uitvoer die vergelijkbaar is met die hieronder:. Dat is riskant omdat het betekent dat het systeem al het inkomende, uitgaande en gerouteerde verkeer toestaat.

Laten we eens kijken hoe we iptables kunnen configureren:

Hoe iptables te configureren?

Er zijn talloze manieren om iptables-regels te configureren. Deze sectie gebruikt voorbeelden om u te laten zien hoe u regels instelt met behulp van IP-adressen en poorten.

Verkeer via poorten blokkeren en toestaan

U kunt een specifieke poort gebruiken om al het verkeer op een netwerkinterface te blokkeren of toe te staan. Beschouw de volgende voorbeelden:

sudo iptables -A INPUT -j ACCEPT -p TCP --bestemmingspoort 1001 -i wlan0

De bovenstaande opdrachten staan ​​verkeer op poort 1001 TCP op de wlan0-interface toe.

sudo iptables -A INPUT -j DROP -p TCP --bestemmingspoort 1001 -i wlan0

Deze opdracht doet het tegenovergestelde van de bovenstaande opdracht, omdat het al het verkeer op poort 1001 op wlan0 . blokkeert.

Hier is een nauwkeurige inspectie van de opdracht:

OPMERKING: Iptables begrijpen de aliassen van de netwerkinterface niet. Dus in een systeem met meer dan één virtuele interface, moet u het bestemmingsadres handmatig en expliciet definiëren.

Bijvoorbeeld:

sudo iptables -A INPUT -j DROP -p TCP --bestemmingspoort 1001 -i wlan0 -d 192.168.0.24

IP-adressen op de witte en zwarte lijst zetten

U kunt firewallregels maken met iptables. Een voorbeeld is door al het verkeer te stoppen en alleen netwerkverkeer van expliciete IP-adressen toe te staan.

Voorbeeld:

iptables -A INPUT -m status --state GEVESTIGD, GERELATEERD -j ACCEPTEREN
iptables -A INPUT -i lo -m commentaar --comment "Lopenback-verbindingen toestaan" -j ACCEPT
iptables -A INPUT -p icmp -m commentaar --comment "Laat Ping werken zoals verwacht" -j

AANVAARDEN

iptables -A INGANG -s 192.168.0.1/24 -j ACCEPTEREN
iptables -A INGANG -s 192.168.0.0 -j ACCEPTEREN
iptables -P INPUT DROP
iptables -P VOORUIT DROP

De eerste regel stelt een regel in om alle bron-IP-adressen in de 192 . toe te staan.168.0.1/24 subnet. U kunt ook CIDR of individuele IP-adressen gebruiken. In de volgende opdracht stellen we de regel in om al het verkeer dat is verbonden met bestaande verbindingen toe te staan:. In de laatste opdrachten stellen we een beleid in voor INPUT en FORWARD om alles te laten vallen.

iptables gebruiken op IPv6

Iptables-opdracht werkt alleen op IPv4. Om iptables op IPv6 te gebruiken, moet je de opdracht ip6tables gebruiken. Ip6tables gebruikt onbewerkte, filter-, beveiligings- en mangeltabellen. De algemene syntaxis voor ip6tables is vergelijkbaar met iptables en ondersteunt ook bijpassende iptables-opties zoals toevoegen, verwijderen, enz.

Overweeg om de handleidingen van ip6tables te gebruiken voor meer informatie.

Voorbeeld van iptables-regelsets voor netwerkbeveiliging

Het creëren van geschikte firewallregels zal voornamelijk afhangen van de service die op een systeem draait en de poorten die in gebruik zijn. Hier zijn echter enkele basisregels voor netwerkconfiguratie die u kunt gebruiken om uw systeem te beveiligen:

1: Sta Loopback-interfaceverkeer toe en verwerp alle loopback die van andere interfaces komt

iptables -A INPUT -i lo -j ACCEPT (U kunt ook ip6tables gebruiken)
iptables -EEN INPUT ! -ik lo -s 127.0.0.0 -j REJECT (ip6tables ook van toepassing)

2: Alle ping-verzoeken weigeren

iptables -A INPUT -p icmp -m state --state NIEUW --icmp-type 8 -j REJECT

3: Sta SSH-verbindingen toe

iptables -A INPUT -p tcp --dport 22 -m status --status NIEUW -j ACCEPTEREN

Dit zijn voorbeeldopdrachten die u kunt gebruiken om uw systeem te beveiligen. De configuratie zal echter sterk afhangen van wat of wie u toegang wilt tot verschillende services.

VOORZICHTIGHEID: Als u IPv6 liever volledig uitschakelt, zorg er dan voor dat u de regel verwijdert, omdat dit het updateproces vertraagt:

prioriteit ::ffff:0:0/96 100 gevonden in /etc/gai.conf .

Dat komt omdat de APT-pakketbeheerder het spiegeldomein in IPv6 oplost vanwege apt-get update.

Hoe iptables-regels te implementeren?

Om uw iptables op Ubuntu of andere op Debian gebaseerde systemen te implementeren, begint u met het maken van twee bestanden, ip4 en ip6, voor hun respectievelijke IP-adressen.

Voeg in beide bestanden de regels toe die u wilt afdwingen in de bijbehorende bestanden: IPv4-regels voor ip4-bestand en IPv6-regels voor ip6-bestand.

Vervolgens moeten we de regels importeren met behulp van de opdracht:

sudo iptables-restore < /tmp/ip4 (replace filename for IPv6)

Vervolgens kunt u controleren of de regels van toepassing zijn met de opdracht:

sudo iptables -L -v

Een snelle iptables-persistente gids

Ubuntu en veelgebruikte op Debian gebaseerde distributies worden geleverd met een iptables-persistent pakket waarmee u uw firewallregels eenvoudig kunt toepassen bij het opnieuw opstarten. Het pakket biedt bestanden die u kunt gebruiken om regels in te stellen voor IPv4 of IPv6 en die automatisch kunnen worden toegepast bij het opstarten.

U kunt ook firewallregels gebruiken met UFW of GUFW. Overweeg de volgende tutorial om te leren hoe u UFW kunt gebruiken.

Hoe iptables-persistent te installeren?

Zorg ervoor dat iptables-persistent op uw systeem is geïnstalleerd. Gebruik dpkg om te controleren of u het pakket hebt geïnstalleerd.

Zo niet, gebruik dan de volgende opdracht:

sudo apt-get install iptables-persistent

U wordt twee keer gevraagd om zowel uw huidige IPv4- als IPv6-regels op te slaan. Klik op Ja om beide regels op te slaan.

Klik op ja om IPv6 op te slaan.

Nadat de installatie is voltooid, controleert u of u de submap iptables hebt, zoals weergegeven in de onderstaande afbeelding:.

Nu kunt u de regels gebruiken.v4 en regels.v6 om iptables-regels toe te voegen, en ze worden automatisch toegepast door iptables-persistent. De bestanden zijn eenvoudige tekstbestanden die u gemakkelijk kunt bewerken met een teksteditor naar keuze.

Conclusie

In deze tutorial hebben we de basis van iptables behandeld. Beginnen met werken met iptables, basiscommando's, standaard iptables-tabellen en parameters.

Van wat je hebt geleerd, zou je in staat moeten zijn om iptables te gebruiken om firewallregels te maken die je systeem helpen beveiligen.

Installeer de nieuwste Dolphin Emulator voor Gamecube & Wii op Linux
Met de Dolphin Emulator kun je de door jou gekozen Gamecube- en Wii-spellen spelen op Linux Personal Computers (pc). Omdat het een vrij beschikbare e...
Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...
Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...