Sikre nettverket ditt med Iptables - Proxy - NAT - IDS: DEL 2

I forrige innlegg Vi så konfigurasjonen av IPTables for å fungere som en brannmur. Nå kan vi se hvordan vi lager disse skriptene slik at reglene utføres automatisk når systemet starter, og også hvordan vi kan eliminere eller stoppe disse reglene et øyeblikk.

Før vi gjør skriptet og viser deg hvordan det ser ut, la oss snakke litt om NAT og konseptet med hva vi vil gjøre med dette utstyret.

NAT og kontekst av eksemplet.

Når vi snakker om NAT, kan vi forveksle dette med ruting, siden begge har ansvaret for å koble to forskjellige nettverk til hverandre. Forskjellen er egentlig at rutingen brukes for å gå fra et lokalt nettverk til et annet, og dette andre nettverket kan koble til en ruter og gå ut på Internett.

Mens vi snakker om NAT, snakker vi om ruting av pakker fra et lokalt eller privat nettverk til et offentlig nettverk eller Internett. Det gjør dette ved å maskere pakkene ved å legge den offentlige IP-en som den går til Internett. Med andre ord trenger vi ikke en ruter, fordi den offentlige IP-en eies direkte av GNU / Linux-datamaskinen.

nat

Vi vil jobbe dette med slagordet om at vi bruker Linux som en ruter / brannmur for å gå ut på Internett fra et lokalt nettverk. Men her kan to scenarier dukke opp.

  • At Linux er mellom ruteren til tjenesteleverandøren og det lokale nettverket.

I dette tilfellet ville det være et nettverk mellom ruteren og Linux, og mellom Linux og det lokale nettverket ville det være et annet nettverk. Dette betyr at ruteren vår ikke trenger å gjøre NAT som sådan, med en enkel trafikkrute som forklart i forrige innlegg Det ville vært bra.

  • At Linux har et grensesnitt koblet til det lokale nettverket og gjennom det andre grensesnittet mottar det direkte en offentlig IP som den navigerer med.

Dette betyr at Linux må gjøre NAT slik at pakkene kan nå internett.

I dette lille laboratoriet vil vi si at Linux får en offentlig IP direkte og dermed kan teste effekten av NAT.

For å gjøre NAT bruker vi så syntaksen

 iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE

Der eth1 er grensesnittet der vi mottar offentlig IP, det vil si hvor vi går til Internett.

MASQUERADE brukes når ip er offentlig, men den kan variere over tid (dynamisk). Ellers kan vi bruke SNAT –to-source ip

Opprette iptables-skript

Anta da at: 172.26.0.0 er vårt lokale nettverk og 81.2.3.4 er den offentlige IP-en som vi går til Internett med. (det er en statisk ip). Jeg har grensesnittene eth0 (lokalt nettverk)

eth1 (Offentlig nettverk).

Det består i utgangspunktet av å lage et skript som kan kalles fra /etc/init.d/firestop (for eksempel). og fra dette skriptet kan vi starte, stoppe eller kontrollere statusen til konfigurasjonen vår, akkurat som vi gjør med en hvilken som helst systemdemon.

Anta at IPTABLES-reglene mine ER:

#! / bin / bash # Brannmur i hjemmet mitt. # Filnavn / etc / firewall_on # Av Jlcmux Twitter: @Jlcmux # # Grunnleggende policy. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT for å dele Internett fra eth0 til eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Tillat innkommende tilkoblinger initiert av iptables -A FORWARD -m-tilstand --state ESTABLISHED, RELATED -j ACCEPT # # Autorisert utgående trafikk iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
La oss ikke glemme å gi kjøringstillatelser

Forklaring:

Skriptet gjør i utgangspunktet følgende:

  1. Begrens først all navigasjon, forbindelser og trafikk. (Grunnleggende brannmurregler)
  2. Opprett deretter NAT med destinasjonen eth1. som indikerer at vi har en statisk offentlig ip "81.2.3.4"
  3. Det åpner portene som er nødvendige for å motta pakker med tilkoblinger initiert av meg.
  4. Godtar utgående HTTP-, HTTPS- og DNS-trafikk.
Reglene er bestemt for FORWARD-trafikk fordi vi bruker Linux som en ruter, så policyene brukes for trafikken som går gjennom Linux, det vil si at den fungerer som en mellommann. Dette betyr at Linux ikke kan navigere eller motta data direkte. Det gjelder bare datamaskiner som er koblet til det, men ikke for seg selv

Hvis vi vil bruke utstyret vårt for å navigere, bør vi gjenta linjene og endre FORDRE til INNGANG eller UTGANG etter behov.

