25+ vanligaste iptables-kommandon med exempel

Om du använder Linux har du många alternativ för att skydda din enhet. Den levereras med iptables, ett kommandoradsbrandväggsverktyg som erbjuder flexibilitet och utmärkt skydd.

Men eftersom det är ett kommandoradsverktyg kräver det en liten inlärningskurva.

Så om du är en systemadministratör eller en Linux-lärare är du på rätt plats när vi går igenom de vanliga iptables-kommandona med exempel.

Vad är iptables?

iptables är en mjukvarubaserad Linux inbyggd brandvägg. Det tillåter Linux-användare att skapa eller definiera policyer som direkt och indirekt påverkar internettrafiken.

Detta innebär att du kan använda iptables för att skapa regler som blockerar eller tillåter trafik via porten, käll-IP-adress, nätverksgränssnitt och mer.

När du väl har definierat reglerna måste all trafik gå igenom den. Så, till exempel, för varje ny anslutning kommer iptables att leta efter eventuella fördefinierade regler som matchar anslutningen. Om den gör det kommer den att tillämpa regeln på anslutningen. Men om det inte finns några associerade tillämpliga regler kommer den att implementera standardregeln.

För att använda iptables måste du använda följande kommando.

$ iptables -L -n -v 

Här är parametrarna som nedan:

  • -L är för att lista alla regler.
  • -n gör att den numeriska utgången erbjuder snabbare prestanda.
  • -v för att visa utdata i detaljerat format.

När du kör kommandot iptables utan någon parameter kommer det att returnera följande utdata:

iptables v1.8.7 (nf_tables): no command specified

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

Du måste installera det om det stöter på ett fel, som kommandot ”iptables” inte hittas.

För att installera iptables i din Linux-distribution, kör följande kommando.

$ sudo apt-get install iptables

Det kommer att returnera följande eftersom det redan är förinstallerat på min Linux-distribution.

#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.

Vad är brandvägg?

Brandväggar är den mest grundläggande formen för att skydda system, nätverk och persondatorer. Det kan vara hårdvaru- eller mjukvarubaserat och förlita sig på regler för att fungera korrekt.

De flesta brandväggar är mycket anpassningsbara, så att du kan skapa eller redigera regler. Till exempel, eftersom paket från internet använder portar för att komma in i ett system, kan portbaserad skanning hjälpa dig att filtrera bort dem. Bortsett från det kan du också tillåta eller blockera tjänster genom käll-IP-adress eller nätverksgränssnitt.

Om du använder Linux får du tillgång till inbyggda iptables. Men du kan också använda en fristående Linux-brandvägg för att hjälpa dig i processen att skydda ditt system.

Varför behöver du iptables för att konfigurera brandväggen?

Men varför ska du överhuvudtaget använda iptables? Det finns trots allt bra alternativa kommandoradsbrandväggsverktyg som ufw och firewalld. Du kan också använda fristående Linux-brandväggar som är enkla att använda och erbjuder fler funktioner.

Så vad gör iptables så tilltalande när du konfigurerar en brandvägg? Skälen att använda det inkluderar:

  • Den erbjuder utmärkt flexibilitet ur lådan. Du kan ställa in regler på paketnivå.
  • Det är relativt lätt att använda när du väl vet hur det fungerar.
  • Blockera oönskad trafik på ett enkelt sätt.
  • Omdirigera paket till en alternativ IP-adress.
  • Skydda dina system mot DoS-attacker (Denial of Service).

Och mycket mer!

Förstå iptables arkitektur och dess relation till Netfilter

För att korrekt förstå iptables måste vi lära oss om deras arkitektur. Först kommer det att ge oss en tydlig förståelse för olika iptables-komponenter. Sedan, när vi känner till var och en av dem, kan vi använda dem för att skriva brandväggsregler.

Och när vi pratar om iptables kommer även Netfilter in i bilden. Du kan tänka på ”Netfilter” som en storebror till iptables. Den bygger på iptables och erbjuder en bättre funktionsuppsättning för att hantera din brandvägg. Den använder dock iptables som ett av sätten att uppnå utmärkta brandväggsfunktioner.

Iptables är ett kommandoradsgränssnitt till Netfilter-krokar på kärnnivå. Dessa krokar kan interagera med Linux-nätverksstacken, vilket påverkar paket på den djupaste nivån.

Så, hur ser iptables-arkitekturen ut:

Tabeller

