Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : selektive Portforwards mit iptables


Tyrann
2013-09-30, 12:17:08
ich möchte dass iptables anhand der Quelladresse die Zieladresse auswählt

Zur Zeit gibts es einen normalen Portforward der durch eine Whitelist beschränkt ist.

zugriff von extern auf IP: 5.6.7.8 port 8333 (firewall)
zur Zeit: externe IPs 1.1.1.1 + 2.2.2.2 + 3.3.3.3 dürfen auf internen server 192.168.1.100:8333

ich möchte jetzt folgendes

1.1.1.1 -> 5.6.7.8:8333 -> 192.168.1.1:8333
2.2.2.2 -> 5.6.7.8:8333 -> 192.168.1.2:8333
3.3.3.3 -> 5.6.7.8:8333 -> 192.168.1.3:8333

wichtig ist mir dass die externe IP und der Port beibehalten wird.

ist das möglich?

/dev/NULL
2013-09-30, 13:51:24
kurzes google und dann freihand:
A INPUT -i eth1 -p tcp --syn -s 1.1.1.1/32 --dport 8317 -m state --state
NEW -j ACCEPT
A INPUT -i eth1 -p tcp --syn -s 2.2.2.2/32 --dport 8317 -m state --state
NEW -j ACCEPT
A INPUT -i eth1 -p tcp --syn -s 3.3.3.3/32 --dport 8317 -m state --state
NEW -j ACCEPT
-A PREROUTING -i eth1 -p tcp --syn -s 1.1.1.1/32 --dport 8333 -j
DNAT --to-destination 192.168.1.1:8333
-A PREROUTING -i eth1 -p tcp --syn -s 2.2.2.2/32 --dport 8333 -j
DNAT --to-destination 192.168.1.2:8333
-A PREROUTING -i eth1 -p tcp --syn -s 3.3.3.3/32 --dport 8333 -j
DNAT --to-destination 192.168.1.3:8333

so könnte ich mir das vorstellen..

Tyrann
2013-09-30, 14:33:20
kurzes google und dann freihand:
A INPUT -i eth1 -p tcp --syn -s 1.1.1.1/32 --dport 8317 -m state --state NEW -j ACCEPT
A INPUT -i eth1 -p tcp --syn -s 2.2.2.2/32 --dport 8317 -m state --state NEW -j ACCEPT
A INPUT -i eth1 -p tcp --syn -s 3.3.3.3/32 --dport 8317 -m state --state NEW -j ACCEPT
-A PREROUTING -i eth1 -p tcp --syn -s 1.1.1.1/32 --dport 8333 -j DNAT --to-destination 192.168.1.1:8333
-A PREROUTING -i eth1 -p tcp --syn -s 2.2.2.2/32 --dport 8333 -j DNAT --to-destination 192.168.1.2:8333
-A PREROUTING -i eth1 -p tcp --syn -s 3.3.3.3/32 --dport 8333 -j DNAT --to-destination 192.168.1.3:8333

so könnte ich mir das vorstellen..
danke erstmal, aber warum port 8317 beim accept?

ich mus das wohl vorerst in einem testnetz ausprobieren

/dev/NULL
2013-09-30, 15:18:48
copy paste fehler.. 8333 natürlich

Würde es auch definitiv nicht an einem Remote System versuchen..
habs mir halt zusammengepuzzelt, meine letzten IPTables versuche sind schon ne Weile her.
Aber mit desitnation NAT/portforwarding sollte man eigentlich was googlen können.