25+ vanligste iptables-kommandoer med eksempler

Hvis du bruker Linux, har du mange alternativer for å beskytte enheten din. Den leveres med iptables, et kommandolinjebrannmurverktøy som tilbyr fleksibilitet og utmerket beskyttelse.

Men siden det er et kommandolinjeverktøy, krever det en liten læringskurve.

Så hvis du er systemadministrator eller Linux-lærer, er du på rett sted når vi går gjennom de vanlige iptables-kommandoene med eksempler.

Hva er iptables?

iptables er en programvarebasert Linux innebygd brannmur. Det lar Linux-brukere lage eller definere retningslinjer som direkte og indirekte påvirker internetttrafikken.

Dette betyr at du kan bruke iptables til å lage regler som blokkerer eller tillater trafikk via porten, kildens IP-adresse, nettverksgrensesnitt og mer.

Når du har definert reglene, må all trafikk gå gjennom den. Så for eksempel, for hver ny tilkobling, vil iptables se etter forhåndsdefinerte regler som samsvarer med tilkoblingen. Hvis den gjør det, bruker den regelen på tilkoblingen. Men hvis det ikke er noen tilknyttede gjeldende regler, implementerer den standardregelen.

For å bruke iptables, må du bruke følgende kommando.

$ iptables -L -n -v 

Her er parametrene som nedenfor:

  • -L er for å liste opp alle regler.
  • -n gjør at den numeriske utgangen gir raskere ytelse.
  • -v for å vise utdata i detaljert format.

Når du kjører iptables-kommandoen uten noen parameter, vil den returnere følgende utdata:

iptables v1.8.7 (nf_tables): no command specified