iptables arkitektur börjar med tabeller. Dessa tabeller tar hand om regelorganisationen. Och varje tabell klassificeras baserat på vilken typ av beslut de fattar. I enklare termer förenklar en tabell den övergripande paketbearbetningen genom att bifoga ett specifikt sätt att bearbeta paket.

De olika borden som erbjuds av iptables inkluderar:

  • Filtertabell: Anger beslutstyp för paketfiltrering. Enkelt uttryckt avgör det om ett paket ska nå sin destination eller inte.
  • NAT-tabell: Anger beslutstyp för adressöversättning. Här bestäms routningen av paketen baserat på NAT-nätverken. Till exempel, om ett paket inte kan komma åt NAT, hoppar det över och försöker söka efter ett icke-NAT-nätverk.
  • Mangletabell: Hanterar paketets speciella bearbetningsbehov. Du kan till exempel konfigurera den för att ändra paketets rubrikinformation, såsom TTL-värden.
  • Råtabell: Råtabellen låter dig arbeta flitigt med den tillståndsfulla aspekten av iptables-brandväggen. Med hjälp av tabellen kan du dirigera paket baserat på deras ”tillstånd” innan Linux-kärnan börjar spåra dess tillstånd. Det används främst för att markera paketen, oavsett om anslutningsspårningssystemet hanterar dem eller inte. Om ett paket inte spåras är det inställt på NOTRACK-mål.

Kedjor

Och sedan har vi ”kedjor” inom ”tabeller”.

Dessa kedjor hanterar djup paketinspektion i olika skeden av sin resa. Du kan till exempel inspektera dem när den når en port eller ett nätverksgränssnitt. På så sätt kan ett beslut fattas innan paketet släpps till ett systems process.

Precis som bord får du också olika kedjor. Dessa inkluderar:

  • PREROUTING kedja: Här hanterar regler just anlända paket i nätverksgränssnittet.
  • INPUT-kedja: Reglerna som nämns i INPUT-kedjan hanterar inkommande anslutningsbeteende. När de är klara ges de till den lokala processen.
  • OUTPUT-kedja: OUTPUT-kedjan behandlar paket som processer producerar.
  • FORWARD-kedja: FORWARD-kedjan hanterar paket som inte är avsedda för lokala system. Det är en bärare för andra destinerade system, till exempel en router.
  • POSTROUTING-kedjan: Slutligen har vi POSTROUTING-kedjan, som hanterar de paket som ska lämnas genom nätverksgränssnittet.

Alla kedjor är inte tillgängliga i varje tabell. Till exempel är FORWARD-kedjan endast tillgänglig i mangle-, filter- och säkerhetstabellen. På samma sätt finns POSTROUTING-kedjan tillgänglig på mangle och nat (SNAT). Endast OUTPUT-kedjan är tillgänglig i alla tabeller.

Mål

Nu har vi ett ”mål”. När ett paket väl anländer, går det genom kedjor för att se vilken regelbeskrivning som passar bäst. Om den stämmer överens med beskrivningen av en regel, utför den den associerade åtgärden baserad på den och flyttar den sedan till målet – försegla paketets öde.

I många fall kommer ett paket inte att passa någon beskrivning eller regeluppsättning. Och det är där standardpolicyn, ett mål, kommer in.

Målen kan vara ACCEPTERA, SLIPPA och AVVISA. Dessa är avslutande mål som avgör paketets öde.

  • ACCEPTERAR: Accepterar paketen.
  • DROP: Tar bort paketet, vilket gör det inte möjligt för avsändaren att ta reda på om systemet är närvarande eller inte.
  • AVVISA: Avvisar paketet.

Det finns också icke-avslutande mål som huvudsakligen används för att lagra information om paketet.

Vanligaste iptables-kommandon med exempel

Innan du hoppar och börjar köra kommandot iptables, se till att:

  • Du har administrativ åtkomst för att köra kommandona. Om kommandot misslyckas på grund av administrativa rättigheter, kör kommandot igen med sudo-kommandot framför sig.
  • Artikeln är inte en handledning om hur man konfigurerar iptables på Ubuntu.
  • Vi använder kommandot iptables som fungerar med IPv4. Om du tänker arbeta med IPv6 måste du istället använda ip6tables.

Kontrollera iptables Status

För att kontrollera den aktuella iptables-statusen måste du köra följande 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

Ovanstående utdata innehåller mycket information. Men det tyder också på en inaktiv brandvägg. Det beror på att alla kedjor för närvarande är inställda på ACCEPT och har inga regler.

