Säkra ditt nätverk med Iptables - Proxy - NAT - IDS: DEL 2

I post anterior Vi såg konfigurationen av IPTables för att fungera som en brandvägg. Nu kan vi se hur man skapar dessa skript så att reglerna körs automatiskt när systemet startar, och hur vi kan eliminera eller stoppa dessa regler ett ögonblick.

Innan vi gör manuset och visar hur det ser ut, låt oss prata lite om NAT och konceptet för vad vi vill göra med den här utrustningen.

NAT och sammanhang av exemplet.

När vi pratar om NAT kan vi förväxla detta med routing, eftersom båda har ansvaret för att ansluta två olika nätverk till varandra. Skillnaden är verkligen att routingen tillämpas för att gå från ett lokalt nätverk till ett annat och detta andra nätverk kan ansluta till en router och gå ut till Internet.

Medan vi pratar om NAT talar vi om dirigering av paket från ett lokalt eller privat nätverk till ett offentligt nätverk eller Internet. Det gör det genom att maskera paketen genom att placera den offentliga IP-adressen som den går till Internet. Med andra ord behöver vi ingen router, eftersom den offentliga IP: n ägs direkt av GNU / Linux-datorn.

nat

Vi kommer att arbeta detta med sloganen att vi använder vår Linux som en router/brandvägg för att gå ut på Internet från ett lokalt nätverk. Men här kan två scenarier dyka upp.

  • Att vår Linux är mellan routerns tjänsteleverantör och det lokala nätverket.

I det här fallet skulle det finnas ett nätverk mellan routern och vår Linux, och mellan Linux och det lokala nätverket skulle det finnas ett annat nätverk. Detta innebär att vår router inte skulle behöva göra NAT som sådan, med enkel trafikdirigering som förklaras i post anterior Det vore bra.

  • Att vår Linux har ett gränssnitt anslutet till det lokala nätverket och via det andra gränssnittet får det direkt en offentlig IP som den navigerar med.

Detta innebär att vår Linux måste göra NAT så att paketen kan nå Internet.

För syftet med detta lilla laboratorium då kommer vi att säga att vår Linux får en offentlig IP direkt och därmed kunna testa effekterna av NAT.

För att göra NAT använder vi sedan syntaxen

 iptables -t nat -A FÖRSTÄLLNING -O eth1 -j MASQUERADE

Där eth1 är gränssnittet där vi tar emot den offentliga IP-adressen, det vill säga där vi går till Internet.

MASQUERADE används när ip är offentlig men den kan variera över tid (dynamisk). Annars kan vi använda SNAT –to-source ip

Skapar iptables-skript

Antag då att: 172.26.0.0 är vårt lokala nätverk och 81.2.3.4 är den offentliga IP-adressen som vi går till Internet med. (det är en statisk ip). Jag har gränssnitten eth0 (lokalt nätverk)

eth1 (Offentligt nätverk).

Det består i princip av att skapa ett skript som kan anropas från /etc/init.d/firestop (till exempel). och från det här skriptet kan vi starta, stoppa eller kontrollera status för vår konfiguration, som vi gör med alla systemdemon.

Antag att mina IPTABLES-regler är:

#! / bin / bash # Brandvägg i mitt hem. # Filnamn / etc / firewall_on # Av Jlcmux Twitter: @Jlcmux # # Grundläggande policy. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT för att dela Internet från eth0 till eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Tillåt inkommande anslutningar startade av mina iptables -A FRAMÅT -m-tillstånd --state ESTABLISHED, RELATED -j ACCEPT # # Auktoriserad utgående trafik iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -E FRAMÅT -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Låt oss inte glömma att ge körrättigheter

Förklaring:

Skriptet gör i princip följande:

  1. Begränsa först all navigering, anslutningar och trafik. (Grundläggande brandväggspolicyer)
  2. Skapa sedan NAT med destinationen eth1. vilket indikerar att vi har en statisk offentlig ip "81.2.3.4"
  3. Det öppnar de portar som är nödvändiga för att ta emot de paket med anslutningar som jag har initierat.
  4. Accepterar utgående HTTP-, HTTPS- och DNS-trafik.
Reglerna är avsedda för FORWARD-trafik eftersom vi använder vår Linux som en router, så policyerna används för den trafik som PASSAR genom Linux, det vill säga den fungerar som mellanhand. Detta innebär att vår Linux inte kan navigera eller ta emot data direkt. Det gäller bara datorer som är anslutna till det, men inte för sig själv

Om vi ​​ville använda vår utrustning för att navigera bör vi upprepa raderna och byta framåt till INPUT eller OUTPUT efter behov.

