IPTABLES, portje 80 forwarden naar pc

Pagina: 1
Acties:

  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
Oke, ik weet dat het eigenlijk een rtfm vraag is maar ik zit nu al een paar avonden te klooien en het wil maar niet lukken :(

De bedoeling is om bepaalde portjes door te sturen naar pc's in het netwerk. Voorlopig even alleen portje 80 naar een webservertje.

na deze zeer duidelijke howto http://www.nedlinux.nl/~bart/index.php?page=3 10x te hebben gelezen en veel van deze http://www.linuxguruz.org/iptables/ voorbeeldjes getest nog steeds geen suc6 :(

Ik heb een script geschreven met een hoop instel mogelijkheden enzo maar voor de leesbaarheid even ingekort naar de regels die hier betrekking op hebben.

Volledige script staat hier: http://www.xs4all.nl/~mb2dhg/wall7.txt
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$LAN = eth0, $WEB is ppp0 internet verbinding en mijn subnet is 192.168.16.0
echo Nat aanzetten.
iptables -t nat -F PREROUTING          #Behandel incoming packets
iptables -t nat -F POSTROUTING     #Behandel outgoing packets

iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j

#Deze regel is om portje 80 open te zetten voor internet. 
iptables -A INPUT -i $WEB -m state --state NEW -p tcp -m multiport --dport 80 -j ACCEPT

echo OK Allow incoming op $LAN en loopback.
iptables -A INPUT -i $LAN  -m state --state NEW -j ACCEPT
iptables -A INPUT -i lo    -m state --state NEW -j ACCEPT

iptables -A POSTROUTING -t nat -s 192.168.16.0/24 -j MASQUERADE

echo OK Enable transparant proxy port 80.
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port 3128

echo OK Firewall FORWARD rules - Wat mag vanaf het LAN naar internet.
iptables -P FORWARD DROP   #Standaard policy is drop all packets

echo OK Allow traffic vanaf internet naar lan voor bestaande connecties 
iptables -A FORWARD -i $WEB -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT


#van alles getest maar werkt niet. 
#hier moet een regel komen op inkomende http requests vanaf internet
#door te sturen naar een ip adres in het netwerk.
iptables -t nat -A PREROUTING -p tcp -i $WEB  --dport 80 -j DNAT --to-destination 192.168.16.1:80

Verwijderd

#/sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.4.10:80
#/sbin/iptables -t nat -A PREROUTING -i eth1 -p udp --dport 80 -j DNAT --to 192.168.4.10:80

  • QyRoZ
  • Registratie: November 2000
  • Laatst online: 29-06 09:33

QyRoZ

Just Q it!

Nee, die had ik niet geweten ;)

Verwijderd

omdat jij een nepnerd ben :)

  • Disciplus-Simplex
  • Registratie: September 2001
  • Laatst online: 28-05 00:58

Disciplus-Simplex

altijd wakker....

Hoe weet je dan dat het niet werkt.
-Connect je van binnen naar buiten om vervolgens weer bij je PC terug te keren?
-Heb je getest via een online portscanner of je poort 80 open is?
-Heb je al een buitenstaander laten connecten met jouw bak

Probeer anders alleen even die onderste regel en delete die INPUT DROP policy even voor de zekerheid --> iptables -D INPUT DROP

Verder is het voor de leesbaarheid heel prettig om userdefined chains te maken die verschillende onderdelen voor hun rekening nemen:
-verkeer van buiten naar je linuxdoos
-verkeer van je linuxdoos naar buiten
-verkeer van intern naar je linuxdoos
-verkeer van buiten naar intern
enzovoort maar dat moet je zelf maar eens uitzoeken want dit is wel een beetje rommelig waardoor je snel gaten laat vallen in je script en niet structureel kunt werken naar mijn mening. Beetje hetzelfde als een groot project programmeren zonder UML oid.

Ik dien de wetenschap en put daar vreugde uit.......


  • Buffy
  • Registratie: April 2002
  • Laatst online: 26-12-2024

Buffy

Fire bad, Tree pretty

Ik vermoed dat je probleem zit in het feit dat je alleen established en related verbindingen van $WEB naar $LAN doorlaat op je FORWARD chain.
Je zult ook de NEW redirected packetjes naar 192.168. 16.1:80 moet doorlaten.

Tevens kan je niet je op deze manier niet van binnen uit testen omdat je alleen verbindingen redirect die via de $WEB interface binnen komen.
Mocht je ook de packetjes van de LAN gaan redirecten dan moet je deze in de POSTROUTING chain ook nog eens masqueraden anders zal je webserver rechtstreeks met de client op de lan proberen te communiceren wat niet lukt.

-edit-

iets ala:

code:
1
iptables -A FORWARD -i $WEB -o $LAN -m state --state NEW -p tcp -d 192.168.16.1 --dport 80 -j ACCEPT

That which doesn't kill us, makes us stranger - Trevor (AEon FLux)
When a finger points at the moon, the imbecile looks at the finger (Chinese Proverb)


  • Thijs B
  • Registratie: Augustus 1999
  • Niet online
hmm, kan nog steeds niet volgen wat er nu echt mis gaat.
Maar het klopt dat het in de forward rules zit want als ik forward policy op accept zet werkt het wel, dit is natuurlijk niet de bedoeling.
De transparant proxy zat ook in de weg dus die heb ik ff tijdelijk uitgezet.

ik test alles met een remote pc op mijn werk (pcanywhere) dus het testen is geen probleem.
maarja morgen maar weer verder klooien :(
Pagina: 1