Linux kan ha ett rykte för säkerhet, men det är inte perfekt. Många distributioner har inte heller de bästa säkerhetsinställningarna, så det är bäst att implementera några bästa metoder för säkerhet. Ett sådant exempel använder en brandvägg.

Det finns några alternativ för brandväggar i Linux, men de flesta är egentligen bara wrappers runt iptables. För den här guiden kommer vi att visa dig hur du arbetar med iptables direkt.

Vad är Iptables?

Iptables är Linux-kärnväggväggen. Den levereras med varje Linux-distribution, och det är det mest direkta sättet att styra trafik som kommer in och ut ur din dator.

Iptables har rykte för att vara komplex, och det kan vara. Du behöver inte veta allt om iptables att använda det effektivt på skrivbordet. Du behöver bara lite grundläggande kunskaper om hur det fungerar och hur dess regler är strukturerade.

Relaterat : Hur hanteras och konfigureras brandvägg i Linux

Kommandostruktur

Alla iptables-regler följer samma grundläggande struktur. Varje regel är ett kommando med en linje till iptables som berättar hur man hanterar trafik på en viss port. Ta en titt på exemplet nedan:

 -En INPUT -i eth0 -p tcp -m state -state Upprättad, relaterad --port 80 -j ACCEPT 

Det kan se ut som mycket, men det är väldigt enkelt när du bryter ner det. Först börjar den här regeln med -A eftersom den kommer att fästa på dina iptables-regler.

Därefter specificerar -i flaggan gränssnittet som regeln gäller för. I det här fallet är det eth0 . När du skriver dina egna regler, se till att du vet vilket gränssnitt du är ansluten till ditt nätverk via.

Följande flagga, -p, heter protokollet. Denna regel gäller för tcp, vilket är webbtrafik.

-m flaggan är lite annorlunda. Det brukar hävda att det finns ett villkor som måste uppfyllas för att trafiken inte ska avvisas. Villkoren i denna regel är staten.

Stat är faktiskt nästa flagga. Du måste ge - --state en lista över acceptabla stater som är skrivna i alla kepsar och åtskilda med kommatecken. Denna regel accepterar både nya och etablerade anslutningar.

Den andra till sista flaggan här är --sport . Det står för "source port" och det berättar iptables där trafiken kommer ifrån. Det finns också en --dport som står för "destinationsport". Den används för OUTPUT regler för hantering av vilken hamntrafik som kommer ifrån.

Slutligen finns det -j flaggan. Det berättar iptable vilken åtgärd att "hoppa" till. I det här fallet bör det ACCEPT trafiken som uppfyller de tidigare villkoren.

Använda en fil

Du kan ange dina regler i iptables manuellt en efter en. Det är otroligt tråkigt, och det är väldigt lätt att förlora spår av var du är och vad du gör. Det är mycket bättre att skapa en reglerfil som du kan importera till iptables på en gång.

Det spelar ingen roll var du skapar filen. Människor gör dem till och med i /tmp katalogen eftersom iptables lagrar resultatet efter det att det importerats.

Skapa din fil. Den här guiden kommer att använda /tmp/iptables-ip4 . I filen lägg till följande två rader. Alla dina regler går mellan dem.

 * Filter # Dina Regler Här COMMIT 

Skapa dina regler

Du kan börja ställa in dina regler. Det här är bara förslag. Självklart, om du kör andra tjänster eller behöver andra portar öppna, kan du säkert anpassa några saker eller lägga till egna regler.

Loopback

Loopback-gränssnittet är ett internt gränssnitt som Linux använder.

 -En INPUT -i LÖJJ ACCEPT-A OUTPUT -o lo -j ACCEPT 

Ping

Det här är en fråga om preferens. Många gillar inte att tillåta att ping alls på sina skrivbord. Det kan dock vara bra att ha det, för att testa anslutningar. Om du vill tillåta ping lägger du till reglerna nedan. Om du inte gör det ska du utesluta dem.

 -A INPUT -i eth0 -p icmp -m-state -state NYTT -icmp-type 8 -j ACCEPT -A INPUT -i eth0 -p icmp -m state -state INSTÄLLD, RELATERAT -J ACCEPT-OUTPUT - o eth0 -p icmp -j ACCEPT 

Webben

Du vill självklart kunna ansluta till webben. På den baksidan av det vill du inte tillåta anslutningar som kommer från Internet.

 -En INPUT -i eth0 -p tcp -m-state -state Upprättad, relaterad --port 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m state -state Upprättad, relaterad --port 443 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --port 80 -j ACCEPT-OUTPUT -o eth0 -p tcp -m tcp - port 443 -j ACCEPT 

