iptables

Ubuntu Iptables Hur man styr nätverkstrafik med iptables?

Ubuntu Iptables Hur man styr nätverkstrafik med iptables?
“... A användarutrymme Unix-verktyg som ger systemadministratörer möjligheten att konfigurera IP-paketfiltreringsregler implementerade av kärnans nätfiltermodul.” Iptables fungerar som en brandvägg med paketfiltreringsregler baserat på olika kriterier som IP-adress, port och protokoll.

Den här guiden diskuterar hur du konfigurerar och använder regler för iptables i ett Ubuntu-system för att säkra ditt nätverk. Oavsett om du är en nybörjare Linux-användare eller en erfaren systemadministratör, från den här guiden och på ett eller annat sätt kommer du att lära dig något användbart om iptables.

Iptables är förinstallerade på Ubuntu och de flesta Debian-baserade distributioner. Ubuntu paketerar också GUFW-brandvägg, ett grafiskt alternativ som du kan använda för att arbeta med iptables.

NOTERA: För att använda och konfigurera iptables behöver du sudo-privilegier på ditt system. Du kan lära dig mer om sudo från följande handledning.

Nu när du vet vad Iptables är, låt oss dyka in!

Hur man använder iptables för att hantera IPv4-trafik?

För att använda Iptables för IPv4-nätverk och trafikhantering måste du förstå följande:

Iptables-kommandot

Iptables erbjuder ett urval av alternativ som låter dig anpassa och ställa in dina iptables-regler. Låt oss diskutera några av dessa parametrar och se vad de gör.

NOTERA: Du kan konfigurera en uppsättning regler som hanterar en viss delmängd, så kallad iptables-kedjor.

Iptables-parametrar

Innan vi börjar skapa och konfigurera iptables-regler, låt oss först förstå grunderna för iptables, till exempel allmän syntax och standardargument.

Tänk på kommandot nedan:

sudo iptables -I INPUT -s 192.168.0.24 -j DROP

Kommandot ovan berättar för iptables att skapa en regel i kedjan. Regeln släpper alla paket från IP-adressen 192.168.0.24.

Låt oss undersöka kommandot, rad för rad, för att förstå det bättre.

Iptables erbjuder ett urval av parametrar som du kan använda för att konfigurera olika regler. De olika parametrarna du kan använda för att konfigurera iptables-regler inkluderar:

Iptables-regelparameter Beskrivning
-s-källa Ange källan, som kan vara en adress, värdnamn eller nätverksnamn.
-p-protokoll Anger anslutningsprotokollet; till exempel TCP, UDP, etc.
-d -destination Anger destinationen, som kan vara en adress, nätverksnamn eller värdnamn.
-j-hoppa Ställer in åtgärden iptables ska utföras efter att ha hittat ett paket.
-o -out-interface Ställer in gränssnittet genom vilket iptable skickar paketet.
-i -in-interface Ställer in gränssnittet som används för att skapa nätverkspaket.
-c -set-räknare Tillåter administratören att ställa in byte- och paketräknare för en angiven regel.
-g -goto-kedja Parametern anger att bearbetningen ska fortsätta i användaruppsättningskedjan vid retur.
-f -fragment Berättar för iptables att endast tillämpa regeln på de andra och följande fragmenten av de fragmenterade paketen.

Iptables-alternativ

Kommandot iptables stöder ett brett utbud av alternativ. Några vanliga är:

Alternativ Beskrivning
-A -append Lägger till en regel i slutet av en angiven kedja
-D-radera Tar bort en regel från den angivna kedjan
-F-spola Tar bort alla regler, en i taget
-L-lista Visar alla regler i den angivna kedjan
-Jag sätter in Infogar en regel i den angivna kedjan (skickas som ett nummer när inget nummer anges; regel läggs till överst)
-C -kolla Frågor för en regelmatchning; krav i en specificerad regel
-v -verbose Visar mer information när den används med -L-parametern
-N-ny kedja Lägger till en ny användardefinierad kedja
-X-radera-kedja Tar bort en specifik användardefinierad kedja

Iptables Tabeller

Linux-kärnan har standardtabeller som innehåller en uppsättning relaterade regler. Dessa standardtabeller har en uppsättning standardkedjor, men användare kan anpassa reglerna genom att lägga till användardefinierade regler.

