Sikring af dit netværk med Iptables - Proxy - NAT - IDS: DEL 2

I tidligere indlæg Vi så konfigurationen af ​​IPTables til at fungere som en firewall. Nu kan vi se, hvordan man opretter disse scripts, så reglerne udføres automatisk, når systemet starter, og også hvordan vi kan fjerne eller stoppe disse regler et øjeblik.

Før vi laver scriptet og viser dig, hvordan det ser ud, lad os tale lidt om NAT og konceptet for, hvad vi vil gøre med dette udstyr.

NAT og kontekst af eksemplet.

Når vi taler om NAT, kan vi forveksle dette med routing, da begge har ansvaret for at forbinde to forskellige netværk til hinanden. Forskellen er virkelig, at routingen anvendes til at gå fra et lokalt netværk til et andet, og dette andet netværk kan oprette forbindelse til en router og gå ud til Internettet.

Når vi taler om NAT, taler vi om routing af pakker fra et lokalt eller privat netværk til et offentligt netværk eller Internettet. Det gør det ved at maskere pakkerne ved at placere den offentlige IP, som den går med på Internettet. Med andre ord har vi ikke brug for en router, fordi den offentlige IP er direkte ejet af GNU / Linux-computeren.

NAT

Vi arbejder på dette med sloganet om, at vi bruger vores Linux som router / firewall til at gå ud på Internettet fra et lokalt netværk. Men her kan to scenarier vises.

  • At vores Linux er mellem tjenesteudbyderens router og det lokale netværk.

I dette tilfælde ville der være et netværk mellem routeren og vores Linux, og mellem Linux og det lokale netværk ville der være et andet andet netværk. Dette betyder, at vores router ikke behøver at gøre NAT som sådan med en simpel trafikrute som forklaret i tidligere indlæg Det ville være godt.

  • At vores Linux har en grænseflade tilsluttet det lokale netværk og via den anden grænseflade modtager den direkte en offentlig IP, som den navigerer med.

Dette betyder, at vores Linux skal gøre NAT, så pakkerne kan nå Internettet.

Med henblik på dette lille laboratorium så vil vi sige, at vores Linux modtager en offentlig IP direkte og dermed er i stand til at teste virkningerne af NAT.

For at gøre NAT bruger vi derefter syntaksen

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

Hvor eth1 er grænsefladen, hvor vi modtager den offentlige IP, det vil sige, hvor vi går til Internettet.

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

Oprettelse af iptables-script

Antag derefter, at: 172.26.0.0 er vores lokale netværk, og 81.2.3.4 er den offentlige IP, som vi går til internettet med. (det er en statisk ip). Jeg har grænsefladerne eth0 (lokalt netværk)

eth1 (Offentligt netværk).

Det består grundlæggende af at oprette et script, der kan kaldes fra /etc/init.d/firestop (for eksempel). og fra dette script kan vi starte, stoppe eller kontrollere status for vores konfiguration, ligesom vi gør med enhver systemdemon.

Antag at mine IPTABLES-regler ER:

#! / bin / bash # Firewall i mit hjem. # Filnavn / etc / firewall_on # Af Jlcmux Twitter: @Jlcmux # # Grundlæggende politik. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT at dele Internet fra eth0 til eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Tillad indgående forbindelser initieret af mine iptables -A FORWARD -m tilstand --state ESTABLISHED, RELATED -j ACCEPT # # Autoriserede udgående trafik 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
Lad os ikke glemme at give eksekveringstilladelser

Forklaring:

Scriptet gør stort set følgende:

  1. Begræns først al navigation, forbindelser og trafik. (Grundlæggende firewallpolitikker)
  2. Opret derefter NAT med destinationen eth1. hvilket indikerer, at vi har en statisk offentlig ip "81.2.3.4"
  3. Det åbner de porte, der er nødvendige for at modtage de pakker med forbindelser, som jeg har startet.
  4. Accepterer udgående HTTP-, HTTPS- og DNS-trafik.
Reglerne er bestemt til FORWARD-trafik, fordi vi bruger vores Linux som en router, så politikkerne bruges til den trafik, der PASSER gennem Linux, det vil sige, den fungerer som en mellemmand. Dette betyder, at vores Linux ikke rigtig kan navigere eller modtage data direkte. Det gælder kun computere, der er tilsluttet det, men ikke sig selv

Hvis vi vil bruge vores udstyr til at navigere, skal vi gentage linjerne og ændre FREM til INPUT eller OUTPUT efter behov.

Annuller script.

