Avatar billede BacceDK Juniormester
31. juli 2002 - 00:07 Der er 55 kommentarer og
1 løsning

iptables Question

Jeg har sat op en linux som bl.a deler forbindelsen til 2 andre maskiner, dette kører via iptables, meen så kommer problemet at jeg har ikke fast ip nummer på eth0. den styres via dhcp fra min isp.
og når man fek.s laver en PREROUTING bruger man jo sit ip nummer, og her kommer så spørgsmålet...!
kan man lave disse ting UDEN at taste sit ip nummer på en eller anden måde ??
det er lidt kedeligt at skulle omskrive scriptet hver gang man skifter ip
og hvordan ville sådan en gryde se ud???
Avatar billede dank Nybegynder
31. juli 2002 - 00:22 #1
kender ik så meget til iptables, men kunne der i starten af dit script ikke være en lille funktion der tager ip nummeret fra f.eks.

/sbin/ip addr

grabbe resultatet med awk/sed og definere

$extenip

Burde virke :-)
Avatar billede BacceDK Juniormester
31. juli 2002 - 00:24 #2
vil du uddybe den lidt mere ???
Avatar billede BacceDK Juniormester
31. juli 2002 - 00:30 #3
mit start script ser sådan her ud
#!/bin/bash

#
# Configuration-stuff
#
LANIF=eth1        # The interface connected to your LAN
WANIF=eth0        # The interface connected to the Internet
WANIP=            # The IP of your WANIF if it's static otherwise
            # leave blank

#
# Define the programs
#
IPTABLES="/sbin/iptables"
SYSCTL="/sbin/sysctl"

#
# Flush all current chains in "filter" (default) and "nat" tables
#
$IPTABLES --flush
$IPTABLES --table nat --flush

#
# Delete all user-defined chains in "filter" (default) and "nat" tables
#
$IPTABLES --delete-chain
$IPTABLES --table nat --delete-chain

#
# Setup masquerading and forwarding
#
if [ "x$WANIP" = "x" ]
then
    $IPTABLES --table nat --append POSTROUTING --out-interface $WANIF -j MASQUERADE
    $IPTABLES --append FORWARD --in-interface $LANIF -j ACCEPT
else
    $IPTABLES --table nat --append POSTROUTING --out-interface $WANIF -j SNAT --to-source $WANIP
    $IPTABLES --append FORWARD --in-interface $LANIF -j ACCEPT
fi

$SYSCTL -w net.ipv4.ip_forward=1


og ville så gerne have noget alla denne ind
iptables -t nat -A PREROUTING -i eth0 -p tcp -d ip nummer --dport 6112 -j DNAT --to-destination 192.168.1.1

meen så kommer problemet..! jeg kan jo ikke være 100% sikker på ip nummeret da det vil skifte hvis serveren bliver helt slukket, går ned, eller hvis nettet får et brug
Avatar billede airforce1 Nybegynder
31. juli 2002 - 00:37 #4
Virker dette:

iptables -t nat -A PREROUTING -i eth0 -p tcp -d $WANIF --dport 6112 -j DNAT --to-destination 192.168.1.1
Avatar billede BacceDK Juniormester
31. juli 2002 - 00:48 #5
nej sorry det gør det ikke
de kommer slet ikke på ser jeg
Avatar billede dank Nybegynder
31. juli 2002 - 01:01 #6
løsningsforslag:

Skriv et lille php script der tager din eksterne ip adresse og gemmer den i filen "ip.data"

Indsæt så disse 2 linier i starten af dit iptables script

wget getip.php
WANIP=`cat /home/mappe/ip.data`

(husk at slette WANIP linien der er i forvejen i scriptet.)

Derefter kan dette bruges:


iptables -t nat -A PREROUTING -i eth0 -p tcp -d $WANIP --dport 6112 -j DNAT --to-destination 192.168.1.1

Det brude virke ;-)
Avatar billede dank Nybegynder
31. juli 2002 - 01:10 #7
prøv lige at køre kommandoen

/sbin/ip addr

og post output her
Avatar billede BacceDK Juniormester
31. juli 2002 - 01:13 #8
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
2: eth0: <BROADCAST,MULTICAST,NOTRAILERS,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:e0:4c:a1:7c:19 brd ff:ff:ff:ff:ff:ff
    inet 213.112.95.163/26 brd 213.112.95.191 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    link/ether 00:e0:7d:7e:96:29 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global eth1
