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.