Acties:
  • 0 Henk 'm!

  • Rensjuh
  • Registratie: Juli 2007
  • Laatst online: 12:43
Beste,

Op het werk is er, in een testruimte, een internet verbinding met een x aantal publieke IP adressen.
Het IP adres xxx.xxx.xxx.10 is in gebruik door onze router, een server waar Ubuntu op draait en die de DHCP verzorgt voor de computers in de testruimte.

Nu heb ik sinds enkele dagen een extra server er bij die ik wil gaan gebruiken als een webserver.
Voor deze webserver wil ik het adres xxx.xxx.xxx.14 gaan gebruiken.
Nu zit ik met een uitdaging, namelijk om al het verkeer door de Ubuntu router te laten routeren naar het netwerk, behalve de requests naar xxx.xxx.xxx.14, deze moeten geforward worden naar 10.10.10.10, dit is het interne IP adres van de webserver.

Voor ik de webserver had, gebruikten ik voor de routering het volgende in iptables:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Generated by iptables-save v1.4.21 on Tue Mar 10 11:09:24 2015
*nat
:PREROUTING ACCEPT [323:23056]
:INPUT ACCEPT [59:6795]
:OUTPUT ACCEPT [31:2677]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth5 -j MASQUERADE
-A POSTROUTING -o eth2 -j MASQUERADE
COMMIT
# Completed on Tue Mar 10 11:09:24 2015
# Generated by iptables-save v1.4.21 on Tue Mar 10 11:09:24 2015
*filter
:INPUT ACCEPT [278:36336]
:FORWARD ACCEPT [18603:9408689]
:OUTPUT ACCEPT [105:12060]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Tue Mar 10 11:09:24 2015


Echter voor het routeren van alle requests voor xxx.xxx.xxx.14 naar 10.10.10.10 moet er wat bij komen.
Hier loop ikvast.
Het volgende heb ik geprobeerd:
code:
1
2
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.14 -j DNAT --to 10.10.10.10
iptables -t nat -A POSTROUTING -s 10.10.10.10 -j SNAT --to-source xxx.xxx.xxx.14

Echter krijg ik hiermee niet voor elkaar dat ik vanuit het internet op de webserver kan komen.
D.m.v. de eerste regel (de PREROUTING) krijg ik het wel voor elkaar om vanuit het interne netwerk requests te maken naar xxx.xxx.xxx.14.

Ergens gaat er dus iets niet goed (anders zou het wel werken...) maar ik heb geen idee wat ik niet goed doe.
Aangezien mijn Linux kennis verder ook erg beperkt is kom ik er dus ook niet uit,
eth2 is de WAN poort, eth5 is de LAN poort.

Zou iemand mij hiermee kunnen helpen?

De bedoeling is dus dat alle requests aan xxx.xxx.xxx.14 worden geforward naar 10.10.10.10.
De overige requests moeten worden behandeld zoals dat nu ook gebeurd.

Ik hoor graag wat ik fout doe en hoe ik het aan moet passen.

Alvast bedankt.

Gr.
Rens

PV Output


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Er kunnen nog wel wat zaken fout zijn. Routing tables, bvb.
Wat zegt tcpdump? Kijk tot waar het verkeer raakt.

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Nu online

Hero of Time

Moderator LNX

There is only one Legend

Als je een webserver op dat adres draait, wil je liever niet alles laten forwarden naar je webserver wat binnenkomt op .14. Je wilt dat afbakenen op 80 en 443 (eigenlijk het liefst alleen 443 natuurlijk). Zou je alles doorsturen, dan kan een bruteforce ssh aanval op je webserver plaatsvinden en dat wil je liever niet. Dat sta je op de router tenslotte ook al niet toe vanaf z'n WAN adres.

Heb je het adres .14 wel aan de router toegekend? Met 'ip address add <adres> dev eth2' kan je een adres toevoegen aan een interface, zonder dat je een alias moet maken oid. Om het on boot ook te hebben, voeg je gewoon een extra 'address' regel toe aan /etc/network/interfaces.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • DSK
  • Registratie: Februari 2001
  • Laatst online: 10-09 22:07

DSK

boeiend...

Om het geen je willen gebruiken zoals in je post moet je wel ip_forwarding aanzetten in je kernel parameters. Dat is volgens mij hetgeen ontbreekt.

in /etc/sysctl.conf het volgende toevoegen:
code:
1
net.ipv4.ip_forward = 1

en daarna
code:
1
# sysctl -p


Om zeker te zijn, zou ik ook eens je nat-table flushen in iptables (daarna natuurlijk jouw PRE- en POSTROUTING regels toevoegen)
code:
1
# iptables -t nat -F


Ipv. je POSTROUTING regel kan je ook het volgende gebruiken:
code:
1
# iptables -t nat -A POSTROUTING -j MASQUERADE

[ Voor 59% gewijzigd door DSK op 15-07-2015 09:35 ]

Blog (Linux-related)


Acties:
  • 0 Henk 'm!

  • init6
  • Registratie: Mei 2012
  • Niet online
gateway.