Du måste börja lägga till regler för att aktivera brandväggen.

Lägga till regler i kedjan

När du lägger till en regel läggs den alltid till i kedjan. Därför måste du använda alternativet -A (Lägg till). Syntaxen för det är som nedan:

$ sudo iptables - A

Men när du kör det kommer det att returnera följande:

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

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

Argumenten som du kan använda för att lägga till regler är:

  • – i: Det står för gränssnittet. Här kan du nämna gränssnittet du lägger till regler för. Det kan vara ppp0, eth0 och så vidare.
  • – p: Det står för protokoll. Här nämner du regeln att använda ett nätverksprotokoll för att filtrera packare. Till exempel kan du säga ICMP, TCP, UDP, etc. Om du vill att regeln ska fungera över alla protokoll, nämn ”alla” som argumentvärdet.
  • – s: Därefter kommer källargumentet, som nämner källan till trafiken (som IP-adress eller värdnamn)
  • – dport: dporten står för destinationsporten, där du nämner portnumret som paketet är avsett till.
  • – j: Slutligen har vi ett TARGET-argument där du kan nämna TARGET-namnet, ACCEPT, DROP eller RETURN

Det är också viktigt att skriva kommandot i följande ordning:

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

Sparar ändringar i iptables

När du väl har lagt till en regel kan du spara den med kommandot iptables -save.

$ sudo iptables -save

Utgången är som följer:

[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

Beständiga regler manuellt

Som standard sparar iptables inte reglerna. Så om du startar om datorn tar den bort alla regler. Du måste använda följande kommandon för att säkerställa att du inte behöver konfigurera om iptables.

För IPv4-regler, skriv kommandot:

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

Och för IPv6-regler, skriv kommandot:

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

Beständiga regler automatiskt

För att få regler att bestå även efter en omstart, och det också automatiskt, måste du installera paketet iptables-presistent.

För att göra det, kör följande kommando.

$ sudo apt-get install iptables-persistent

Det kommer att öppna följande fönster. Tryck på enter på .

När vi arbetar med IPv4-tabellen visar den bara IPv4-regler. Om du arbetar med IPv6, kommer det att visa det relevanta fönstret.

Obs: Paketet laddar bara dina sparade iptables-regler. Så när du ändrar iptables måste du spara det med kommandot iptables -save.

Regler för omladdning efter omstart

När reglerna har sparats måste du återställa dem med följande kommando.

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

Och

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

Aktivera trafik på Localhost / Aktivera Loopback

För att aktivera trafik på Localhost, använd följande kommando:

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

Här står lo för loopback-gränssnittet för all lokal värdkommunikation.

På samma sätt kan vi tillåta paket att lämna genom loopback-gränssnittet.

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

För att kontrollera hur det ändrade reglerna, kö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

Aktivera trafik på särskilda hamnar

Du kan aktivera trafik för att ACCEPTERA eller AVVISA på särskilda portar.

Till exempel är SSL-, HTTP- och SSH-portar viktiga för att dina appar ska fungera normalt. Du kan lägga till regler till ACCEPT-paketet genom portnumren för att säkerställa att de fungerar som avsett.

För SSL, kör följande kommando.

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

För HTTPS, kör följande kommando.

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

För att tillåta all HTTPS-trafik vid eth0-gränssnittet.

$ 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

För SSH, kör följande kommando.

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

Och för att acceptera ALL inkommande SSH-trafik på eth0-gränssnittet, kör följande:

$ 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

Ett annat exempel skulle vara att aktivera porttrafik på en specifik port för din anpassade app. Låt oss säga port 233.

Kör för att öppna anslutningar på den porten.

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

På samma sätt kan du också inaktivera anslutningar på en viss port genom att använda alternativet AVVISA mål.

Låt oss blockera alla anslutningar vid port 392.

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

För att kontrollera, kör kommandot 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

Ta bort befintliga regler

För att ta bort befintliga regler måste du köra följande kommando.

$ iptables -F

eller

$ iptables --flush

Obs: Om du inte har sparat dina regler är de förlorade för alltid och kan inte återställas med iptables -restore

Ta bort regler med radnummer

För att ta bort en specifik regel måste du få en lista över regler med siffror.

$ 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

Kör följande kommando om du vill ta bort regel nummer 4 för INPUT-kedjan.

$ sudo iptables -D INPUT 4

Och om du kör kommandot iptables -n -v -L igen.

#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

Visa endast INPUT- eller OUTPUT-kedjaregler

För att endast visa INPUT-kedjeregler, kör följande 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å liknande sätt, om du bara vill se regler för OUTPUT-kedjan, kö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

Starta/Stoppa/Starta om brandväggen

Om du använder RHEL/Fedora Linux eller CentOS kan du starta/stoppa eller starta om brandväggen genom att köra kommandona.

$ service iptables stop

$ service iptables start

$ service iptables restart

Du kan också använda kommandot systemctl.

Det kommer dock inte att fungera på Ubuntu.

Infoga regler på en specifik plats

Om du vill infoga regler på en specifik position måste du använda följande kommandon.

Kontrollera först reglerna.

$ 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

Kör följande kommando om du vill infoga regler mellan 2 och 3.

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

Kontrollera nu de uppdaterade reglerna.

#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

Blockera inkommande trafik men tillåt utgående trafik

Du måste ange följande kommando för att blockera all inkommande trafik.

$ 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å så sätt kan du pinga eller ladda ner paket men blockera all okänd inkommande trafik.

Blockera en viss IP-adress

För att blockera en specifik IP-adress, kör följande kommando.

$ iptables -A INPUT -s 14.23.59.9 -J DROP

Du kan också definiera en variabel för att lagra den blockerade IP-adressen och sedan köra kommandot.

BLOCK_THE_IP = “a.b.c.d”

Och kör sedan:

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

Obs: Ändra ”abcd” till din föredragna IP-adress.

Tillåter systempingning utifrån

Du kan få externa användare att pinga din server för att göra ditt nätverk upptäckbart.

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

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

Tillåter internt nätverk att prata med externt nätverk

Kör följande kommando för att tillåta det interna nätverket (låt oss säga eth0) till det externa nätverket (låt oss säga eth1).

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

Tillåt utgående DNS

För att tillåta DNS-anslutningar till din server, kör följande kommando.

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

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

Tillåt Rsycn från ett specifikt nätverk

Om du använder kommandot Rsync och vill aktivera det över ett specifikt nätverk, kör följande 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

Blockera port

Kör följande kommando för att blockera en specifik port och eventuella inkommande förfrågningar.

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

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

Blockera utgående trafik till en viss IP-adress

Du kan blockera trafik till vilken IP-adress som helst genom att köra följande kommando.

$ host -t a adminvista.com.com

#produktion

adminvista.com.com har adressen 172.66.40.93

För att blockera utgående trafik till den specifika IP-adressen, kör följande kommando.

iptables -A OUTPUT -d 72.66.40.93 -j DROP

På samma sätt kan du också blockera sociala medieplattformar som Instagram, Twitter och Facebook.

Hitta IP-adressen för sociala medier genom att köra följande kommando:

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

Till exempel för Instagram skulle det vara:

$ host -t a www.instagram.com

Nu måste du hitta CIDR för IP-adressen för just den sociala medieplattformen.

$ whois 185.89.219.11 | grep CIDR

Obs: Du kan behöva installera whois-paketet genom att köra sudo apt-get install whois

Ange nu CIDR-värdet på följande sätt:

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

Obs: Se till att ändra CIDR-värdet i enlighet med detta.

Tillåt eller blockera ICMP-pingbegäran

För att tillåta eller blockera ICMP-ping-förfrågningar, kör följande kommandon.

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

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

Öppna ett visst utbud av hamnar

För att öppna ett antal portar, kör följande kommando.

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

Lista NAT-regler

För att lista NAT-regler, kör följande kommando:

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

Eller

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

Återställ paketräknare

Så här kontrollerar du den aktuella iptables-räknaren:

$ sudo iptables -L -n -v

Kör följande för att nollställa eller nollställa räknarna:

$ sudo iptables -Z

$ sudo iptables -L -n -v

För att endast återställa INPUT-kedjeräknaren, kör:

$ iptables -Z INPUT

För att återställa en viss regelräknare, kör följande:

$ iptables -z INPUT RULE-NUMBER

Se till att ändra REGELNUMMER till just den regeln.

Slutord

iptables är ett kraftfullt kommandoradsverktyg för brandväggen. Du kan konfigurera nästan allt relaterat till nätverksresurser, paket, gränssnitt och särskilda scenarier.

Dessutom erbjuder iptables massor av alternativ. Kolla in dess huvudsida med kommandot man för att få hela bilden.

$ man iptables
$ man ip6tables

Kolla sedan in en nätverksbrandvägg och hur den hjälper till att stoppa attacker.