Try `iptables -h' or 'iptables --help' for more information.

Du må installere den hvis den får en feil, for eksempel kommandoen «iptables» ikke funnet.

For å installere iptables i Linux-distribusjonen din, kjør følgende kommando.

$ sudo apt-get install iptables

Den vil returnere følgende siden den allerede er forhåndsinstallert på min Linux-distribusjon.

#output
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
iptables is already the newest version (1.8.7-1ubuntu5).
iptables set to manually installed.
0 upgraded, 0 newly installed, 0 to remove, and 35 not upgraded.

Hva er brannmur?

Brannmurer er den mest grunnleggende formen for å beskytte systemer, nettverk og personlige datamaskiner. Det kan være maskinvare- eller programvarebasert, og stole på regler for å fungere ordentlig.

De fleste brannmurer er svært tilpassbare, slik at du kan opprette eller redigere regler. For eksempel, ettersom pakker fra internett bruker porter for å komme inn i et system, kan portbasert skanning hjelpe deg med å filtrere dem ut. Bortsett fra det kan du også tillate eller blokkere tjenester etter kilde-IP-adresse eller nettverksgrensesnitt.

Hvis du bruker Linux, får du tilgang til innebygde iptables. Du kan imidlertid også bruke en frittstående Linux-brannmur for å hjelpe deg i prosessen med å beskytte systemet ditt.

Hvorfor trenger du iptables for å konfigurere brannmuren?

Men hvorfor skal du bruke iptables i det hele tatt? Tross alt er det gode alternative kommandolinjebrannmurverktøy som ufw og firewalld. Du kan også bruke frittstående Linux-brannmurer som er enkle å bruke og tilbyr flere funksjoner.

Så, hva gjør iptables så tiltalende når du konfigurerer en brannmur? Grunnene til å bruke det inkluderer:

  • Den gir utmerket fleksibilitet ut av esken. Du kan angi regler på pakkenivå.
  • Det er relativt enkelt å bruke når du først vet hvordan det fungerer.
  • Blokker uønsket trafikk på en enkel måte.
  • Omdiriger pakker til en alternativ IP-adresse.
  • Beskytt systemene dine mot Denial of Service (DoS)-angrep.

Og mye mer!

Forstå iptables-arkitektur og dens forhold til Netfilter

For å forstå iptables riktig, må vi lære om arkitekturen deres. Først vil det gi oss en klar forståelse av forskjellige iptables-komponenter. Så, når vi vet om hver av dem, kan vi bruke dem til å skrive brannmurregler.

Og når vi snakker om iptables, kommer Netfilter også inn i bildet. Du kan tenke på «Netfilter» som en storebror til iptables. Den bygger på toppen av iptables og tilbyr et bedre funksjonssett for å administrere brannmuren din. Imidlertid bruker den iptables som et av virkemidlene for å oppnå utmerkede brannmuregenskaper.

Iptables er et kommandolinjegrensesnitt til Netfilter-kroker på kjernenivå. Disse krokene kan samhandle med Linux-nettverksstakken, noe som påvirker pakker på det dypeste nivået.

Så, hvordan ser iptables-arkitekturen ut:

Tabeller

iptables-arkitektur starter med tabeller. Disse tabellene tar seg av regelorganisering. Og hver tabell er klassifisert basert på beslutningstypen de tar. Enkelt sagt forenkler en tabell den generelle pakkebehandlingen ved å legge ved en spesifikk måte å behandle pakker på.

De forskjellige bordene som tilbys av iptables inkluderer:

  • Filtertabell: Angir beslutningstype for pakkefiltrering. Enkelt sagt avgjør den om en pakke skal nå målet eller ikke.
  • NAT-tabell: Spesifiserer beslutningstype for adresseoversettelse. Her bestemmes rutingen av pakkene basert på NAT-nettverkene. For eksempel, hvis en pakke ikke kan få tilgang til NAT, hopper den over og prøver å søke etter et ikke-NAT-nettverk.
  • Mangletabell: Håndterer pakkens spesielle behandlingsbehov. Du kan for eksempel konfigurere den til å endre pakkens overskriftsinformasjon, for eksempel TTL-verdier.
  • Råtabell: Råtabellen lar deg jobbe flittig med det stateful aspektet av iptables-brannmuren. Ved å bruke tabellen kan du rute pakker basert på deres «tilstand» før Linux-kjernen begynner å spore dens tilstand. Den brukes først og fremst til å merke pakkene, enten tilkoblingssporingssystemet håndterer dem eller ikke. Hvis en pakke ikke spores, settes den til NOTRACK-mål.

Kjeder

Og så har vi «kjeder» innenfor «tabeller».

Disse kjedene håndterer dyp pakkeinspeksjon på forskjellige stadier av reisen. Du kan for eksempel inspisere dem når den når en port eller et nettverksgrensesnitt. På denne måten kan en beslutning tas før pakken frigis til systemets prosess.

  Slik blir du med i en gruppe i Line Chat-appen

Akkurat som bord får du også forskjellige kjeder. Disse inkluderer:

  • PREROUTING-kjede: Her håndterer regler nettopp ankomne pakker i nettverksgrensesnittet.
  • INPUT-kjede: Reglene nevnt i INPUT-kjeden håndterer innkommende tilkoblingsatferd. Når de er ferdige, blir de gitt til den lokale prosessen.
  • OUTPUT-kjede: OUTPUT-kjeden omhandler pakker som prosesser produserer.
  • FORWARD-kjeden: FORWARD-kjeden administrerer pakker som ikke er ment for lokale systemer. Det er en bærer for andre destinerte systemer, for eksempel en ruter.
  • POSTROUTING-kjeden: Til slutt har vi POSTROUTING-kjeden, som tar for seg pakkene som skal ut gjennom nettverksgrensesnittet.

Ikke alle kjeder er tilgjengelige i hver tabell. For eksempel er FORWARD-kjeden bare tilgjengelig i mangle-, filter- og sikkerhetstabellen. På samme måte er POSTROUTING-kjeden tilgjengelig på mangle og nat (SNAT). Bare OUTPUT-kjeden er tilgjengelig i alle tabellene.

Mål

Nå har vi et «mål». Når en pakke kommer, beveger den seg gjennom kjeder for å se hvilken regelbeskrivelse som passer best. Hvis den passer til beskrivelsen av en regel, utfører den den tilknyttede handlingen basert på den og flytter den deretter til målet – forsegler pakkens skjebne.

I mange tilfeller vil en pakke ikke passe til noen beskrivelse eller regelsett. Og det er her standardpolicyen, et mål, kommer inn.

Målene kan være ACCEPT, DROP og REJECT. Dette er avsluttende mål som avgjør pakkens skjebne.

  • GODKJENNER: Godtar pakkene.
  • DROP: Dropper pakken, noe som gjør den ikke i stand for avsenderen å finne ut om systemet er til stede eller ikke.
  • AVVIS: Avviser pakken.

Det er også ikke-avsluttende mål som hovedsakelig brukes til å lagre informasjon om pakken.

Mest vanlige iptables-kommandoer med eksempler

Før du hopper og begynner å utføre iptables-kommandoen, sørg for:

  • Du har administrativ tilgang til å kjøre kommandoene. Hvis kommandoen mislykkes på grunn av administrative rettigheter, kjør kommandoen på nytt med sudo-kommandoen foran den.
  • Artikkelen er ikke en veiledning om hvordan du konfigurerer iptables på Ubuntu.
  • Vi bruker iptables-kommandoen som fungerer med IPv4. Hvis du har tenkt å jobbe med IPv6, må du bruke ip6tables i stedet.

Sjekker iptables-statusen

For å sjekke gjeldende iptables-status, må du kjøre følgende kommando.

$ iptables -L -n -v
#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Ovennevnte utgang inneholder mye informasjon. Det antyder imidlertid også en inaktiv brannmur. Det er fordi, for øyeblikket, er alle kjeder satt til GODKJENNING og har ingen regler.

Du må begynne å legge til regler for å aktivere brannmuren.

Legge til regler i kjeden

Når du legger til en regel, legges den alltid til i kjeden. Derfor må du bruke alternativet -A (Legg til). Syntaksen for det er som nedenfor:

$ sudo iptables - A

Men når du kjører den, returnerer den følgende:

iptables v1.8.7 (nf_tables): option "-A" requires an argument

Try `iptables -h' or 'iptables --help' for more information.