NOTERA: Standardtabellerna beror starkt på din Kernel-konfiguration och de installerade modulerna.

Här är standardtabellerna iptables:

1: Filtertabellerna

Filtertabellen är en standardtabell som innehåller kedjor som används för nätverkspaketfiltrering. Några av standardkedjorna i denna tabell inkluderar:

Kedja Beskrivning
Inmatning Iptables använder denna kedja för alla inkommande paket till systemet, dvs.e., paket som går till lokala nätverksuttag.
Produktion Iptables använder utmatningskedjan för lokalt genererade paket, dvs.e., paket som går ut ur systemet.
Fram Denna kedja är vad Iptables använder för paket som dirigeras eller vidarebefordras via systemet.

2: NAT-tabellerna

NAT eller nätverksadresstabell är en routningsenhet som används för att modifiera källan och mål-IP-adresserna i ett nätverkspaket. NAT-tabellens huvudsakliga användning är att ansluta två nätverk i ett privat adressintervall med det offentliga nätverket.

NAT har utvecklats för att stödja maskering av riktiga IP-adresser, vilket gör att privata IP-adresser kan nå från det externa nätverket. Detta hjälper till att skydda detaljer om interna nätverk från att avslöjas i offentliga nätverk.

NAT-tabellen blir anställd när ett paket initierar en ny anslutning.

Iptables har en standardtabell för NAT-adressering. Denna tabell har tre huvudkedjor:

Kedja Beskrivning
FÖRHANDLING Tillåter modifiering av paketinformation innan du anländer till INPUT-kedjan som används för inkommande paket
PRODUKTION Reserverat för paket som skapats lokalt, d.v.s.e., innan nätverksdirigering inträffar
POSTROUTING Tillåter modifiering av utgående paket - Paket som lämnar OUTPUT-kedjan

Diagrammet nedan visar en översikt på hög nivå av denna process.

Använd kommandot nedan för att visa dina NAT Routing-tabeller.

iptables -t nat -n -v -L

3: Mangeltabellerna

Mangeltabellen används främst för speciell modifiering av paket. Enkelt uttryckt används den för att ändra IP-rubrikerna för ett nätverkspaket. Modifiering av paket kan inkludera att ändra ett TTL-värde på paketet, ändra giltiga nätverkshopp för ett paket, etc.

Tabellen innehåller följande standardkedjor:

Kedja Beskrivning
FÖRHANDLING Reserverad för inkommande paket
POSTROUTING Används för utgående paket
INMATNING Används för paket som kommer direkt till servern
PRODUKTION Används för lokala paket
Fram Reserverat för paket som dirigeras genom systemet

4: Råborden

Råbordets huvudsyfte är att konfigurera undantag för paket som inte är avsedda att hanteras av spårningssystemet. Råbordet sätter ett NOTRACK-märke på paket, vilket uppmanar anslutningsfunktionen att ignorera paketet.

Conntrack är en Linux-kärnnätverksfunktion som gör att Linux-kärnan kan spåra alla nätverksanslutningar, vilket gör det möjligt för kärnan att identifiera paket som utgör ett nätverksflöde.

Råbordet har två huvudkedjor:

Kedja Beskrivning
FÖRHANDLING Reserverat för paket som tas emot av nätverksgränssnitt
PRODUKTION Reserverat för paket som initierats av lokala processer

5: Säkerhetstabellen

Den här tabellens primära användning är att ställa in intern säkerhetsförbättring för Linux (SELinux) säkerhetsmekanism som markerar på paket. Säkerhetsmärket kan appliceras per anslutning eller paket.

Den används för obligatoriska regler för åtkomstkontroll och är den andra tabellen som nås efter filtertabellen. Det erbjuder följande standardkedjor:

Kedja Beskrivning
INMATNING Reserverad för inkommande paket till systemet
PRODUKTION Används för lokalt skapade paket
FRAM Används för paket som dirigeras genom systemet

Efter att ha tittat på standard-Iptables, låt oss gå ett steg längre och diskutera hur man arbetar med iptables-regler.

Hur man arbetar med iptables-regler?

