I det forrige indlæg så vi, hvordan man konfigurerer IPTables til at fungere som en firewall. Nu kan vi se, hvordan man opretter scripts til automatisk at køre regler, når systemet starter, og også hvordan man sletter eller midlertidigt stopper disse regler.
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.
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 ét netværk mellem routeren og vores Linux-system, og et andet netværk mellem Linux-systemet og det lokale netværk. Det betyder, at vores router ikke behøver at udføre NAT som sådan; simpel trafikrouting, som forklaret i det forrige indlæg, ville være tilstrækkeligt.
- 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.
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
Forklaring:
Scriptet gør stort set følgende:
- Begræns først al navigation, forbindelser og trafik. (Grundlæggende firewallpolitikker)
- Opret derefter NAT med destinationen eth1. hvilket indikerer, at vi har en statisk offentlig ip "81.2.3.4"
- Det åbner de porte, der er nødvendige for at modtage de pakker med forbindelser, som jeg har startet.
- Accepterer udgĂĄende HTTP-, HTTPS- og DNS-trafik.
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 i /etc/init.d/ , sĂĄ tjenesten starter automatisk, og vi nemmere kan administrere den.
#! / 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:
Vi placerer dette sidste script i /etc/init.d/ med navnet "firewall" . Hvis vi derefter vil administrere firewallen, kan vi bruge kommandoen /etc/init.d/firewall start. Vi kan ogsĂĄ stoppe den eller kontrollere dens status pĂĄ samme mĂĄde.
Nu skal vi redigere /etc/rc.local-filen og tilføje noget i retning af: /etc/init.d/firewall start , så den starter 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.