Avbryt skript.

Nå skal vi lage et skript som overstyrer alt ovenfor og etterlater datamaskinen ren for alt dette. (For testformål eller hvis vi bare vil slå av brannmuren).

#! / bin / bash # Brannmur i hjemmet mitt. # Filnavn / etc / firewall_off # Av Jlcmux Twitter: @Jlcmux # # Slette iptables-regler -F # # Bruk av standard policyer (all trafikk akseptert) iptables -P INNGANG ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatisering.

Nå må vi lage skriptet inni /etc/init.d/ og tjenesten starter automatisk, og vi kan administrere den på en mer komfortabel måte.

#! / bin / bash # Brannmur i hjemmet mitt. # Filnavn /etc/init.d/ brannmur # Av Jlcmux Twitter: @Jlcmux sak $ 1 i start) / etc / firewall_on ;; stopp) / etc / firewall_off ;; status) iptables -L ;; *) ekko "Feil syntaks. Gyldig = /etc/init.d/ brannmurstart | stopp | status ;; esac

Forklaring:

Dette siste manuset vi la inn /etc/init.d/ med navnet brannmur. Så hvis vi vil administrere brannmuren, kan vi bruke kommandoen /etc/init.d/ brannmurstart. På samme måte kan vi stoppe det eller se staten.

Nå skal vi redigere filen /etc/rc.local og vi setter noe sånt som: /etc/init.d/ brannmurstart for å starte med systemet.

Også. Dette er den andre delen. Jeg håper det gir noe til dere alle. I det neste ser vi Proxy og IDS.


7 kommentarer, legg igjen dine

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   dhunter sa

    Hvis du bruker Debian, er det en pakke i repoen (iptables-persistent) som gjør akkurat det, den dumper gjeldende regler i /etc/iptables/rules.v4 eller v6, avhengig av hva du bruker, og bruker dem deretter på deg når du løfter systemet.

  2.   OCZ sa

    I praksis vil det være tilstrekkelig å rense konfigurasjonen av en konvensjonell iptables-brannmur (og å bruke NAT ikke ville være slik fra mitt synspunkt).
    Men i teorien, og så vidt jeg vet, må du i tillegg til dette også fjerne tområdene og tilbakestille tellerne. Tiltak som skal tas med tanke på at det i tillegg til "filter" finnes andre tabeller (det er obligatorisk å lese filen "/ proc / net / ip_tables_names" for dette).

    Forresten, sier ortodoksi at en brannmur allerede må være oppe før nettverket er. Jeg vet ikke hvordan det oppnås på de andre Linux-systemene, men på Debian-systemene kan skriptet tilpasses og settes i katalogen "/etc/network/if-pre-up.d/".

    God brannmur alle sammen. 😉

  3.   NauTiluS sa

    Hei, innlegget er veldig bra. Jeg har lest hele de to bindene.

    Venter på neste 🙂

  4.   anonimo sa

    Et spørsmål fra min uvitenhet, vi fortsetter med iptables, men for flere kjerneversjoner har vi nftables, jeg tester allerede, spørsmålene er, er nftables noe beta med hensyn til iptables? Vil iptables fortsette å brukes mye lenger?

    Takk.

    1.    yukiteru sa

      nftables inkluderer alle funksjonene til iptables, ip6tables, arptables og ebtables, alt ved hjelp av en ny infrastruktur i både kernelspace og userpace, som sikrer bedre ytelse og forbedret funksjonalitet. nftables erstatter iptables og alle de andre nevnte verktøyene, men ikke foreløpig, ikke minst før det er mer utbredt bruk av nftables som sådan.

  5.   Alexander sa

    veldig bra innlegg, jeg ville lese mer siden det er veldig godt forklart .. hilsen takk stort bidrag

  6.   Avrah sa

    Hallo! Veldig bra begge innleggene.
    Som et bidrag kan du legge til slutten i denne delen:

    "Nå skal vi redigere /etc/rc.local-filen og sette noe sånt som: /etc/init.d/firestop start slik at det starter med systemet."

    Legg dette til rc.local.

    hvis [-x /etc/init.d/ brannmur]; deretter
    /etc/init.d/ brannmurstart
    fi

    Noe som betyr at hvis "brannmur" har utførelsestillatelser, kan du utføre den, hvis ikke.
    Hvis du vil at "brannmuren" ikke skal starte, må du bare fjerne tillatelsene.

    For eksempel: chmod + x /etc/init.d/ brannmur
    for å få den til å kjøre ved hver oppstart eller ...
    chmod -x /etc/init.d/ brannmur
    å deaktivere den helt.

    Greetings!