Terug naar blog

Iptables-firewallregels weergeven en verwijderen

Iptables-firewallregels weergeven en verwijderen

Iptables is de primaire firewall die standaard met de meeste Linux-distributies wordt meegeleverd. Het is verantwoordelijk voor het beheer van de netwerkbeveiliging. Het werkt door de datapakketten te vergelijken met een set regels, waarbij het systeem de opdracht krijgt om een verbinding te accepteren, te weigeren of door te sturen volgens de regels. In deze handleiding laten we u zien hoe u regels kunt weergeven en verwijderen, pakket- en bytellers kunt controleren en wissen, en chains kunt leegmaken. Klaar? Laten we beginnen!

Vereisten

Voordat we in de handleiding duiken, willen we eerst iets verduidelijken. Alle tips en trucs die in deze gids worden gedemonstreerd, worden uitgevoerd op een afzonderlijke virtuele machine. Het is een goed idee dat u dat ook doet, omdat dit elke mogelijkheid uitsluit dat uw systeem een complete puinhoop wordt. Pas nadat u deze processen onder de knie hebt, moet u proberen ze in praktijksituaties toe te passen.

Voor deze handleiding gebruiken we Ubuntu om alle stappen te demonstreren. Ze zouden echter op een vergelijkbare manier moeten werken, ongeacht de distributie.

Regels weergeven

Regels weergeven op specificatie

Laten we eerst alle actieve regels bekijken op basis van de specificatie. Voer de volgende opdracht uit:

iptables list

Als u al eerder met het maken van iptables-regels hebt gewerkt, is de gelijkenis u misschien opgevallen. De uitvoer lijkt op de opdrachten die zijn gebruikt om ze te maken, behalve het gedeelte 'iptables'. Ze delen ook een vergelijkbare structuur met de configuratiebestanden voor iptables-regels.

Specifieke chain weergeven

Laten we iets preciezer proberen. In plaats van alle iptables-regels te rapporteren, kunt u iptables vragen om de regels van een specifieke chain te rapporteren. Bijvoorbeeld TCP, INPUT, OUTPUT, enz. Geef hiervoor de naam van de chain op na de vlag '-S':

list specific chain

Regels als tabellen weergeven

De tabelweergave is handig bij het vergelijken van verschillende regels. Gebruik de vlag '-L' om iptables te vertellen alle actieve regels in een tabelformaat te rapporteren:

list rules as table iptables

De uitvoer bevat alle huidige regels gesorteerd op chain. Net als in de vorige sectie is het ook mogelijk om de lijstuitvoer te filteren op een specifieke chain zoals INPUT, TCP en OUTPUT, enz. Geef hiervoor de chain op na de vlag '-L':

filter by chain

Laten we de uitvoer een klein beetje ontleden. In ons geval zal de uitvoer vanwege de regels een beetje rommelig overkomen. De eerste regel van de uitvoer declareert de chain-naam (INPUT) met het standaardbeleid (DROP). De volgende regel specificeert de koppen van de tabelkolommen. De rest zijn de regels van de chain. Laten we eens kijken wat de koppen aangeven:

  • target: Als een pakket overeenkomt met de regel, definieert deze sectie welke actie moet worden uitgevoerd. Dit kan het accepteren van het pakket zijn, het weggooien (drop), loggen of het doorsturen naar een andere chain.
  • prot: Definieert het protocol, bijvoorbeeld udp, tcp, icmp of all.
  • opt: Deze kolom geeft IP-opties aan. Deze wordt zelden gebruikt.
  • source: Oorsprong van het pakket (IP-adres of subnet). De waarde kan specifiek zijn of overal ('anywhere').
  • destination: Bestemming van het pakket (IP-adres of subnet). De waarde kan specifiek zijn of overal ('anywhere').

Als het u is opgevallen, is de laatste kolom niet gelabeld. Dat komt omdat deze wordt gebruikt om de opties van een regel aan te geven. Deze bevat alle delen van de regel die niet in de vorige velden pasten. Het kan van alles bevatten, van de bron-/bestemmingspoorten tot de verbindingsstatus van het pakket, enz.

Pakketaantallen en totale grootte

Pakket- en bytellers wissen

Wanneer we de iptables-regels weergeven, kunnen we ook het aantal pakketten controleren, en de totale grootte van de pakketten in bytes die overeenkwamen met elke specifieke regel. Het is een nuttige statistiek wanneer u een globaal beeld wilt hebben van welke regels overeenkomen met pakketten.

In dit voorbeeld gebruiken we de INPUT-chain. Voeg deze keer de vlag '-v' toe, wat staat voor verbose-modus:

package and byte counters iptables

U zult merken dat de tabeluitvoer nu twee extra velden bevat: pkts en bytes.

