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

I forrige innlegg så vi hvordan man konfigurerer IPTables til å fungere som en brannmur. Nå kan vi se hvordan man lager skript for å kjøre regler automatisk når systemet starter, og også hvordan man sletter eller midlertidig stopper disse reglene.

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 ett nettverk mellom ruteren og Linux-systemet vårt, og et annet nettverk mellom Linux-systemet og det lokale nettverket. Dette betyr at ruteren vår ikke trenger å utføre NAT som sådan; enkel trafikkruting, som forklart i forrige innlegg, ville være tilstrekkelig.

  • 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 opprette skriptet i /etc/init.d/ slik at tjenesten starter automatisk og vi kan administrere den enklere.

#! / 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:

Vi plasserer dette siste skriptet i /etc/init.d/ med navnet «firewall» . Hvis vi deretter vil administrere brannmuren, kan vi bruke kommandoen /etc/init.d/firewall start. Vi kan også stoppe den eller sjekke statusen på samme måte.

Nå skal vi redigere /etc/rc.local-filen og legge til noe sånt som: /etc/init.d/firewall start slik at den starter 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.


Legg til som foretrukket kilde i Google