Nu skal vi oprette et script, der tilsidesætter alt det ovenstående og efterlader computeren ren for alt dette. (Til testformål eller hvis vi bare vil slå firewallen fra).

#! / bin / bash # Firewall i mit hjem. # Filnavn / etc / firewall_off # Af Jlcmux Twitter: @Jlcmux # # Sletning af iptables-regler -F # # Anvendelse af standardpolitikker (al trafik accepteret) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatisering.

Nu skal vi oprette scriptet indeni /etc/init.d/ og tjenesten starter automatisk, og vi kan administrere den på en mere behagelig måde.

#! / bin / bash # Firewall i mit hjem. # Filnavn /etc/init.d/ firewall # Af Jlcmux Twitter: @Jlcmux sag $ 1 i start) / etc / firewall_on ;; stop) / etc / firewall_off ;; status) iptables -L ;; *) ekko "Forkert syntaks. Gyldig = /etc/init.d/ firewall start | stop | status ;; esac

Forklaring:

Dette sidste script vi indsatte /etc/init.d/ med navnet firewall. Så hvis vi vil styre firewallen, kan vi bruge kommandoen /etc/init.d/ firewall start. På samme måde kan vi stoppe det eller se staten.

Nu skal vi redigere filen /etc/rc.local og vi sætter noget som: /etc/init.d/ firewall start for at starte med systemet.

Såvel. Dette er den anden del. Jeg håber, det bringer noget til jer alle. I det næste ser vi Proxy og IDS.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   djæger sagde han

    Hvis du bruger Debian, er der en pakke i repoen (iptables-persistent), der gør netop det, den dumper de nuværende regler i /etc/iptables/rules.v4 eller v6 afhængigt af hvad du bruger og derefter anvender dem på dig når du løfter systemet.

  2.   OCZ sagde han

    I praksis er det tilstrækkeligt at rense konfigurationen af ​​en konventionel iptables-firewall (og at bruge NAT ikke ville være det fra mit synspunkt).
    Men i teorien, og så vidt jeg ved, skal du ud over dette også rydde de ikke-standardstrenge og nulstille tællerne. Handlinger, der skal udføres under hensyntagen til, at der ud over "filter" er andre tabeller (det er obligatorisk at læse filen "/ proc / net / ip_tables_names" for dette).

    Forresten siger ortodoksi, at en firewall allerede skal være op, før netværket er. Jeg ved ikke, hvordan det opnås i de andre Linux-systemer, men i Debian-systemet kunne scriptet tilpasses og indstilles i biblioteket "/etc/network/if-pre-up.d/".

    God firewalling alle sammen. 😉

  3.   NauTiluS sagde han

    Hej, indlægget er meget godt. Jeg har læst hele de 2 bind.

    Venter på den næste 🙂

  4.   anonym sagde han

    Et spørgsmål fra min uvidenhed, vi fortsætter med iptables, men for flere kerneversioner har vi nftables, jeg tester allerede, spørgsmålene er, er nftables noget beta med hensyn til iptables? Vil iptables fortsat blive brugt meget længere?

    Tak.

    1.    yukiteru sagde han

      nftables inkluderer alle funktionerne i iptables, ip6tables, arptables og ebtables, der alle bruger en ny infrastruktur i både kernerpace og userpace, hvilket sikrer bedre ydeevne og forbedret funktionalitet. nftables erstatter iptables og alle de andre nævnte værktøjer, men ikke for øjeblikket, ikke mindst indtil der er mere udbredt brug af nftables som sådan.

  5.   Alexander sagde han

    meget godt indlæg, jeg ville læse mere, da det er meget godt forklaret .. hilsen tak stort bidrag

  6.   Avrah sagde han

    Hej! Meget god begge indlæg.
    Som et bidrag kan du tilføje til slutningen i denne del:

    "Nu skal vi redigere /etc/rc.local-filen og sætte noget som: /etc/init.d/firestop start, så det starter med systemet."

    Føj dette til rc.local.

    hvis [-x /etc/init.d/ firewall]; derefter
    /etc/init.d/ firewall start
    fi

    Hvilket betyder, at hvis "firewall" har eksekveringstilladelser, skal du udføre den, hvis ikke.
    Hvis du vil have "firewall" ikke til at starte, skal du bare fjerne tilladelserne.

    For eksempel: chmod + x /etc/init.d/ firewall
    for at få det til at køre ved hver opstart eller ...
    chmod -x /etc/init.d/ firewall
    for helt at deaktivere det.

    Greetings!