Pakketaantallen en totale grootte resetten

In sommige situaties wilt u misschien de tellers die we eerder hebben gedemonstreerd, resetten. Als het systeem opnieuw wordt opgestart, worden de tellers automatisch gewist. U kunt een reset ook handmatig forceren. We gebruiken de vlag “-Z” om de pakkettellingen en de totale grootte te resetten:

Reset packet counts and aggregate size

Houd er rekening mee dat deze opdracht de tellers van alle chains zal resetten. Net als bij andere opdrachten is het mogelijk om de teller voor specifieke chains te resetten. De volgende opdracht reset bijvoorbeeld de tellers voor de INPUT-chain:

reset particular counter

Het is mogelijk om de actie voor het resetten van de teller nauwkeuriger te maken. U kunt de teller voor een specifieke regel onder een specifieke chain resetten. Voeg hiervoor het regelnummer toe onder de chain-naam:

reset specific rule

Regels verwijderen

Regels verwijderen op specificatie

Er zijn meerdere manieren om iptables-regels te verwijderen. De eerste methode om regels te verwijderen is via regelspecificatie. Voor het verwijderen gebruiken we de vlag “-D” gevolgd door de regelspecificatie:

Delete rules by specification

Als u al eerder een iptables-regel heeft toegevoegd, zult u de overeenkomst opmerken. Het enige dat hier is veranderd, is de vlag “-D” in plaats van de vlag “-A”.

Regels verwijderen op chain en nummer

Het verwijderen van regels op basis van hun specificatie vereist wat meer inspanning, toch? Wat als we ze konden verwijderen zonder de regelspecificatie te hoeven onthouden? Laten we de regels verwijderen op basis van hun chain en nummer! Vergeleken met de eerste methode (verwijderen op specificatie) is deze relatief eenvoudiger, omdat u niet de hele specificatie bij de hand hoeft te hebben.

Deze methode vereist de chain en het regelnummer van de doelregel. Waar halen we het regelnummer vandaan? Voer de volgende opdracht uit om dat te bepalen:

Delete rules by chain and number - get line number

U krijgt een grote uitvoer met alle regels en hun regelnummers. Om de uitvoer te beperken, gebruikt u de chain-naam na de vlag “-L”:

Delete rules by chain and number - filter

In de uitvoer ziet u de extra kolom num. Deze geeft het regelnummer voor elke regel aan. Zodra we het doelnummer hebben bepaald, voert u de verwijdering uit:

delete iptables rule

Chains leegmaken

Wat is het flushen van een chain in het geval van iptables? Het is het proces van het verwijderen van alle regels onder een bepaalde chain. Als u massaal regels moet verwijderen, kunt u deze methode gebruiken. Voordat u een chain leegmaakt, raden we u ten zeerste aan een back-up te maken van de bestaande regels met behulp van iptables-save. Dit is een ingebouwde iptables-tool die alle huidige chains en regels uitvoert. De uitvoer kan worden geëxporteerd naar een tekstbestand:

iptables rules export

Een enkele chain leegmaken

Laten we eens kijken hoe u een chain leegmaakt. Gebruik de vlag “-F” gevolgd door de doel-chain:

flush a single chain

Alle chains leegmaken

Voordat u alle chains leegmaakt, moet u ervoor zorgen dat u begrijpt wat u doet. Hiermee worden alle regels voor de iptables-firewall verwijderd. Zorg ervoor dat u vooraf een back-up van de iptables-regels maakt.

Klaar? Maak alle iptables-chains leeg door de volgende opdracht uit te voeren:

flush all changes

Regels leegmaken, chains verwijderen en alles accepteren

Het uitvoeren van de stappen die in deze sectie worden beschreven, zal de firewall effectief uitschakelen, waardoor onbeperkt netwerkverkeer mogelijk is. Net als in de vorige sectie raden we aan om een iptables-back-up te hebben voordat u verdergaat. Eerst wijzigen we het standaardbeleid van elk van de ingebouwde chains naar ACCEPT. Dit is om ervoor te zorgen dat iptables u niet buitensluit van uw server via SSH:

Flush rules, delete chains and accept all

Nu de nat- en mangle-tabellen leegmaken:

 flush nat and mangle tables

 mangle tables

Maak alle chains leeg en verwijder alle niet-standaard chains:

Flush all the chains

 delete all the non-default chains

Laten we vervolgens het resultaat bekijken:

iptables result

Tot slot

Iptables is een krachtige firewall. Hopelijk was deze handleiding nuttig om te leren hoe u iptables-firewallregels kunt weergeven en verwijderen. En vergeet niet om ermee te oefenen voordat u ze in de praktijk toepast.

Veel computerplezier!

author

Akshay Nagpal

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.