Ich habe zwei Fragen.
Frage 1: Mein Debian-Rechner hat die Schnittstelle eth3 mit der IP 192.168.57.28. Wenn jemand versucht, eine Verbindung zu 192.168.57.28:1234 herzustellen, wie kann ich die Anforderung auf einen anderen Computer umleiten: 192.168.57.25:80?
Frage 2: Wenn mein Debian-Rechner zwei Schnittstellen hat: eth3 mit 192.168.57.28 und ppp0 mit einer dynamischen IP und jemand versucht, eine Verbindung über ppp0 an Port 1234 herzustellen, wie leite ich die Anfrage zu 192.168.57.25:80 um?
Ich habe das versucht:
iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
echo 1 > /proc/sys/net/ipv4/ip_forward
aber es funktioniert nicht.
iptables
aber die Seite scheint im Moment nicht erreichbar zu sein.Antworten:
Okay, die Regel sieht gut aus, aber Sie müssen bedenken, dass die auf diesem Computer generierten Pakete nicht PREROUTING durchlaufen. Wenn der Computer, auf dem sich die fraglichen iptables befinden, auch seinen eigenen Datenverkehr auf dieselbe Weise umleiten muss, müssen Sie OUTPUT dieselbe Regel zuweisen. Siehe iptables-extensions DNAT, es ist sowohl in OUTPUT als auch in PREROUTING gültig.
Ein weiteres Problem ist das Filtern. Stellen Sie sicher, dass der Verkehr auch in beide Richtungen durch die Maschine geleitet wird.
Drittens müssen Sie möglicherweise auch den Verkehr zu diesem Ziel in POSTROUTING für eine Route nach Hause maskieren.
Ich kann anhand der vorhandenen Informationen nicht feststellen, wo die Pakete verloren gehen. Verwenden Sie tcpdump, um zu sehen, wohin die Pakete fliegen.
quelle