iptables -t nat -A OUTPUT funktioniert nicht...

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
gheift
Beiträge: 4
Registriert: 07.01.2004 19:33:57

iptables -t nat -A OUTPUT funktioniert nicht...

Beitrag von gheift » 09.01.2004 12:05:41

Ich habe folgendes IP-Tables Script

Code: Alles auswählen

#!/bin/bash
INET_HOST=123.45.67.89

function ipt_accept_all() {

    # Alles löschen
    iptables -F
    iptables -t nat -F
    iptables -t mangle -F

    # Filter auf ACCEPT
    iptables -P INPUT   ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT  ACCEPT

    # NAT auf ACCEPT
    iptables -t nat -P PREROUTING  ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    iptables -t nat -P OUTPUT      ACCEPT

    # Mangle auf ACCEPT
    iptables -t mangle -P INPUT   ACCEPT
    iptables -t mangle -P FORWARD ACCEPT
    iptables -t mangle -P OUTPUT  ACCEPT

    iptables -t mangle -P PREROUTING  ACCEPT
    iptables -t mangle -P POSTROUTING ACCEPT
}

function ipt_masq_eth0() {
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
}

function ipt_ssh-server() {
    SSH_HOST=192.168.10.88
    SSH_PORT=22

    INET_PORT=22000

    iptables -t nat -A PREROUTING -p tcp -d $INET_HOST --dport $INET_PORT \
        -j DNAT --to-destination $SSH_HOST:$SSH_PORT

}

function ipt_web-server() {
    WEB_HOST=192.168.10.88
    WEB_PORT=8080

    INET_PORT=80

    iptables -t nat -A PREROUTING -p tcp --dst $INET_HOST --dport $INET_PORT \
        -j DNAT --to-destination $WEB_HOST:$WEB_PORT

    iptables -t nat -A POSTROUTING -p tcp --dst $WEB_HOST --dport $WEB_PORT \
        -j SNAT --to-source 192.168.10.1

    iptables -t nat -A OUTPUT -p tcp --dst $INET_HOST --dport $INET_PORT \
        -j DNAT --to-destination $WEB_HOST:$WEB_PORT
}

ipt_accept_all
ipt_masq_eth0
ipt_ssh-server
ipt_web-server
Wie man sieht, leite ich den Port 80 vom Router an einen Internen WebServer weiter, das funktioniert jetzt auch von überall, von außen und von innen...nur vom Router selber funktioniert das leider nicht...und hier brauch ich das auch, da mein Squid-Proxy ja auch auf die Seite über die "externe" Adresse zugreifen können muss...

Ich hab das genau so gemacht, wie das hier steht:
http://iptables-tutorial.frozentux.net/ ... DNATTARGET

Weis jemand rat??

gHeift

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 09.01.2004 13:16:56

Es gibt im NAT Table (-t nat) keine Chain mit Namen OUTPUT. Ohne das -t nat sollte es gehen... Was soll die Zeile eigentlich bewirken?

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Benutzeravatar
spiffi
Beiträge: 1128
Registriert: 09.08.2003 19:02:27

Beitrag von spiffi » 09.01.2004 13:23:09

Ähm, natürlich gibts ne OUTPUT Chain in der NAT-Table.
Die Zeile sorgt dafür, daß Pakete, die von der Firewall ausgehen auch geDNATet werden. Die laufen nämlich nicht durch die PREROUTING-Chain.
Wirf doch einfach mal einen Blick auf den Link, den gheift gepostet hat. Da ist das alles sehr schön erklärt.

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 09.01.2004 13:30:00

OOps...

Aber um genau zu sein: auf meinem Router ist die OUTPUT Chain im NAT Table *leer*. Alle NAT Kommandos hänge in PREROUTING und POSTROUTING enthält die MASQUERADE Anweisung. Output ist, wie schon gesagt, unter NAT leer. (Nicht im normalen Table...)

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Antworten