Argumentene du kan bruke for å legge til regler er:

  • – i: Det står for grensesnittet. Her kan du nevne grensesnittet du legger til regler for. Det kan være ppp0, eth0, og så videre.
  • – p: Det står for protokoll. Her nevner du regelen for å bruke en nettverksprotokoll for å filtrere pakkere. Du kan for eksempel si ICMP, TCP, UDP osv. Hvis du vil at regelen skal fungere på tvers av alle protokoller, nevner du «alle» som argumentverdien.
  • – s: Deretter kommer kildeargumentet, som nevner kilden til trafikken (som IP-adresse eller vertsnavn)
  • – dport: dporten står for destinasjonsporten, hvor du nevner portnummeret som pakken er destinert til.
  • – j: Til slutt har vi et TARGET-argument der du kan nevne TARGET-navnet, ACCEPT, DROP eller RETURN

Det er også viktig å skrive kommandoen i følgende rekkefølge:

$ sudo iptables -A <chain-name> -i <interface-name> - p <protocool-name> - s <source> --dport <port no.> -j <target>

Lagrer endringer i iptables

Når du har lagt til en regel, kan du lagre den med kommandoen iptables -save.

$ sudo iptables -save

Utgangen er som følger:

[email protected]:~$ sudo iptables-save

# Generated by iptables-save v1.8.7 on Sun May 14 13:37:34 2023

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 392 -j REJECT --reject-with icmp-port-unreachable

-A OUTPUT -o lo -j ACCEPT

COMMIT

# Completed on Sun May 14 13:37:34 2023

Vedvarende regler manuelt

Som standard lagrer ikke iptables reglene. Så hvis du starter datamaskinen på nytt, vil den fjerne alle reglene. Du må bruke følgende kommandoer for å sikre at du ikke trenger å rekonfigurere iptables.

For IPv4-regler, skriv kommandoen:

$ sudo iptables-save > /etc/iptables/rules.v4

Og for IPv6-regler, skriv kommandoen:

$ sudo iptables-save > /etc/iptables/rules.v6

Vedvarende regler automatisk

For å få regler til å vedvare selv etter en omstart, og det også automatisk, må du installere iptables-presistent-pakken.

For å gjøre det, kjør følgende kommando.

$ sudo apt-get install iptables-persistent

Det vil åpne opp følgende vindu. Trykk enter på .

Når vi jobber med IPv4-tabellen, vil den bare vise IPv4-regler. Hvis du jobber med IPv6, vil det vise det relevante vinduet.

Merk: Pakken laster bare de lagrede iptables-reglene dine. Så hver gang du endrer iptables, må du lagre den med kommandoen iptables -save.

Regler for omlasting etter omstart

Når reglene er lagret, må du gjenopprette dem med følgende kommando.

$ sudo iptables-restore < /etc/iptables/rules.v4

Og

$ sudo iptables-restore < /etc/iptables/rules.v6

Aktiverer trafikk på Localhost / Aktiverer Loopback

For å aktivere trafikk på Localhost, bruk følgende kommando:

$ sudo iptables -A INPUT -i lo -j ACCEPT

