iptables & Port Forwarding

Dieses Thema im Forum "Linux-Distributionen" wurde erstellt von Diabolos, 4. Mai 2002.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Diabolos

    Diabolos Byte

    Registriert seit:
    5. August 2000
    Beiträge:
    36
    Hallo

    Ich habe da eine Frag in Sachen portforwarding. Ich habe auf meinen Router syndns installiert. Habe einen Webserver hinter dem Router eingerichtet und wollte jetzt das alle anfragen die auf den Router und Port 80 kommen auf den webserver geleitet werden. Leider bekomme ich immer die Seite gezeigt, die auf dem Router liegt und nicht die vom Webserver. Ich habe mal einen Ausschnitt aus meinen Firewallscript dem Beitrag beigefügt. Vielleicht kann mir einer helfen den Fehler zu finden.

    Danke

    Diabolo

    [...]
    # Regeln für Masqurading
    #

    iptables -t nat -P POSTROUTING ACCEPT
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o eth0 -j ACCEPT

    #
    #
    # Regeln für INPUT (Erstmal ist alles Verboten)
    #

    iptables -P INPUT DROP

    #
    #
    # Einzelnes erlauben
    #

    iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth0 -j ACCEPT

    #
    #
    # Setzen der Regeln für Output (Erst mal ist alles Verboten)
    #

    iptables -P OUTPUT DROP

    #
    #

    iptables -A OUTPUT -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o eth0 -j ACCEPT

    #
    #
    # Setzen der Regeln fürs Forwarding
    #

    iptables -P FORWARD DROP

    #

    iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

    iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

    iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 80 -j DNAT --to 192.168.10.3:80

    [...]
     
  2. Diabolos

    Diabolos Byte

    Registriert seit:
    5. August 2000
    Beiträge:
    36
    Ich Danke dir. Ich arbeite derzeit schon an einem neuen Script. Wie isch oben schon mal erwähnt hatte soll die Firewall noch einiges anders machen, was sie im mom ja auch noch nicht macht.

    THX

    cu

    Diabolo
     
  3. quereller

    quereller Kbyte

    Registriert seit:
    22. Juni 2001
    Beiträge:
    277
    Freut mich das es jetzt klappt.
    Zum test kann ich dier auch nicht helfen komme aus CH.

    Aber du solltest deine firewall noch verbessern, sieh dier bitte die links an die ich oben angegeben habe und benutze nmap oder ähnliches (von aussen!) um dein system zu scannen.

    sonst ist wieder linux schuld wenn dein lan gecrackt wird.
    :-) :-) :-)

    p.s. was auch nützlich ist: iptables -A $chain -m limit -j LOG
     
  4. Diabolos

    Diabolos Byte

    Registriert seit:
    5. August 2000
    Beiträge:
    36
    Hi

    Ich bin gerade mal zu einem Bekannte gegangen und habe von dort aus auf die Seite zugegriffen. Und ich lande wirklich bei der vom Webserver *freu*.

    Doch jetzt habe ich ein anderes Problem, wie kann ich jetzt alles testen ohne bei meinem Kolegen sitzen zu müssen. ich dacht an Call by Call, doch leider ist dies nur mit Tonline möglich und ich habe keine Lust mir mit den ihrer Software mein System zu versauen.

    kennt Ihr eine Möglichkeit das mit meiner Verbindung dennoch hinzubekommen.

    cu

    michael
     
  5. quereller

    quereller Kbyte

    Registriert seit:
    22. Juni 2001
    Beiträge:
    277
    Noch ne frage greifst du auch vom internet auf den router zu, der macht mit der konfig die ich angegeben habe nämlich nur DNAT wenn eine anfrage vom internet kommt.
    Achja du musst glaube ich noch angeben:

    iptables -A FORWARD -i eth0 -p tcp --sport 80 -s 192.168.10.3 -j ACCEPT
     
  6. Diabolos

    Diabolos Byte

    Registriert seit:
    5. August 2000
    Beiträge:
    36
    Hi

    Leider funzt das auch nicht ich bekomme immer die Seite vom Router selber angezeigt.

    Ich weiß auch nicht weiter.

    Ich kann ja mal kurz sagen was die Firewall machen soll.

    1. Die User aus dem Lan ins Internet lassen. (funzt)
    2. FTP und WWW sollen auf den Server im Lan von Internet her erreichbar sein
    3. ssh vom internet her auf den Router soll auch möglich sein.
    4. der dyndns client, soll vom Router aus ins Netzt kommen, um die IP adresse bekannt zugeben.

    Das soll sie machen und davon macht sie fast nichts (User kommen ins Internet). Irgendwie habe ich einige Probleme die so einzurichten, dass sie alles auch macht. Ich habe mich schon durch so einige Howtos und Bücher gewälzt, leider macht die Firewall nicht mal die hälfte von dem was in den Büchern steht (Scripte).

    Ich bin für jede Hilfe dankbar.

    cu

    Michael

     
  7. b_rocki

    b_rocki Byte

    Registriert seit:
    12. März 2002
    Beiträge:
    120
    Hi Michael!
    Zunächst zu 4. :
    Was soll der Parameter "-m"?
    iptables scheint ihn nicht zu kennen.
    Gleich danach müßte es heißen "--state state", wobei du für "state" durch Komma getrennt den Verbindungsstatus definieren mußt: INVALID, ESTABLISHED, NEW, RELATED. "state" bezieht sich im übrigen auf das "connection tracking" und ich frage mich was du damit willst.

    Zu 5.:
    Mit dieser Zeile wird den Clients die richtige Segment-Größe für DSL beigebracht. (Übrigens kommen nicht alle pppoe-Treiber damit zurecht!) Es würde den Router entlasten, wenn du den Clients die richtige Segment-Größe einfach vorschreibst. Angenommen sie hängen mit eth0 am Router, genügt folgendes:
    ifconfig eth0 down
    ifconfig eth0 1492 up

    Zu allem:
    Jetzt mußt du nur noch eben erklären welches Device eigentlich ppp0 ist.
    quereller z.B. denkt es handelt sich um ein Modem.
    Im übrigen müßtest du doch genau definieren, das zu deinem Webserver *alles* durchdarf und auch wieder zurück.
    ciao, b_rocki
     
  8. quereller

    quereller Kbyte

    Registriert seit:
    22. Juni 2001
    Beiträge:
    277
    Ok ev funktioniert das sonst bin ich überfragt!:

    iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    ändern in
    iptables -A FORWARD -i ppp0 -p tcp --dport 80 -j ACCEPT
    und ändere
    iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 80 -j DNAT --to 192.168.10.3:80
    in
    iptables -A PREROUTING -t nat -p tcp --dport 80 -i ppp0 -j DNAT --to 192.168.10.3:80
     
  9. Diabolos

    Diabolos Byte

    Registriert seit:
    5. August 2000
    Beiträge:
    36
    Ok

    Mal eine kurze Beschreibung des Netzwerkaufbaues. Ich habe eine ADSL Anschluss einen Router, über den einige WS aus dem Lan hinter dem Router ins Internet gehen können. Des Weitern befindet sich in dem Lan ein Server, der Web sowie FTP Dienste für Leute aus dem Internet zu verfügung stellen soll. Die Rechner aus dem Lan werden bereits Maskiert, nur das mit dem Server will noch nicht so richtig. Im Router (im mom noch ein normaler Rechner) sind zwei Ethernet karten eine fürs Lan eine für den ADSL Anschluss. Später soll ein ADSL Router von Netgear die Rolle des jetztigen Routers übernehmen.

    Michael
     
  10. quereller

    quereller Kbyte

    Registriert seit:
    22. Juni 2001
    Beiträge:
    277
    Was willst du eigentlich machen: du hast eine modem verbindung zum internet, und daran einen router hinter dem router hast du ein lan, und du möchtset die lan pc\'s maskieren.
    Ausserdem sollten alle leute die vom internet auf deine ip-addr port 80 zugreifen an den server im lan weitergeleitet werden oder?

    Oder habe ich was falsch verstanden?

    welche karten hast im router im script redest du von 2 netzwerkkarten und einer modem-karte.
     
  11. Diabolos

    Diabolos Byte

    Registriert seit:
    5. August 2000
    Beiträge:
    36
    Hi

    Zu deinen Fragen
    1. Ja
    2. Ja
    3. Ich habe es ohne versucht, funzt auch.
    4. Ich habe keine Ahnung ich habe das von jemandem bekommen, für die Namensauflösung. Hab ich aber auch schon rausgenommen. Funzte nicht wirklich.
    5. Ok kann ich dir auch nicht sagen habe ich von der gleichen Person bekommen.
    6. Habe ich einer englischen Howto entnommen versteh es so das Pakete über -i reinkommen und -o rausgehen.
    7.Nein ich habe ein Klasse C Netz.

    cu

    Diabolo
     
  12. quereller

    quereller Kbyte

    Registriert seit:
    22. Juni 2001
    Beiträge:
    277
    Hallo,

    die einträge für masquerading und dnat sehen gut aus.

    1. hast du /proc/sys/net/ipv4/ip_forward aktiviert?
    2. hast du modprobe iptable_nat
    3. iptables -t nat -P POSTROUTING ACCEPT
    iptables -t nat -A POSTROUTING -o eth0 -j ACCEPT
    brauchst man dass ???????????
    4. iptables -A INPUT -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A OUTPUT -o ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    schliesst sich das nicht aus keiner der fälle wird je eintreffen?
    5. Was ist das, dass kenne ich einfach nicht TCPMSS --clamp-mss-to-pmtu
    6. iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
    -i eth1 -o eth0 ???
    wie wärs mit dem
    iptables -A FORWARD -p $PROTO -d $REMOTEHOST --dport $LOCALPORT -j ACCEPT
    7. iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 80 -j DNAT --to 192.168.10.3:80 hast du hier (im forum) extra eine klasse c adresse angegeben?

    noch ein bisschen literatur:
    http://netfilter.samba.org/unreliable-guides/NAT-HOWTO/NAT-HOWTO.linuxdoc.html#toc4
    http://online.securityfocus.com/cgi-bin/sfonline/unix_topics.pl?topic=fwrules

    [Diese Nachricht wurde von quereller am 05.05.2002 | 15:04 geändert.]
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen