23. april 2007 - 10:11Der er
10 kommentarer og 1 løsning
Netværksopsætning med 2 nics
Hej igen.
Jeg har en "udfordring" mht. opsætning af netværket på min linux-maskine. Jeg kører Slackware 11 med en Squid 2.6 stable på.
Sagen er, at jeg har 2 netkort i maskinen, og jeg vil gerne sætte netværket op som følger:
Eth0 har adgang til internettet og eth1 har kun adgang til lokalnetværket. Andre maskiner på lokalnettet laver forespørgsler til internet via eth1 til Squid, som forespørger via eth0. Dette er ikke et spørgsmål til Squid-opsætning, men et spørgsmål om, hvordan jeg giver adgang til/fra internettet på eth0, mens jeg forhindrer det på eth1, som så har lokalnetadgang i stedet for..
Dette er en del af et større konfigurationsarbejde, som jeg er i gang med på min linux-maskine, og jeg tror jeg forvirrer mig selv lidt. Jeg synes, at jo mere jeg læser om netværksopsætningen, des mere forvirret bliver jeg (til at starte med, virkede det meget simpelt).
Håber I kan fortælle mig, hvad jeg skal gøre. Jeg ved ikke rigtigt hvilke informationer I har brug for - min nuværende netværkskonfiguration er helt standard, og egentlig irrelevant - men skriv endelig, hvis jeg komme med nogle brugbare informationer..
Du bør begynne med å sette opp en helt alminnelig Linux firewall med nat. Etter at du har fått dette opp å kjøre så modifiserer du dette til å funger som en firewall med transparent proxy, hvis det er det du ønsker. Oppgaven høres ellers forholdsvis standard ut. Det dreier seg om en helt alminnelig Linux gateway med Squid proxy ??!
Rigtig smart lille ting, du har lavet der. Nu har jeg aldrig fusket med Iptables før, men det virker meget ligetil. Bare lige for at være sikker på, at jeg har gjort det rigtigt, lister jeg lige, hvad jeg har lavet. Eth0=10.0.0.123 (internet nic), eth1=10.0.0.124 (lokalnet nic):
iptables -F iptables -X iptables -Z iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth1 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 20 -j DNAT --to-destination 10.0.0.124:20 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to-destination 10.0.0.124:21 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.124:80
Lyder det ikke meget rigtigt? Herefter er det vel bare at sætte Squid'en op til at være transparent, og så skulle det være det..?
Node no 123 i netverk 10.0.0 og node 123 i tettverk 10.0.1
For at en ordinær Linux firewall skal fungere så må den være satt opp til å route mellom to nettverk. (Masquerade pluss prerouting tar seg av dette nokså automatisk, men de to adapterne må altså tilhøre hvert sitt subnett.
Mht squiden så blir ikke den transarent av seg selv. Den kan kjøre av seg selv, men for å bli transparant så må det settes opp en redirecting ved hjelp av iptables. (Utgående trafikk på port 80 redirectes til squid. Har ikke detaljene for det her og nå.)
Mmjah. Rigtigt. kom også selv til at tænke på, at det ikke var sat rigtigt op. Eth1 er nu (som den skulle have været fra starten) på et andet subnet, men den router stadig ikke trafikken. Iptables prerouting er ændret iht. den ændrede ip-adresse på eth1.
Kan den manglende funktionalitet skyldes, at Slackware som standard ikke har netfilter kompileret ind i kernen? Jeg mener at have læst et sted, at det var påkrævet (men det er jo ikke sikkert det er rigtigt)?
Hvis det er grunden, må jeg jo bare recompile kernen med Iptables, i stedet for at have dem som moduler..?
Mvh.
PS: Squid er kompileret og sat op med henblik på at være transparent, og skulle (efter bedste overbevisning) virke..
PPS: Linjen: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.0.124:80 .. er nu: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.1.0.124:3128 .. da Squids host_port indstilling er sat til: host_port 10.1.0.124:3128 transparent
"at Slackware som standard ikke har netfilter kompileret ind i kernen?"
Det vil jeg tro at den har. Sjekkes hurtig med kommando "iptables -L". Hvis det i det hele kommer et fornuftig svar så har den det.
Når det gjelder det å gjøre Squid transparant så har jeg et svakt minne om at prerouting ikke kan brukes til dette. Tror man må bruke redirect i stedet fordi prerouting bare kan brukes til å forwarde via fwd chain til en annen PC (Mens altså den tranparande proxy altså skal accesses via input chain, hvilket jeg antar skal gjøres via et redirect statemant ..
"-j REDIRECT" i stedet for "-j DNAT" , det var det vel når det var snakk om å redirekte til en Squid proxy som kjører på den samme gateway i stedet for en annen PC.
Hej igen. Strategien med proxyen er nu lagt om, så den alligevel ikke skal være transparent. Inden den blev nedlagt, fik jeg den dog faktisk til at virke ud fra ovenstående (sidste link du sendte hjalp). :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.