Hemsida » hur » Använda Iptables på Linux

    Använda Iptables på Linux

    Den här guiden kommer att försöka förklara hur man använder iptables på linux på ett lättförståeligt språk.

    Innehåll

    [Dölj]

    • 1 Översikt
    • 2 användning
      • 2.1 Blockera en enda IP-adress
      • 2.2 Tillåter all trafik från en IP-adress
      • 2.3 Blockering av en port från alla adresser
      • 2.4 Tillåta en enda port från en enda IP
      • 2.5 Visa aktuella regler
      • 2.6 Rensa nuvarande regler
    • 3 Distribution-Specifik
      • 3,1 Gentoo

    Översikt

    Iptables är en regelbaserad brandvägg som kommer att behandla varje regel i ordning tills den hittar en som matchar.

    Todo: inkludera exempel här

    Användande

    Iptables-verktyget är vanligtvis förinstallerat på din Linux-distribution, men kör inte några regler. Du hittar verktyget här på de flesta distributioner:

    / Sbin / iptables

    Blockera en enda IP-adress

    Du kan blockera en IP med hjälp av parametern -s, ersätter 10.10.10.10 med adressen du försöker blockera. Du noterar i det här exemplet att vi använde -I-parametern (eller -insert fungerar också) i stället för bilagan, eftersom vi vill se till att denna regel visas först innan någon tillåter regler.

    / sbin / iptables -I INPUT -s 10.10.10.10 -j DROP

    Tillåter all trafik från en IP-adress

    Du kan växelvis tillåta all trafik från en IP-adress med samma kommando som ovan, men ersätter DROP med ACCEPT. Du måste se till att denna regel visas först innan några DROP-regler.

    / sbin / iptables -A INPUT -s 10.10.10.10 -j ACCEPT

    Blockerar en port från alla adresser

    Du kan blockera en port helt från att komma åt över nätverket genom att använda porten -port och lägga till porten för den tjänst du vill blockera. I det här exemplet kommer vi att blockera mysql-porten:

    / sbin / iptables -A INPUT -p tcp --port 3306 -j DROP

    Tillåter en enda port från en enda IP

    Du kan lägga till kommandot -s tillsammans med kommandot -dport för att ytterligare begränsa regeln till en viss port:

    / sbin / iptables -A INPUT -p tcp -s 10.10.10.10 --port 3306 -j ACCEPT

    Visar aktuella regler

    Du kan visa de aktuella reglerna med följande kommando:

    / sbin / iptables -L

    Detta bör ge dig en effekt som liknar följande:

    KÄLL INPUT (policy ACCEPT) målprotokälla destination ACCEPT all - 192.168.1.1/24 var som helst ACCEPT all - 10.10.10.0/24 var som helst DROP tcp - var som helst var som helst tcp dpt: ssh DROP tcp - var som helst var som helst tcp dpt: mysql

    Den faktiska produktionen kommer att vara lite längre, förstås.

    Rensa nuvarande regler

    Du kan rensa bort alla aktuella regler genom att använda spolningsparametern. Detta är mycket användbart om du behöver sätta reglerna i rätt ordning, eller när du testar.

    / sbin / iptables - flush

    Fördelning Specifika

    Medan de flesta Linux-distributioner innehåller en form av iptables, innehåller några av dem även inslag som gör hanteringen lite enklare. Oftast är dessa "addons" i form av init-skript som tar hand om initiering av iptables vid uppstart, även om vissa distribueringar även innehåller fullblåst wrapper-applikationer som försöker förenkla det vanliga fallet.

    Gentoo

    De iptables init script på Gentoo kan hantera många vanliga scenarier. Till att börja med kan du konfigurera iptables att ladda vid start (vanligtvis vad du vill):

    rc-update lägg till iptables standard

    Med init-scriptet kan du ladda och rensa brandväggen med ett kommando som är lätt att komma ihåg:

    /etc/init.d/iptables start /etc/init.d/iptables stop

    Init-scriptet hanterar detaljerna om att fortsätta din nuvarande brandväggskonfiguration vid start / stopp. Således är din brandvägg alltid i det tillstånd du lämnade det. Om du behöver manuellt spara en ny regel kan init-scriptet hantera detta också:

    /etc/init.d/iptables spara

    Dessutom kan du återställa din brandvägg till föregående sparade tillstånd (för det fall där du experimenterade med regler och nu vill återställa den tidigare arbetskonfigurationen):

    /etc/init.d/iptables reload

    Slutligen kan init-scriptet sätta iptables till ett "panik" -läge där all inkommande och utgående trafik blockeras. Jag är inte säker på varför det här läget är användbart, men alla Linux-brandväggar verkar ha det.

    /etc/init.d/iptables panik

    Varning: Starta inte panikläget om du är ansluten till din server via SSH; du kommer kopplas bort! Den enda gången du ska lägga iptables i panikläge är medan du är fysiskt framför datorn.