Her står lo for loopback-grensesnittet for all lokal vertskommunikasjon.

På samme måte kan vi tillate at pakker går gjennom loopback-grensesnittet.

$ sudo iptables -A OUTPUT -o lo -j ACCEPT

For å sjekke hvordan det endret reglene, kjør iptables -L -n -V

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Aktiverer trafikk på bestemte havner

Du kan aktivere trafikk for å GODKJENNE eller AVVISE på bestemte porter.

  Er QIE et ord i Scrabble?

For eksempel er SSL-, HTTP- og SSH-porter viktige for normal funksjon av appene dine. Du kan legge til regler i ACCEPT-pakken gjennom portnumrene for å sikre at de fungerer etter hensikten.

For SSL, kjør følgende kommando.

$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

For HTTPS, kjør følgende kommando.

$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

For å tillate all HTTPS-trafikk ved eth0-grensesnittet.

$ iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

For SSH, kjør følgende kommando.

$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Og for å akseptere ALL innkommende SSH-trafikk på eth0-grensesnittet, kjør følgende:

$ iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Et annet eksempel kan være å aktivere porttrafikk på en bestemt port for den tilpassede appen din. La oss si port 233.

For å åpne tilkoblinger på den porten, kjør.

$ sudo iptables -A INPUT -p tcp --dport 233 -j ACCEPT

På samme måte kan du også deaktivere tilkoblinger på en bestemt port ved å bruke REJECT target-alternativet.

La oss blokkere alle tilkoblinger på port 392.

$ sudo iptables -A INPUT -p tcp --dport 392 -j REJECT

For å sjekke, kjør kommandoen iptables -L -n -v.

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:233

    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

 0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

Slett eksisterende regler

For å slette eksisterende regler, må du kjøre følgende kommando.

$ iptables -F

eller

$ iptables --flush

Merk: Hvis du ikke har lagret reglene dine, er de tapt for alltid og kan ikke gjenopprettes med iptables -restore

Slett regler med linjenumre

For å slette en bestemt regel, må du få listen over regler med tall.

$ sudo iptables -L --line-numbers
#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh

2    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http

3    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

4    ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:233

5    REJECT     tcp  --  anywhere             anywhere             tcp dpt:392 reject-with icmp-port-unreachable

Kjør følgende kommando hvis du ønsker å fjerne regel nummer 4 for INPUT-kjeden.

$ sudo iptables -D INPUT 4

Og hvis du igjen kjører iptables -n -v -L kommandoen.

#output

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

 pkts bytes target     prot opt in     out     source               destination

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

    0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Vis bare INPUT- eller OUTPUT-kjederegler

For å vise bare INPUT-kjederegler, kjør følgende kommando.

$ sudo iptables -L INPUT -n -v --line-numbers
#ouput

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)

num   pkts bytes target     prot opt in     out     source               destination

1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443

4        0     0 REJECT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

På samme måte, hvis du bare vil se OUTPUT-kjederegler, kjør:

$ sudo iptables -L OUTPUT -n -v --line-numbers
#output

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)

num   pkts bytes target     prot opt in     out     source               destination

1        0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0

Start/stopp/start brannmuren på nytt

Hvis du bruker RHEL/Fedora Linux eller CentOS, kan du starte/stoppe eller starte brannmuren på nytt ved å kjøre kommandoene.

$ service iptables stop

$ service iptables start

$ service iptables restart

Du kan også bruke systemctl-kommandoen.

  8 beste 7 dager å dø Serverhosting for alle

Det vil imidlertid ikke fungere på Ubuntu.

Sett inn regler på et bestemt sted

Hvis du vil sette inn regler på en bestemt posisjon, må du bruke følgende kommandoer.

Først, sjekk reglene.

$ sudo iptables -L INPUT -n --line-numbers
#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443

4    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Kjør følgende kommando hvis du vil sette inn regler mellom 2 og 3.

$ sudo iptables -I INPUT 3 -s 252.32.1.2 -j DROP

Sjekk nå de oppdaterte reglene.

#output

Chain INPUT (policy ACCEPT)

num  target     prot opt source               destination

1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22

2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80

3    DROP       all  --  252.32.1.2           0.0.0.0/0

4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443

5    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:392 reject-with icmp-port-unreachable

Blokker innkommende trafikk, men tillat utgående trafikk

Du må skrive inn følgende kommando for å blokkere all innkommende trafikk.

$ iptables -P INPUT DROP

$ iptables -P FORWARD DROP

