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

Dette indlæg forsøger at afklare lidt om, hvordan netværk fungerer, og hvordan vi kan gøre vores Linux-udstyr til en router, der sikrer lidt mere vores netværk, hvad enten det er hjemme eller endda forretning. Så lad os komme i gang:

Dette indhold er baseret på bogen "Linux - Systemadministration og netværkstjeneste" - Sébastien BOBILLIER

Routing og filtrering

For at tale og forstå routing kan vi først definere, hvad routeren fungerer? Til dette kan vi sige, at en router ud over at oprette et netværk og tillade forbindelse til andet udstyr (vel vidende at vi kan gøre dette med en AP, switch, hub eller andre) har evnen til at forbinde to forskellige netværk til hinanden.

router

Som vi kan se på billedet, er der et lokalt netværk "10.0.1.0", der oprettes af routeren, og når en af ​​dens to grænseflader. Derefter har routeren på den anden grænseflade et andet netværk med sin offentlige IP, som den kan oprette forbindelse til internettet med. Routing-funktionen er grundlæggende at fungere som en mellemmand mellem disse to netværk, så de kan kommunikere.

Linux som en router.

Naturligvis har Linux-kernen allerede muligheden for at "videresende", men som standard er den deaktiveret, så hvis vi vil have vores Linux til at udføre dette arbejde, skal vi gå til filen.

/proc/sys/net/ipv4/ip_forward

Der finder vi ud af, at det er en fil, der kun indeholder nul "0", hvad vi skal gøre er at ændre den til en "1" for at aktivere denne adfærd. Desværre slettes dette, når vi genstarter computeren, for at lade den være aktiveret som standard skal vi bruge kommandoen:

sysctl net.ipv4.ip_forward=1

Eller rediger det direkte i filen /etc/sysctl.conf. Afhængigt af fordelingen kan denne konfiguration også være i en fil i  /etc/sysctl.d/.

Som standard skal vores Linux have en routingtabel, som generelt er konfigurationen af ​​vores LAN-netværk og forbindelse til routeren. Hvis vi vil se denne routing, kan vi bruge to kommandoer:

route -n

o

netstat -nr

Begge kommandoer skal returnere det samme.

Skærmbillede fra 2014 09:30:18

Generelt er denne konfiguration nok til, at din Linux fungerer som en gateway, og andre computere kan navigere gennem vores computer. Hvis vi f.eks. Vil have vores Linux til at forbinde to eller flere netværk, hvad enten det er lokalt eller ej, kan vi bruge statiske ruter.

Antag, at min Linux har to netværksgrænseflader, den første har en internetforbindelse, hvis netværk er 172.26.0.0, og den anden (10.0.0.0) har computere fra et andet lokalt netværk. Hvis vi vil dirigere pakker til det andet netværk, kan vi bruge:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8

Generelt er det:

route add -net REDDESTINO netmask MASCARA gw IPDELLINUX

hvis vi giver rute -n uanset om dette netværk eksisterer eller ej, vil denne routing blive rettet i vores tabel.

Skærmbillede fra 2014 09:30:18

Hvis vi vil fjerne den nævnte routing, kan vi bruge

route del -net 10.0.0.0 netmask 255.0.0.0

iptables.

Dybest set bruges iptables til filtrering af pakker, udgående, indgående eller andre, dette gør det til et godt værktøj til at styre vores netværkstrafik. Nå, iptables, ligesom det giver os mulighed for at filtrere trafikken fra den samme computer, giver det os også mulighed for at filtrere den trafik, der passerer gennem den. (Videresendelse). Iptables kan opdeles i tabeller, kæder og handlinger.

  • Bestyrelser:  dybest set kan der være to borde, filtre, at filtrere pakker og  NAT at oversætte adresser, det vil sige at flytte fra et netværk til et andet.
  • Kæder: Kæden henviser til den type trafik, vi vil filtrere eller svømme, det vil sige hvilken trafik skal vi anvende tabellerne? og de kan være:  INPUT: Indgående trafik, PRODUKTION: udgående trafik eller FREM: Trafik, der passerer gennem den, men det er ikke dens egen forbindelse.
  • Det kan også forekomme POSTROUTERING, som bruges til at behandle pakken på en bestemt måde, efter at den er blevet rutet.
  • handlinger: Handlinger er dybest set den handling, der skal udføres med kæden. Denne handling kan være DRÅBE, der bare ødelægger den trafik eller ACCEPTERE. der gør det muligt for trafik at udføre den handling.

IPTABLES-regler gemmes og udføres i den rækkefølge, de blev oprettet, og hvis en regel sletter en tidligere regel, anvendes den sidste regel i rækkefølgen altid.

Firewall-politikker.

Generelt fungerer firewalls naturligvis på to måder:

  1. Tillad al trafik undtagen, eller
  2. Tillad ikke nogen trafik undtagen ...

Brug for at anvende politikker IPTABLES - P AKTIONSKÆDE

Hvor strengen repræsenterer trafiktypen (INPUT, OUTPUT, FORWARD, POSTROUTING ...) og handlingen er DROP ELLER ACCEPT.

Lad os se på et eksempel.

Skærmbillede fra 2014 09:30:18

Her ser vi, at jeg i første omgang var i stand til at pinge, så fortalte jeg IPTABLES, at al OUTPUT-trafik var DROP eller ikke tilladt. Så bad jeg IPTABLES om at acceptere det.

Hvis vi skal bygge en firewall fra bunden, skal vi altid anvende reglerne for (Tillad ikke nogen trafik undtagen ... For dette så anvender vi reglerne

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Hvis disse politikker gælder, vil de ikke have nogen form for forbindelse
.

For at vende tilbage skriver vi det samme og erstatter DROP med ACCEPT.

På dette tidspunkt, da al trafik nægtes, begynder vi at fortælle vores IPTABLES, hvilken trafik den kan have.

Syntaksen er:

iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción

Hvor:

Streng = INPUT, OUTPUT eller FORWARD

origin_ip = Oprindelsen af ​​pakkerne, dette kan være en enkelt IP eller et netværk, og i dette tilfælde skal vi specificere masken).

destination_ip = hvor pakkerne skal hen. dette kan være en enkelt IP eller et netværk, og i dette tilfælde skal vi specificere masken).

protokol = angiver den protokol, der bruges af pakkerne (icmp, tcp, udp ...)

port = trafikens destinationshavn.

handling = DROP eller ACCEPT.

Eksempel:

Skærmbillede fra 2014 09:30:19

ALLE begrænsede politikker gælder.

Skærmbillede fra 2014 09:30:19

Derefter tilføjer vi reglerne for at kunne have trafik gennem port 80 HTTP og 443 HTTPS med TCP-protokollen. Derefter port 53 Det anvendes til DNS-klienten til at løse domænerne, ellers navigerer du ikke. Dette fungerer med udp-protokol.

Linjen:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Det er på grund af følgende: Når du f.eks. Foretager en HTTP-anmodning, opretter du forbindelse til port 80 på serveren, men serveren for at returnere oplysningerne skal oprette forbindelse til dig gennem enhver port. (Generelt større end 1024).

Da alle vores porte er lukkede, opnås dette ikke, medmindre vi åbner alle porte højere end 1024 (dårlig idé). Hvad dette siger er, at al indgående trafik, der kommer fra en forbindelse, som jeg oprettede selv, accepteres. Jeg mener, en forbindelse, som jeg i princippet startede.

Når OUTPUT placeres i reglerne, gælder dette kun for det pågældende udstyr. Hvis vi bruger vores udstyr som en router til at tillade disse forbindelser, skal vi ændre OUTPUT til FORWARD. Da trafik passerer gennem computeren, men ikke initieres af den
Alle disse regler slettes efter genstart, så du skal oprette scripts, så de starter som standard. Men vi vil se dette i det næste

Jeg håber, du kunne lide disse oplysninger. I den næste vil jeg tale om NAT, Proxy og scripts til Firewal.


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.   Rogelio pinto sagde han

    Dette er det grundlag, som mange iværksættere tager for at fremstille deres egne firewalls. Derfor er der så mange mærker af firewalls med indlejret linux på markedet, nogle gode og andre ikke så meget.

  2.   Heber sagde han

    Fremragende artikel. Jeg ser frem til anden del.

  3.   Milton sagde han

    Meget god forklaring, det hjalp mig med at forstå proxyen for mit arbejde. tak skal du have

  4.   faustod sagde han

    Hej Jlcmux,

    Fremragende, jeg kunne virkelig godt lide det, hvornår vil den anden part være tilgængelig?

    Hilsner og tak for deling

    1.    @Jlcmux sagde han

      Tak for kommentaren.

      Jeg sendte den anden del i går, i løbet af dagen tror jeg, de vil offentliggøre den.

      Greetings.

  5.   israel sagde han

    Meget god artikel ven @ Jlcmux, jeg lærte virkelig med ham, da han afklarede nogle tvivl, som jeg havde i nogen tid, forresten ville du ikke have noget imod at dele bogen med kilden til artiklen, den af ​​Sébastien BOBILLIER, godt slau2s og nu for at se 2. del, salu2s.

    1.    @Jlcmux sagde han

      Hej Tak, fordi du kommenterede Israel.

      Det viser sig, at jeg har bogen i fysisk form. Men jeg fandt dette link på Google Bøger. http://books.google.com.co/books?id=zxASM3ii4GYC&pg=PA356&lpg=PA356&dq=S%C3%A9bastien+BOBILLIER+Linux+%E2%80%93+Administraci%C3%B3n+del+sistema+y+explotaci%C3%B3n+de+los+servicios+de+red#v=onepage&q=

      Jeg synes det er komplet.

  6.   Ariel sagde han

    Meget god artikel, jeg tilføjer et spørgsmål: Hvad ville være fordelen ved at bruge linux som en router, hvis der er nogen, med hensyn til en hardware dedikeret til det? Eller er det kun til motion? Jeg ved, at der er dedikerede distroer, men jeg ved ikke, om de skal redde gamle pc'er eller give mere fleksibilitet i konfigurationen.

    1.    @Jlcmux sagde han

      Jeg tror, ​​fordele og ulemper afhænger af scenariet, hvor du vil implementere dette. Hvorfor skal du bestemt ikke købe en UTM eller noget lignende til dit hus? Og måske for en lille virksomhed, der heller ikke har råd til det. Det er også godt som en øvelse, da det hjælper dig med at forstå al ​​logikken i dette, og du bedre kan konfigurere en dedikeret FWall. Derudover er næsten alle disse enheder virkelig Embedded Linux.

      Greetings.

  7.   Ariel sagde han

    Hej, et spørgsmål, kan du generere en "kunstig" grænseflade i linux til lignende routing mellem netværk? (pakke sporerstil) til at arbejde med virtuelle maskiner? f.eks. hvis jeg har eth0 (fordi jeg selvfølgelig har et enkelt kort) kan jeg oprette eth1 for at oprette et andet netværk? Meget god vejleder!

    1.    Elav sagde han

      I Linux kan du selvfølgelig oprette virtuelle grænseflader. Hvis du har eth0, kan du have eth0: 0, eth0: 1, eth0: 2 ... osv

  8.   chinoloco sagde han

    Så godt, tak for deling