Avbryt skript.

Nu ska vi skapa ett skript som avbryter allt ovan och lämnar datorn ren från allt detta. (För teständamål eller så vill vi helt enkelt stänga av brandväggen).

#! / bin / bash # Brandvägg i mitt hem. # Filnamn / etc / firewall_off # Av Jlcmux Twitter: @Jlcmux # # Radera iptables-regler -F # # Tillämpa standardpolicyer (all trafik accepteras) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatisering.

Nu måste vi skapa skriptet inuti /etc/init.d/ och tjänsten startar automatiskt och vi kan hantera den på ett bekvämare sätt.

#! / bin / bash # Brandvägg i mitt hem. # Filnamn /etc/init.d/ brandvägg # Av Jlcmux Twitter: @Jlcmux fall $ 1 i början) / etc / firewall_on ;; stopp) / etc / firewall_off ;; status) iptables -L ;; *) eko "Fel syntax. Giltig = /etc/init.d/ brandvägg start | stopp | status ;; esac

Förklaring:

Det sista skriptet vi satte in /etc/init.d/ med namnet brandvägg. Så om vi vill hantera brandväggen kan vi använda kommandot /etc/init.d/ brandvägg startar. På samma sätt kan vi stoppa det eller se staten.

Nu ska vi redigera filen /etc/rc.local och vi sätter något som: /etc/init.d/ brandvägg startar för att börja med systemet.

Också. Detta är den andra delen. Jag hoppas att det ger något till er alla. I nästa ser vi Proxy och IDS.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   djägare sade

    Om du använder Debian finns det ett paket i repo (iptables-persistent) som gör exakt det, det dumpar de nuvarande reglerna i /etc/iptables/rules.v4 eller v6 beroende på vad du använder och sedan tillämpar dem på dig när du lyfter systemet.

  2.   OCZ sade

    I praktiken skulle det vara tillräckligt att rengöra konfigurationen av en konventionell iptables-brandvägg (och att använda NAT skulle inte vara så från min synvinkel), i de flesta fall räcker det med att spola och återställa standardpolicyn till ACCEPT.
    Men i teorin, och så vitt jag vet, måste du utöver detta också rensa icke-standardsträngarna och återställa räknarna. Åtgärder som ska vidtas med tanke på att det förutom "filter" finns andra tabeller (det är obligatoriskt att läsa filen "/ proc / net / ip_tables_names" för detta).

    Förresten säger ortodoxin att en brandvägg redan måste vara uppe innan nätverket är. Jag vet inte hur det uppnås i de andra Linux-systemen, men i Debian-typen kan skriptet anpassas och ställas in i katalogen "/etc/network/if-pre-up.d/".

    Bra brandväggar alla. 😉

  3.   NauTiluS sade

    Hej, inlägget är mycket bra. Jag har läst hela två volymer.

    Väntar på nästa 🙂

  4.   anonym sade

    En fråga från min okunnighet, vi fortsätter med iptables, men för flera kärnversioner har vi nftables, jag testar redan, frågorna är, är nftables något beta med avseende på iptables? Kommer iptables att användas mycket längre?

    Tack.

    1.    yukiteru sade

      nftables inkluderar alla funktioner i iptables, ip6tables, arptables och ebtables, alla använder en ny infrastruktur i både kernelspace och userpace, vilket säkerställer bättre prestanda och förbättrad funktionalitet. nftables ersätter iptables och alla andra nämnda verktyg men inte för tillfället, inte åtminstone tills det finns mer utbredd användning av nftables som sådana.

  5.   Alexander sade

    mycket bra inlägg, jag ville läsa mer eftersom det är mycket väl förklarat .. hälsningar tack stort bidrag

  6.   Avrah sade

    Hallå! Mycket bra båda postar.
    Som ett bidrag kan du lägga till slutet i den här delen:

    "Nu ska vi redigera filen /etc/rc.local och sätta något i stil med: /etc/init.d/firestop börja starta systemet."

    Lägg till detta till rc.local.

    om [-x /etc/init.d/ brandvägg]; sedan
    /etc/init.d/ brandvägg startar
    fi

    Vilket betyder att om "brandväggen" har körrättigheter, kör den, annars inte.
    Om du vill att "brandväggen" inte ska starta, behöver du bara ta bort behörigheterna.

    Till exempel: chmod + x /etc/init.d/ brandvägg
    för att få det att köras vid varje start eller ...
    chmod -x /etc/init.d/ brandvägg
    för att helt inaktivera det.

    Hälsningar!