Avatar billede dank Nybegynder
31. juli 2002 - 01:21 #9
ok.. har en løsning om 2 minutter. skal lige teste
Avatar billede BacceDK Juniormester
31. juli 2002 - 01:22 #10
okey :-))
Avatar billede dank Nybegynder
31. juli 2002 - 01:27 #11
prøv lige at køre denne linie fra konsollen (root)

/sbin/ip addr | grep ".*inet" |  awk '{print $4}' | tail -n 2 | head -n 1
Avatar billede dank Nybegynder
31. juli 2002 - 01:29 #12
og poste resultatet her self :-)
Avatar billede BacceDK Juniormester
31. juli 2002 - 01:38 #13
213.112.95.191
Avatar billede dank Nybegynder
31. juli 2002 - 01:40 #14
hvilket er din eksterne ip ikke?
Avatar billede BacceDK Juniormester
31. juli 2002 - 01:41 #15
213.112.95.163
Avatar billede dank Nybegynder
31. juli 2002 - 01:42 #16
damn.. 2 sek
Avatar billede BacceDK Juniormester
31. juli 2002 - 01:42 #17
:-)) det skal jo ikke være alt for nemt væl ??
Avatar billede dank Nybegynder
31. juli 2002 - 01:43 #18
ok.. nu nærmer vi os :-)

Virker denne:

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 213.112.95.163/26 --dport 6112 -j DNAT --to-destination 192.168.1.1

.. Tænker på om "/26" er ok i syntaxen?
Avatar billede dank Nybegynder
31. juli 2002 - 01:50 #19
hvis det ("/26") i ip nummeret er ok, så er løsningen:

Udskift WANIP linien med:

WANIP=`/sbin/ip addr | grep ".*inet" |  awk '{print $2}' | tail -n 2 | head -n 1`

og ....

iptables -t nat -A PREROUTING -i eth0 -p tcp -d $WANIP --dport 6112 -j DNAT --to-destination 192.168.1.1

