Ich habe einen VPS, der über zugänglich ist hello.com
, auf dem Ubuntu läuft, und ein minimales Python-Skript, das einige HTML-Inhalte bereitstellt. Das Python-Skript lauscht auf Port 8069
. hello.com:8069
funktioniert wie erwartet, aber ich muss auch von Port aus auf das Python-Skript zugreifen hello.com:80
.
Ich habe einige Nachforschungen angestellt und anscheinend ist das Abhören von Ports unter 1000 nur mit Root möglich, was aus Sicherheitsgründen keine Option ist. Die einzige echte Lösung, die ich gefunden habe, ist die Portumleitung von iptables.
Ich habe versucht, eine REDIRECT-Regel in der NAT-Tabelle einzurichten, aber beim Aufrufen hello.com:80
wird immer noch ein Timeout-Fehler angezeigt.
Hier ist meins/etc/iptables/rules.v4
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8069
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p tcp -m tcp --dport 22-j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8069 -j ACCEPT
COMMIT
Ich bin ein paar Anleitungen gefolgt und habe Folgendes eingestellt net.ipv4.conf.eth0.forwarding=1
. net.ipv4.ip_forward=1
Übersehe ich etwas?
Serverdetails:
[email protected]:/# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
[email protected]:/# iptables -V
iptables v1.4.21
[email protected]:/# ufw version
ufw 0.34~rc-0ubuntu2
Copyright 2008-2012 Canonical Ltd.
[email protected]:/# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 2067 0 0 0 1879 0 0 0 BMRU
lo 65536 0 637 0 0 0 637 0 0 0 LRU