Iptables-regler tillämpas i stigande ordning. Detta innebär att den första regeln i en specifik uppsättning tillämpas först, följt av den andra, sedan tredje, och så vidare, tills den sista.

På grund av denna funktion hindrar iptables dig från att lägga till regler i en uppsättning med parametern -A; Du måste använda -I, följt av numret eller genom att tömma det för att lägga till överst i listan.

Visar Iptables

För att se dina iptables använder du kommandot iptables -L -v för IPv4 och ip6tables -L -v för IPv6.

Infoga regler

För att infoga regler i en uppsättning måste du placera dem i exakt ordning och respektera de regler som används i samma kedja. Du kan visa listan över dina iptables-regler med kommandot som diskuterats ovan:

sudo iptables -L -v

För att till exempel infoga en regel som tillåter inkommande anslutningar till port 9001 via TCP, måste vi ange regelnumret till INPUT-kedjan som följer trafikregler för webben.

sudo iptables -I INPUT 1 -p TCP --dport 9001 -m state --state NEW -j ACCEPT

När du har tittat på de aktuella iptabellerna bör du se den nya regeln i uppsättningen.

sudo iptables -L -v

Ersätta regler

Ersättningsfunktionen fungerar på samma sätt för att infoga, men den använder iptables -R-kommandot. För att till exempel ändra regeln ovan och ställa in port 9001 för att neka, gör vi:

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

Radera en regel

För att radera en regel skickar vi regelnumret. För att till exempel ta bort regeln ovan kan vi ange som:

sudo iptables -D INPUT 1

I de flesta Linux-distributioner är iptables tomma för antingen IPv4 och IPv6. Därför, om du inte har lagt till någon ny regel, får du en utdata som liknar den som visas nedan. Det är riskabelt eftersom det innebär att systemet tillåter all inkommande, utgående och dirigerad trafik.

Låt oss ta en titt på hur man konfigurerar iptables:

Hur man konfigurerar iptables?

Det finns många sätt att konfigurera iptables-regler. Detta avsnitt använder exempel för att visa dig hur du ställer in regler med IP-adresser och portar.

Blockera och tillåta trafik via hamnar

Du kan använda en viss port för att blockera eller tillåta all trafik i ett nätverksgränssnitt. Tänk på följande exempel:

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

Ovanstående kommandon tillåter trafik på port 1001 TCP på wlan0-gränssnittet.

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

Detta kommando gör motsatsen till ovanstående kommando eftersom det blockerar all trafik på port 1001 på wlan0.

Här är en noggrann inspektion av kommandot:

NOTERA: Iptables förstår inte alias för nätverksgränssnitt. Således måste du i ett system med mer än ett virtuellt gränssnitt definiera måladressen manuellt och uttryckligen.

Till exempel:

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

Vitlistning och svartlistning av IP-adresser

Du kan skapa brandväggsregler med iptables. Ett exempel är genom att stoppa all trafik och endast tillåta nätverkstrafik från explicita IP-adresser.

Exempel:

iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT
iptables -A INPUT -i lo -m kommentar - kommentar "Tillåt loopback-anslutningar" -j ACCEPT
iptables -A INPUT -p icmp -m kommentar - kommentar “Låt Ping fungera som förväntat” -j

ACCEPTERA

iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT
iptables -A INPUT -s 192.168.0.0 -j ACCEPT
iptables -P INPUT DROP
iptables -P FRAMÅT DROP

Den första raden anger en regel för att tillåta alla källans IP-adresser i 192.168.0.1/24 undernät. Du kan också använda CIDR eller enskilda IP-adresser. I följande kommando ställer vi in ​​regeln för att tillåta all trafik ansluten till befintliga anslutningar. I de sista kommandona sätter vi en policy för INPUT och FORWARD för att släppa alla.

Använda iptables på IPv6

Iptables-kommandot fungerar bara på IPv4. För att använda iptables på IPv6 måste du använda kommandot ip6tables. Ip6tables använder rå-, filter-, säkerhets- och mangeltabeller. Den allmänna syntaxen för ip6tables liknar iptables, och den stöder också matchande iptables-alternativ som lägga till, ta bort, etc.

Överväg att använda manualsidorna för ip6tables för mer information.