Du måste också tillåta DNS-anslutningar så att din dator kan använda webbadresser i stället för bara IP-adresser eftersom det inte skulle vara mycket bekvämt. Ersätt din routerens IP-adress för den som används här.

 -En INPUT -i ens3 -s 192.168.1.1 -p utp --port 53 -m state -state Uppställd, RELATERad -J ACCEPT-OUTPUT -o ens3 -d 192.168.1.1 -p utp --port 53 -m utp -j ACCEPT 

Tid

De flesta Linux-stationära datorer använder NTP för att ställa in och behålla systemtiden från Internet. Du måste tillåta din dator att ansluta till en NTP-server för att få tiden.

 -En INPUT -i eth0 -p utp -m-state -state upprättad, relaterad --port 123 -j ACCEPT -A OUTPUT -o eth0 -p utp -m utp --sport 123 -j ACCEPT 

Utskrift

Om du inte använder en USB-skrivare eller en extern skrivarserver måste du aktivera anslutningar till CUPS.

 -A INPUT -p utp -m utp -dport 631 -j ACCEPT -A INPUT -p tcp -m tcp --port 631 -j ACCEPT -A OUTPUT -p utp -m utp --port 631 -j ACCEPT -A OUTPUT -p tcp -m tcp --port 631 -j ACCEPT 

E-post

Du vill förmodligen kunna skicka och ta emot e-post också. E-post kan vara svårt. De portar som tillåts här är SSL-e-postportarna. Om du behöver använda osäker email, ersätt de portarna.

 # IMAP -A INPUT -i eth0 -p tcp -m state -state Upprättad, relaterad --port 993 -j ACCEPT-OUTPUT -o eth0 -p tcp -m tcp - port 993 -j ACCEPT # POP3 -A INPUT -i eth0 -p tcp -m state -state Upprättad, relaterad --port 995 -j ACCEPT-OUTPUT -o eth0 -p tcp -m tcp - port 995 -j ACCEPT # SMTP -A INPUT -i eth0 -p tcp -m state -state Uppställd, relaterad --port 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --port 465 -j ACCEPT 

SSH

För att fullt ut kunna använda SSH-anslutningar måste du tillåta både inmatning och utdata över SSH.

 # Input -A INPUT -i ens3 -p tcp -m state -state NYTT, STÄLLT --port 22 -j ACCEPT-OUTPUT -o ens3 -p tcp -m state -state INSTÄLLD --port 22 -j ACCEPT # Output -A OUTPUT -o ens3 -p tcp -m state -state NYTT, STÄLLT --port 22 -j ACCEPT -A INPUT -i ens3 -p tcp -m state -state INSTÄLLD - sport 22 -j ACCEPT 

DHCP

De flesta Linux-skrivbord använder DHCP för att automatiskt ta emot en IP-adress från en router. DHCP använder sina egna portar, så de måste också vara tillgängliga. Om du använder en statisk IP behöver du inte dessa regler.

 -En INPUT -i eth0 -p utp -m state -state Upprättad, relaterad --port 67:68 -j ACCEPT-OUTPUT -o eth0 -p udp -m utp --dport 67:68 -j ACCEPT 

Avvisa allt annat

Slutligen kommer du att berätta för iptables att förkasta absolut allt som du inte uttryckligen tillåter i ovanstående regler.

 -A INPUT -J REJECT -A FORWARD -J REJECT -A OUTPUT -J REJECT 

Efter allt ska dina regler se ut som dessa.

Importera dina regler

Du har nu en fullständigt funktionell iptables-reglerlista. Du behöver bara lämna den till iptables att använda.

Om några regler har lagts till över tid, rensa dem ut. Efter dessa kommandon ser du standardinställningarna som tillåter allt.

 sudo iptables -F && sudo iptables -X 

Med de borta kan du återställa de nya från filen du skapade.

 sudo iptables-återställ </ tmp / itpables-ip4 

Din dator använder nu de nya iptables-reglerna. Du kan kolla in dem.

 sudo iptables -S 

De är dock inte permanenta än. Om du startar om datorn nu kommer du att ha en riktigt dålig tid.

Gör dem permanenta

Det finns flera sätt att göra reglerna permanenta. De skiljer sig åt för varje distribution. Den här guiden kommer att fokusera på Debian- och Ubuntu-baserade system, eftersom de är mest populära.

Det finns ett paket tillgängligt, kallat iptables-persistant, som hanterar att spara och återställa iptables. Allt du behöver göra är att installera det.

 sudo apt installera iptables-persistent 

Under installationen frågar paketet om du vill spara din konfiguration. Välj "Ja".

I framtiden, om du vill lägga till regler, kan du spara igen genom att köra följande kommando.

 sudo service netfilter-persistent spara 

Du har nu kontroll över trafiken som flyter genom din dator. Det finns säkert mer som du kan göra med iptables, men du borde känna dig trygg med grunderna först.