$ iptables -P OUTPUT ACCEPT

$ iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT

$ iptables -L -v -n

På denne måten kan du pinge eller laste ned pakker, men blokkere all ukjent innkommende trafikk.

Blokker en bestemt IP-adresse

For å blokkere en spesifikk IP-adresse, kjør følgende kommando.

$ iptables -A INPUT -s 14.23.59.9 -J DROP

Du kan også definere en variabel for å lagre den blokkerte IP-adressen og deretter kjøre kommandoen.

BLOCK_THE_IP = “a.b.c.d”

Og kjør deretter:

$ iptables -A INPUT -s “BLOCK_THE_IP” -j DROP

Merk: Endre «abcd» til din foretrukne IP-adresse.

Tillater systempinging utenfra

Du kan få eksterne brukere til å pinge serveren din for å gjøre nettverket ditt synlig.

$ sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

$ sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

Tillater internt nettverk å snakke med eksternt nettverk

Kjør følgende kommando for å tillate det interne nettverket (la oss si eth0) til det eksterne nettverket (la oss si eth1).

$ sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

Tillat utgående DNS

For å tillate DNS-tilkoblinger til serveren din, kjør følgende kommando.

$ iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT

$ iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

Tillat Rsycn fra et spesifikt nettverk

Hvis du bruker Rsync-kommandoen og vil aktivere den over et spesifikt nettverk, kjør følgende kommando.

iptables -A INPUT -i eth0 -p tcp -s 192.168.101.0/24 --dport 873 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -o eth0 -p tcp --sport 873 -m state --state ESTABLISHED -j ACCEPT

Blokker port

Kjør følgende kommando for å blokkere en bestemt port og eventuelle innkommende forespørsler.

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

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

Blokker utgående trafikk til en bestemt IP-adresse

Du kan blokkere trafikk til enhver IP-adresse ved å kjøre følgende kommando.

$ host -t a tipsbilk.net.com

#produksjon

tipsbilk.net.com har adressen 172.66.40.93

For å blokkere utgående trafikk til den bestemte IP-adressen, kjør følgende kommando.

iptables -A OUTPUT -d 72.66.40.93 -j DROP

På samme måte kan du også blokkere sosiale medieplattformer som Instagram, Twitter og Facebook.

Finn IP-adressen til sosiale medier ved å kjøre følgende kommando:

$ host -t a social-media-web-adrress.com

For eksempel, for Instagram, vil det være:

$ host -t a www.instagram.com

Nå må du finne CIDR for IP-adressen til den aktuelle sosiale medieplattformen.

$ whois 185.89.219.11 | grep CIDR

Merk: Du må kanskje installere whois-pakken ved å kjøre sudo apt-get install whois

Skriv inn CIDR-verdien på følgende måte:

$ iptables - A OUTPUT -p tcp -d CIDR-value -j DROP

Merk: Sørg for å endre CIDR-verdien tilsvarende.

Tillat eller blokker ICMP Ping-forespørsel

For å tillate eller blokkere ICMP-pingforespørsler, kjør følgende kommandoer.

$ iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

$ iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP

Åpne et bestemt utvalg av havner

For å åpne en rekke porter, kjør følgende kommando.

$ iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8933: 8500 -j ACCEPT

List opp NAT-regler

For å liste NAT-regler, kjør følgende kommando:

$ sudo iptables -t nat -L -n -v

Eller

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

Tilbakestill pakketellere

For å sjekke gjeldende iptables-teller:

$ sudo iptables -L -n -v

For å tilbakestille eller slette tellerne, kjør følgende:

$ sudo iptables -Z

$ sudo iptables -L -n -v

For kun å tilbakestille INPUT-kjedetelleren, kjør:

$ iptables -Z INPUT

For å tilbakestille en bestemt regelteller, kjør følgende:

$ iptables -z INPUT RULE-NUMBER

Sørg for å endre REGELNUMMER til den bestemte regelen.

Siste ord

iptables er et kraftig brannmur-kommandolinjeverktøy. Du kan konfigurere nesten alt relatert til nettverksressurser, pakker, grensesnitt og spesielle scenarier.

Dessuten tilbyr iptables mange alternativer. Sjekk ut hovedsiden ved å bruke man-kommandoen for å få hele bildet.

$ man iptables
$ man ip6tables

Deretter kan du sjekke ut en nettverksbrannmur og hvordan den hjelper til med å stoppe angrep.