Exempel på iptables-regler för nätverkssäkerhet

Att skapa lämpliga brandväggsregler beror främst på vilken tjänst som körs i ett system och portarna som används. Här är dock några grundläggande nätverkskonfigurationsregler som du kan använda för att säkra ditt system:

1: Tillåt trafik med Loopback-gränssnitt och avvisa all loopback från andra gränssnitt

iptables -A INPUT -i lo -j ACCEPT (Du kan också använda ip6tables)
iptables -A INGÅNG ! -i lo -s 127.0.0.0 -j REJECT (ip6tables gäller även)

2: Neka alla pingförfrågningar

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

3: Tillåt SSH-anslutningar

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

Det här är exempelkommandon som du kan använda för att säkra ditt system. Konfigurationen beror dock starkt på vad eller vem du vill komma åt olika tjänster.

VARNING: Om du föredrar att inaktivera IPv6 helt, se till att avmarkera raden eftersom detta kommer att sakta ner uppdateringsprocessen:

företräde :: ffff: 0: 0/96 100 finns i / etc / gai.konf .

Det beror på att APT-pakethanteraren löser spegeldomänen i IPv6 på grund av apt-get-uppdateringen.

Hur man implementerar iptables-regler?

För att distribuera dina iptables på Ubuntu eller andra Debian-baserade system, börja med att skapa två filer, ip4 och ip6, för deras respektive IP-adresser.

I båda filerna, lägg till de regler du vill genomdriva i deras motsvarande filer-IPv4-regler till ip4-fil och IPv6-regler till ip6-fil.

Därefter måste vi importera reglerna med kommandot:

sudo iptables-återställning < /tmp/ip4 (replace filename for IPv6)

Sedan kan du verifiera om reglerna har tillämpats med kommandot:

sudo iptables -L -v

En snabb iptables-beständig guide

Ubuntu och vanliga Debian-baserade distributioner levereras med ett iptables-beständigt paket som låter dig tillämpa dina brandväggsregler enkelt vid omstart. Paketet innehåller filer som du kan använda för att ställa in regler för IPv4 eller IPv6 och kan tillämpas automatiskt vid start.

Du kan också använda brandväggsregler med UFW eller GUFW. Tänk på följande handledning för att lära dig hur du använder UFW.

Hur man installerar iptables-persistent?

Se till att du har iptables-persistent installerat på ditt system. Använd dpkg för att kontrollera om du har paketet installerat.

Om inte, använd följande kommando:

sudo apt-get install iptables-persistent

Du kommer att bli ombedd två gånger för att spara både dina nuvarande IPv4- och IPv6-regler. Klicka på Ja för att spara båda reglerna.

Klicka på ja för att spara IPv6.

När installationen är klar kontrollerar du att du har underkatalogen iptables, som visas i bilden nedan.

Nu kan du använda reglerna.v4 och regler.v6 för att lägga till iptables-regler, och de tillämpas automatiskt av iptables-persistent. Filerna är enkla textfiler som du enkelt kan redigera med valfri textredigerare.

Slutsats

I denna handledning har vi täckt grunderna för iptables. Börjar med att arbeta med iptables, grundläggande kommandon, standard iptables-tabeller och parametrar.

Från vad du har lärt dig borde du kunna använda iptables för att skapa brandväggsregler som hjälper till att skydda ditt system.

Mus AppyMouse styrplatta och muspekare för Windows-surfplattor
AppyMouse styrplatta och muspekare för Windows-surfplattor
Surfplattanvändare saknar ofta muspekaren, särskilt när de brukar använda bärbara datorer. Pekskärmen Smartphones och surfplattor har många fördelar o...
Mus Mellan musknappen fungerar inte i Windows 10
Mellan musknappen fungerar inte i Windows 10
De mittknappen hjälper dig att bläddra igenom långa webbsidor och skärmar med mycket data. Om det slutar, kommer du sluta använda tangentbordet för at...
Mus Hur man ändrar vänster och höger musknapp på Windows 10 PC
Hur man ändrar vänster och höger musknapp på Windows 10 PC
Det är en hel norm att alla datormusenheter är ergonomiskt utformade för högerhänta användare. Men det finns musenheter tillgängliga som är speciellt ...