Jeg er 99.999% sikker på det vil virke :-)
Avatar billede BacceDK Juniormester
31. juli 2002 - 02:02 #20
hmm den kommer ikke på listen :-((
Avatar billede dank Nybegynder
31. juli 2002 - 02:04 #21
hvad kommer ikke på listen?
Avatar billede BacceDK Juniormester
31. juli 2002 - 02:10 #22
de PREROUTING jeg har sat op i iptable scriptet
men er lige ved at teste om de virker hvis man skriver dem ind manuelt og med /26 til sidst
Avatar billede BacceDK Juniormester
31. juli 2002 - 02:12 #23
hmm umidelbart virker det med /26 i røven af det, meen må simpelthend i seng nu. Skal sku tidligt op i morgern meen skriver lige resultatet op i morgen
Avatar billede dank Nybegynder
31. juli 2002 - 02:16 #24
oki :-)
Avatar billede dank Nybegynder
31. juli 2002 - 02:18 #25
Imorgen så prøv lige at køre dette lille script

#!/bin/sh
WANIP=`/sbin/ip addr | grep ".*inet" |  awk '{print $2}' | tail -n 2 | head -n 1`
echo $WANIP

Skulle gerne returnere din eksterne ip - gør den det?
Avatar billede Soren L. Hansen Nybegynder
31. juli 2002 - 09:18 #26
$IFCONFIG $WANIF | grep "inet addr" | sed -e 's/.*inet addr://' -e 's/ .*//'

Det virker. Pak det ind sådan:
$WANIF=$($IFCONFIG $WANIF | grep "inet addr" | sed -e 's/.*inet addr://' -e 's/ .*//')

Men det er stadig noget klyt, fordi scriptet så skal køres hver gang man skifter IP.. I praksis er det måske ikke noget problem, det er bare ikke særligt pænt, synes jeg.
Avatar billede dank Nybegynder
31. juli 2002 - 09:44 #27
Er det ikke smartere at beholde /26 i destination? Når den nu accepterer det? Hvad er der evt. galt med mit forslag?

LK: Jeg kan se du pakker din WANIP ind på en anden måde - kan det være derfor at mit forslag ikke virkede?

$VAR=$(.... fremfor WANIP=`/

Eller?
Avatar billede Soren L. Hansen Nybegynder
31. juli 2002 - 10:51 #28
Overhovedet ikke. '/26' har at gøre med subnettet, hvilket ikke er det, vi ønsker.

Der er som sådan ikke noget galt med dit forslag. Ikke i stor stil, i hvert fald. :-)
Et par bemærkninger:
1. Hvis shellen understøtter det, så er $() lettere at læse en ``. De er også nemmere at neste.
2. (grep ".*inet") er fjollet. (grep inet) giver nøjagtigt samme resultat og kommandoen udføres hurtigere og kræver mindre RAM.
3. Når nu man allerede ved, hvilket interface, der er eksternt, så kan man da ligeså godt benytte sig af det.
4. Hvis man bytter de to interfaces, så kræver din løsning at man retter noget på nogle meget lidt intuitive steder (dine head og tail-kommandoer).
5. Ikke alle har ip-kommandoen og den ligger ikke nødvendigvis altid lige der.
6. grep og sed bør heller ikke refereres sådan (jeg har lavet samme fejl, jeg ved det). Istedet bør der i starten defineres:
GREP=/bin/grep
SED=/bin/sed
og derefter bør de kaldes som $GREP og $SED. Dette er der flere grunde til:
6a. Hvis PATH ikke sat defineret, så scriptet bliver kaldt, så virker det alligevel.
6b. Hvis programmerne bliver flyttet, så skal der kun rettes eet sted.
7. Hvis du alligevel starter awk op, så kan den jo også alt det, som du bruger head, tail og grep til..

Til gengæld har jeg også lavet en brøler af format:

Følgende er skrupforkert:
$WANIF=$($IFCONFIG $WANIF | grep "inet addr" | sed -e 's/.*inet addr://' -e 's/ .*//')

Det skal naturligvis være:
GREP=/bin/grep
SED=/bin/sed
WANIP=$($IFCONFIG $WANIF | $GREP "inet addr" | $SED -e 's/.*inet addr://' \
-e 's/ .*//')

Det går lige hurtigt nok nogle gange.. :-)
Avatar billede dank Nybegynder
31. juli 2002 - 11:17 #29
tak for god feedback.. jeg er jo forholdsvis ny med alt dette her - men uanset om det er "god skik" så virker det da :-) Og ville have løst problemet.

Mht til CPU forbrug og ram er det ikke noget jeg ser som noget problem idet scriptet jo ikke afvikles 100K / døgnet - men kun ved boot

Mvh
Avatar billede BacceDK Juniormester
31. juli 2002 - 14:27 #30
okey så lige et sidste spm
jeg får slet ikke nogen resultater ud om PREROUTINGEN såå hvor i scriptet skal de så sættes ??
altså prerouting af portene.
først ?? sidst ?? midten ?? whatever
Avatar billede BacceDK Juniormester
02. august 2002 - 14:35 #31
p.t giver det nogle probs når jeg starter maskinen får jeg følgende fejl ud

/bin/sed no such file ore diarectory + en masse andre fejl som sel.f kommer af denne
Avatar billede BacceDK Juniormester
02. august 2002 - 15:07 #32
hmm ved nermere kigning passer overstående ikke helt i får lige den fulde fejl meddelelse
starting iptablessetup: /etc/rc3.d/S11iptablessetup: eth0: command not found.
/bin/sed: cant read -e: no such file or directory
/bin/sed: cant read s/ .*// no such file or directory
og min setup ser p.t sådan her ud

#!/bin/bash

#
# Configuration-stuff
#
GREP=/bin/grep
SED=/bin/sed
LANIF=eth1              # The interface connected to your LAN
WANIF=eth0              # The interface connected to the Internet
WANIP=$($IFCONFIG $WANIF | $GREP "inet addr" | $SED -e 's/.*inet addr://' \ -e 's/ .*//')                  # The IP of your WANIF if it's static otherwise
                        # leave blank

#
# Define the programs
#
IPTABLES="/sbin/iptables"
SYSCTL="/sbin/sysctl"

#
# Flush all current chains in "filter" (default) and "nat" tables
#
$IPTABLES --flush
$IPTABLES --table nat --flush

#
# Delete all user-defined chains in "filter" (default) and "nat" tables
#
$IPTABLES --delete-chain
$IPTABLES --table nat --delete-chain

#
# Setup masquerading and forwarding
#
#if [ "x$WANIP" = "x" ]
#then
        $IPTABLES --table nat --append POSTROUTING --out-interface $WANIF -j MASQUERADE
        $IPTABLES --append FORWARD --in-interface $LANIF -j ACCEPT
    #$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -d $WANIP --dport 6112 -j DNAT --to-destination 192.168.1.2
    #$IPTABLES -t nat -A PREROUTING -i eth0 -p udp -d $WANIP --dport 6112 -j DNAT --to-destination 192.168.1.2
   
#else
        #$IPTABLES --table nat --append POSTROUTING --out-interface $WANIF -j SNAT --to-source $WANIP
        #$IPTABLES --append FORWARD --in-interface $LANIF -j ACCEPT
#fi
$IPTABLES --append FORWARD --in-interface $WANIF --match state --state ESTABLISHED,RELATED -j ACCEPT

$SYSCTL -w net.ipv4.ip_forward=1

$IPTABLES -t nat -A PREROUTING -i eth0 -p tcp -d $WANIP --dport 6112 -j DNAT --to-destination 192.168.1.2
$IPTABLES -t nat -A PREROUTING -i eth0 -p udp -d $WANIP --dport 6112 -j DNAT --to-destination 192.168.1.2
Avatar billede dank Nybegynder
02. august 2002 - 15:34 #33
fejlfinding: Inden du begynder at intregrere mit eller linux konsulentens script, skal du være sikker på at det virker med ip adressen fremfor $WANIP

1: Tjek at din preroute virker med ip adressen istedet for $WANIP

Hvis det virker:
1: Du mangler kommandoen SED - installer den,

2: Brug den løsning jeg forslog tidligere - hvis du indtaster manuelt med subnet (/26) og det virkede, burde mit sciprt virke

Alternativ:
Glem alt om aut. IP ændring indtil videre!
Avatar billede BacceDK Juniormester
02. august 2002 - 15:42 #34
hvis det virker->
1 Sed mangler ikke. har tjekket det og den ligger på den angivne sti også

Alternativ->
GLEM DET :-))
Avatar billede dank Nybegynder
02. august 2002 - 15:44 #35
1: Har du prøvet om din preroute virker hvis du selv angiver ip adressen fremfor $WANIP
Avatar billede BacceDK Juniormester
02. august 2002 - 15:49 #36
nixx men er lidt igang med det :-))
Avatar billede BacceDK Juniormester
02. august 2002 - 15:50 #37
sidder dog også og arbejder med noget php der fucker lidt i det :-((
Avatar billede dank Nybegynder
02. august 2002 - 15:52 #38
ok, men det er svært at hjælpe hvis vi ikke kender fejlen - tidliger i denne tråd var det pludselig ikke længere et spørgsmål om en $ip, men om preroute..

Desuden føler jeg mig sikker på at mit script virker selvom der er subnet (/26) inkluderet - så brug det istedet :)
Avatar billede BacceDK Juniormester
02. august 2002 - 15:57 #39
nå men har fjernet dette nu
$($IFCONFIG $WANIF | $GREP "inet addr" | $SED -e 's/.*inet addr://' \ -e 's/ .*//')
og tilføjet 213.112.95.163 og vupti no problemos, det virkede som det skulle.
såå fejlen ligger i dette
$($IFCONFIG $WANIF | $GREP "inet addr" | $SED -e 's/.*inet addr://' \ -e 's/ .*//') meen det kan være mig der har kommet til at sætte et forkert tegn (kan jeg dog ikke lige finde) eller det kan være konsulenten der har kommet til det, sååå lader ham lige forsvare den inden da
Avatar billede BacceDK Juniormester
02. august 2002 - 15:58 #40
nixx det har hele tiden været et spørgsmål om prerouting, da det var det jeg skulle bruge mit ip nummer til.
ellers har jeg jo ikke noget at bruge det til herinde væl ??
Avatar billede dank Nybegynder
02. august 2002 - 15:59 #41
Virker denne:

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 213.112.95.163/26 --dport 6112 -j DNAT --to-destination 192.168.1.1
Avatar billede dank Nybegynder
02. august 2002 - 15:59 #42
(Med subnet angivet)
Avatar billede dank Nybegynder
02. august 2002 - 16:02 #43
"nixx det har hele tiden været et spørgsmål om prerouting, da det var det jeg skulle bruge mit ip nummer til"

Problemet var at da du oprettede dette ? skrev du problemet var det med ip adressen, senere skrev du:

"jeg får slet ikke nogen resultater ud om PREROUTINGEN såå hvor i scriptet skal de så sættes ?? altså prerouting af portene. først ?? sidst ?? midten ?? whatever"

Hvilken er en helt anden problematik

Før man kan hjælpe er man nød til at vide hvad det er der ikke virker.. er sikker på Linux konsulent vil give mig ret i dette :-)
Avatar billede BacceDK Juniormester
02. august 2002 - 16:14 #44
grunden til jeg skrev følgende
"jeg får slet ikke nogen resultater ud om PREROUTINGEN såå hvor i scriptet skal de så sættes ?? altså prerouting af portene. først ?? sidst ?? midten ?? whatever"
var at det undrede mig at intet kom frem og skulle jo være sikker på om det var mig der fejlede der eller om det var det der var sat ind for at finde ip nummeret såmendt ikke andet.
og til den med subnet vil jeg sige ja / nej til
har dog ikke testet den med porten 6112 men med 4661, 4662 og 4665 og det virkede sådan nogen lunde, men resultatet var lidt sløvt og det er derfor jeg følger op på konsulentens eks ellers havede jeg bare smidt dit op og lukket spm
Avatar billede dank Nybegynder
02. august 2002 - 17:04 #45
ok...

"men resultatet var lidt sløvt.."

? Please forklar lidt nærmere - hvordan sløvt?
Avatar billede dank Nybegynder
02. august 2002 - 19:15 #46
ok.. så fjerner vi subnet... i nedenstående eksempel: Iøvrigt så kan det godt være at ".*" tager 0.08 cpu sekunder mere end LK´s forslag - men det er vel ligemeget når det er så sjældent man får ny ip/booter!

WANIP=`/sbin/ip addr | grep ".*inet" |  awk '{print $2}' | tail -n 2 | head -n 1 |  cut -d '/' -f 1`

og ....

iptables -t nat -A PREROUTING -i eth0 -p tcp -d $WANIP --dport 6112 -j DNAT --to-destination 192.168.1.1

Her har jeg fjernet subnet!!!

Jeg er 100% sikker på det vil virke :-)
Avatar billede BacceDK Juniormester
02. august 2002 - 19:45 #47
okey den Dank der kom med virker som han selv siger :-))
Denne er taget i brug...!
Tak for hjælpen
Avatar billede langbein Nybegynder
04. august 2002 - 15:22 #48
Dette var da en meget interressant problemstilling !!!

Testet loesningen her fra Bulgaria paa en server som staar hjemme.
Det viste seg imidlertid at den "wan adresse" som ble detektet var adressen ut fra Cisco asdl router og til LAN. Denne var 10.0.0.2

Forsoekte saa aa loese problemet paa en helt annen maate. Forandret PREROUTING setningen slik:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6112 -j DNAT --to-destination 192.168.1.1

Det ser faktisk ut til aa fungere saa langt jeg kan faa testet her i fra.

I all enkelhet - ta vekk hele kriteriet om ip adresse og behold kriteriet for --dport saa er ogsaa problemet loes ved hjelp av en enkelt DNAT setning (tror jeg). Er det noen som tar brydderiet med aa teste ut dette ?
(Kommer inn paa serveren hjemme men ikke LAN bak, saa jeg faar ikke satt opp noen server funsjoner bak linux for testing.) Ut fra statuslisting "iptables -t nat -L" saa ser det  til aa fungere.
Avatar billede langbein Nybegynder
04. august 2002 - 15:24 #49
iptables -t nat -A PREROUTING -i eth0 -p tcp  --dport 6112 -j DNAT --to-destination 192.168.1.1
Avatar billede langbein Nybegynder
04. august 2002 - 15:27 #50
[root@rea /]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target    prot opt source              destination
DNAT      tcp  --  anywhere            anywhere          tcp dpt:6112 to:192.168.1.1
DNAT      tcp  --  anywhere            anywhere          tcp dpt:6112 to:192.168.1.1

Chain POSTROUTING (policy ACCEPT)
target    prot opt source              destination
MASQUERADE  all  --  anywhere            anywhere

Chain OUTPUT (policy ACCEPT)
target    prot opt source              destination
[root@rea /]#
Avatar billede Soren L. Hansen Nybegynder
04. august 2002 - 18:56 #51
Ok, lige et par kommentarer, nu hvor jeg er kommet tilbage til civilisationen.

$($IFCONFIG $WANIF | $GREP "inet addr" | $SED -e 's/.*inet addr://' \ -e 's/ .*//')

Fejlen ligger i \'en. Grunden til, jeg havde den i mit oprindelig spørgsmål var, at jeg også havde et linieskift.. Eksempel:
Hvis man skriver:
echo Dette \
er \
en \
prøve

Får man resultatet:
Dette er en prøve

Dette sker fordi, hvis en linie ender med \, så er kommandoen ikke færdig endnu,  men fortsætter på næste linie. Jamen, hvorfor hulen vil man dog det? Tjo, det er simpelthen fordi det er nemmere at læse. Det, der helt nøjagtigt går galt for dig er, at der står "$SED \ -e " osv. I dette tilfælde betyder \ at det efterfølgende mellemrum skal betragtes som et regulært tegn og ikke som en argumentadskiller.. Med andre ord bliver " -e" andet argument til sed, hvilket jo ikke starter med "-" men med " " og derfor tror sed, at det er et filnavn..
Fjern \ og så er du kørende..

Dank> Der er INGEN grund OVERHOVEDET til at skrive:
grep ".*addr"
i stedet for
grep "addr"

Forskellen er totalt den samme:
Den sidste leder efter "addr" og udskriver de linier, hvor det indgår.
Den første leder efter "addr" og _enten_noget_eller_ikke_noget_ derfør og udskriver de linier, der passer dertil... Det er jo nonsens..
Avatar billede langbein Nybegynder
05. august 2002 - 01:15 #52
Vedroerende mitt efteranmeldte forslag om aa skippe hele ip adressen:
Det reiser jo et lite folosofisk spoersmaal som jeg i utgangspunktet ikke hadde tenkt 100 % gjennom.

Dersom serveren i prinsipp staar paa et nettverk med 100 ip adresser, vil man saa kunne risikere at den prerouter samtlige 100 ip adresser til den samme server bak firewall ??

Ser man paa teorien rundt iptables alene saa kan det jo nesten se ut slik. Tror allikevell ikke at dette vil skje. Ikke den beste beskrivelsen for prerouting (det er faktisk ikke tegnet inn) men allikevell noe:
http://www.digitaltoad.net/docs/iptables-HOWTO-5.html

Grunn: Detektingen av korrekt ip adresse skjer paa et tidligere trinn i informasjonskjeden slik at ingen ip pakker vil naa fram til firewall mekanismen med mindre det dreier seg om den eller en av de ip adressene som nettverkskortet er konfigurert for. Naar ip pakkene naar fram til firewall mekanismen for filtrering saa vil de allerede vaere sjekket for rett ip addresse i forhold til den konfigurering som gjelder for nettverkskortet (tror jeg !)

Indate, dank eller linuxkonsulenten er det noen som gidder aa teste dette ?? (ellers saa maa jeg jo vente helt til jeg er hjemme paa svaret) !!

Altsaa: En annen loesning som ogsaa vil fungere er aa droppe hele angivelsen av eller detektingen av den eksterne ip adressen, hele den setningen gaar bort og saa bare preroute paa basis av kortangivelse og portnummer som seleksjonskriterium og saa preroute til intern ip paa basis av dette, med andre ord kun:

"iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6112 -j DNAT --to-destination 192.168.1.1"

Det ser ut til aa fungere, ref utskriften fra "iptables -t nat -L" over men sikker er jeg ikke.
Avatar billede langbein Nybegynder
05. august 2002 - 01:21 #53
Metoden med aa detekte ip adressen og saa preroute paa basis av dette er jo ellers uansett "den safe og korrekte" og mit alternativ eventuelt et slags "shortcut" eller "tjuvtriks", i forhold til dette (hvis det fungerer).

Synes ellers begge de to maatene for autodetektig av ekstern ip adresse ser baade veldig interresante og nyttige ut.
Avatar billede dank Nybegynder
05. august 2002 - 01:28 #54
>LK: "Der er INGEN grund OVERHOVEDET til at skrive:
grep ".*addr"

ok :)

Langbein: Jeg kan desværre ikke teste forslaget dit :| Sorry!
Avatar billede langbein Nybegynder
05. august 2002 - 01:35 #55
Avatar billede langbein Nybegynder
21. august 2002 - 09:14 #56
Antakelsen om at man kunne skippe hele den eksterne ip adresse angivelsen ser ut til å være korrekt. Har testkjørt. Eksempel:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5800 -j DNAT --to-destination 192.168.0.2
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester