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:
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.
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.
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.
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:
- Tillad al trafik undtagen, eller
- 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.
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
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:
ALLE begrænsede politikker gælder.
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.
Jeg håber, du kunne lide disse oplysninger. I den næste vil jeg tale om NAT, Proxy og scripts til Firewal.
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.
Fremragende artikel. Jeg ser frem til anden del.
Meget god forklaring, det hjalp mig med at forstå proxyen for mit arbejde. tak skal du have
Hej Jlcmux,
Fremragende, jeg kunne virkelig godt lide det, hvornår vil den anden part være tilgængelig?
Hilsner og tak for deling
Tak for kommentaren.
Jeg sendte den anden del i går, i løbet af dagen tror jeg, de vil offentliggøre den.
Greetings.
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.
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.
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.
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.
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!
I Linux kan du selvfølgelig oprette virtuelle grænseflader. Hvis du har eth0, kan du have eth0: 0, eth0: 1, eth0: 2 ... osv
Så godt, tak for deling