22. september 2003 - 16:25Der er
20 kommentarer og 1 løsning
Natd og LAN
Heysa, jeg har en freebsd box til at stå og dele mit inet, og det hele virker sådan set fint ;)
Men hvis jeg eks vil forwarde en port (eks port 80) så kan jeg ikke se siden ved at bruge min externe IP, kun via min interne ip til den maskine som port 80 er blevet forwardet til..
Jeg tror problemet er at divert linien i firewall'en kun fanger pakkerne når de kommer fra det eksterne interface. Det kan du komme udenom ved at lave dine egne divert liner som fanger pakkerne baseret på adressen og ændre natd til at være adressebaseret istedet for interface baseret.
natd -a 80.62.x.x -redirect_port tcp 192.168.0.2:8080 8080
ipfw add 500 allow all from 192.168.0.0/24 to 192.168.0.0/24 ipfw add 510 divert natd all from 192.168.0.0/24 to any ipfw add 520 divert natd all from any to 80.62.x.x ipfw add 530 allow all from any to any
Hvis du kører PPPoE, hvilket mange ADSL linier gør, skal du ind i /etc/ppp/ppp.conf og tilføje noget i still med "nat port tcp 192.168.0.x:80 80". Også selvfølgelig genstarte ppp.
Ok, men du har altså et problem, fordi natd binder på et interface, og det er den samme logiske enhed der styre begge trafikken. Dvs, enten skal du køre to natd'er eller også skal du lave et dns stunt
skwat: Er du sikker på at du ved hvad du snakker om? Problemet ligger i at trafikken aldrig kommer ind omkring natd, hvis divert-reglen kun fanger pakker som kommer via interfacet.
Det er ikke IPFW der skal stå for "divert". Det er natd programmet. Hvis det var IPFW som skulle stå for det, så var det måske mere "fwd" der skulle bruges. Du skal oprette en fil, som skal bruges som config fil til natd. Denne kalder du f.eks. /etc/natd.conf Heri skriver du redirect_port tcp internwebip:internwebport eksternport samt alt andet du kalder natd med. (Hvis du vælger at bruge commandline, så kan det ske at det ikke virkede. Det skete for mig. Derfor vil jeg foreslå du opretter en fil)
Når du skal starte natd skal du bruge "-f /etc/natd.conf" for at fortælle du vil bruge den configfil.
Det burde åbne et hul ind til din webserver. Derudover, hvis din default ikke er accept alt, så skal du også sige til din firewall at alt på port 80 gerne må komme igennem.
Læs på "man natd". Man siderne er ret gode.
Dertil, såvidt jeg husker kan det ske du ikke kan se den service du vil ind på fra din egen ip. Så du skal nok spørge en af dine venner om de kan komme ind.
Uhh ja.. Troede vi snakkede om en almindelige redirect udefra til en ip internt. Men han vil gerne se sin egen maskine med den eksterne ip indefra? Så vil jeg foreslå noget helt hen i vejret, som ikke er blevet foreslået endnu, som han måske kan teste med.
Hvis det er tilfældet vil jeg foreslå "fwd". ipfw add fwd 192.168.0.x,8080 tcp from 192.168.0.0/24 to 80.62.x.x 8032
Og denne regl burde stå foran divert, da vi ikke vil have at pakken går ud af dit natd interface, men stadig er internt på LAN'et.
Hvis det ikke virker vil jeg give de andre ret med 2 natd. Kan måske virke, men er ikke noget som jeg har testet med.
Jeg ville nu helst bruge en bind til at lave et DNS stunt.<u
Synes godt om
Ny brugerNybegynder
Din løsning...
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.