Verzweiflung mit Apache und 2 Interfaces

Hi !
Jetzt musst ich eure Hilfe schon sehr lange nichtmehr beanspruchen.
Aber jetzt dreh ich langsam durch.
Ich habe einen Webserver mit 2 NICs drinn. Eine fürs lokale netz und eine fürs inet.
Ins lokale netz funktionierts prima. Nur nach außen liefert der Apache (1.3.20) nicht aus. Die Routen sind so gesetzt, das
Alles was über IP 1 kommt auch über Interface1 beantwortet wird und
entsprechend auch das gleiche für Interface2 (inet).
In der httpd.conf habe ich jeweils es mit dem Listen und dem BindAddress-Tag probiert. Trotzdem sagt Mozilla wenn ich vom Inet auf den Server will, das dieser mir den Verbindungsaufbau verweigert.
der Internetexplorer kann die Seite einfach nicht öffnen.
Der Server lässt sich aber pingen und mit ssh drauf zugreifen.

Wenn ich mich auf dem Server einlogge und ein tcpdump mache, dann sehe ich auch, dass sich mein Client und der Server dauernd
Acknowledges senden. Aber Meine Website wird trotzdem nicht
Aufgebaut.

Hat jemand Erfahrung mit sowas ???
Ich weiß echt nichtmehr weiter.
Achja, der Server lässt sich auch vom Inet aus nur mit IP ansprechen.

cu
Markus

Ich habe einen Webserver mit 2 NICs drinn. Eine fürs lokale
netz und eine fürs inet.

OK…

Ins lokale netz funktionierts prima. Nur nach außen liefert
der Apache (1.3.20) nicht aus. Die Routen sind so gesetzt, das
Alles was über IP 1 kommt auch über Interface1 beantwortet
wird und
entsprechend auch das gleiche für Interface2 (inet).

Wie, „Routen sind gesetzt“? Ich muss hier bei meinem Rechner, ebenfalls mit zwei NICs keinerlei Routen von Hand einstellen.
Neben der default Route hab ich nur noch zwei, jeweils für jedes Subnetz eine. (Vielleicht hast du da was „verroutet“? :wink:

In der httpd.conf habe ich jeweils es mit dem Listen und dem
BindAddress-Tag probiert. Trotzdem sagt Mozilla wenn ich vom
Inet auf den Server will, das dieser mir den Verbindungsaufbau
verweigert.

Also grundsätzlich: Wenn du an der Konfiguration nichts änders, horcht Apache standardmäßig auf _allen_ Interfaces.
Listen und BindAddress sind eigentlich dafür gedacht, dieses Verhalten in irgendeiner Form zu beschränken.
Prüf mal mit netstat -nalt nach, ob da zwei Einträge der Form
XXX.XXX.XXX.XXX:80 bzw. -:443 vorkommen.

Der Server lässt sich aber pingen und mit ssh drauf zugreifen.

Das hat nix zu sagen.

Wenn ich mich auf dem Server einlogge und ein tcpdump mache,
dann sehe ich auch, dass sich mein Client und der Server
dauernd
Acknowledges senden. Aber Meine Website wird trotzdem nicht
Aufgebaut.

Das hat auch nix zu sagen.

Hat jemand Erfahrung mit sowas ???
Ich weiß echt nichtmehr weiter.
Achja, der Server lässt sich auch vom Inet aus nur mit IP
ansprechen.

Wie sollte das auch anders sein, wenn du mit dynamischer IP im Netz unterwegs bist? Oder hast du eine Standleitung und einen entsprechenden DNS Eintrag bei T-Online oder wo du bist?

Gruss,
Andreas

Wie, „Routen sind gesetzt“? Ich muss hier bei meinem Rechner,
ebenfalls mit zwei NICs keinerlei Routen von Hand einstellen.
Neben der default Route hab ich nur noch zwei, jeweils für
jedes Subnetz eine. (Vielleicht hast du da was „verroutet“? :wink:

Ich denke die routen stimmen, wie du oben beschrieben hast für jedes netz eine. Also die 2 verschiedenen Netze über jeweils eine andere NIC. Ich habe noch ein Programm laufen, das seinen eigenen built-in Webserver benutzt. Dieses Programm/Page kann ich auch
über das Internet ansprechen

Also grundsätzlich: Wenn du an der Konfiguration nichts
änders, horcht Apache standardmäßig auf _allen_ Interfaces.
Listen und BindAddress sind eigentlich dafür gedacht, dieses
Verhalten in irgendeiner Form zu beschränken.
Prüf mal mit netstat -nalt nach, ob da zwei Einträge der Form
XXX.XXX.XXX.XXX:80 bzw. -:443 vorkommen.

Jupp, ich hab an Port 80 an beiden IPs ein Listen.

Die IP fürs Inet ist scharf und ändert sich nicht.

Viele Grüße
Markus

Moin Markus,

da pingen und ssh auf die externe IP geht ist das routing IO.

Ich nehme an das du deinen (Server) auch als Router gebrauchts und somit das IP forwarding eingeschaltet ist. Wenn das der Fall ist versuche mal die exterene IP von innen aus anzusprechen. Ich vermute mal das du dann auch eine Verbindung zum Port 80 bekommst.
Wenn ich richtig vermute dann schau doch mal in der /etc/hosts.allow und der /etc/hosts.deny nach.
Sollte das nichts bringen schau dir mal die ACL’s in der httpd.conf an.

Ansonster versorge uns doch mal mit mehr Infos.

polar,wieder\ nüchtern

Ins lokale netz funktionierts prima. Nur nach außen liefert
der Apache (1.3.20) nicht aus.

den moechtest du dringend updaten, sonst hast du bald besuch…

Die Routen sind so gesetzt, das
Alles was über IP 1 kommt auch über Interface1 beantwortet
wird und
entsprechend auch das gleiche für Interface2 (inet).
In der httpd.conf habe ich jeweils es mit dem Listen und dem
BindAddress-Tag probiert. Trotzdem sagt Mozilla wenn ich vom
Inet auf den Server will, das dieser mir den Verbindungsaufbau
verweigert.
der Internetexplorer kann die Seite einfach nicht öffnen.
Der Server lässt sich aber pingen und mit ssh drauf zugreifen.

dann stimmt das routing wohl, falls es wirklich aus dem internet und nicht nur aus diesem segment war.

Wenn ich mich auf dem Server einlogge und ein tcpdump mache,
dann sehe ich auch, dass sich mein Client und der Server
dauernd
Acknowledges senden. Aber Meine Website wird trotzdem nicht
Aufgebaut.

dann mach doch mal folgendes

tcpdump -i /dev/ethX -s 1500 -w test host

mache einen request auf http://deine-ip/ und breche den tcpdump dann ab. ein

strings test | more

zeigt dir (oder mir) dann, was da passiert. alternativ koennte man natuerlich auch ethereal benutzen, sei es, um selbst zu sniffen, oder auch nur den dump schoen auszuwerten…

Hat jemand Erfahrung mit sowas ???

naja, ein bisschen schon…

ein telnet auf port 80 deines webservers mit anschliessender eingabe von GET / HTTP/1.0 ist auch immer sehr erhellend.

ich vermute dass der apache keine virtual-hosts hat und als gemeinsamer hostname die innere ip drin steht. wenn man dann von aussen einen zugriff auf ein directory (hier server-root) macht, bekommt man einen redirect auf das innere interface, was, falls die ganze dual-homed konfig irgendeinen sinn machen soll, von aussen so ohne weiteres nicht erreichbar ist.

loesung siehe apache-doku stichwort VirtualHost

joahim

Hi Joachim,

Ins lokale netz funktionierts prima. Nur nach außen liefert
der Apache (1.3.20) nicht aus.

den moechtest du dringend updaten, sonst hast du bald
besuch…

Guter Tip.:smile:

Ich bin mit Markus per eMail in contact und sowie es im Moment aussieht liegt es an der SuSE Firewall. Sprich die Ports sind nicht auf.

Mal sehn obs wirklich so ist. Ich warte noch auf Markus antwort.

cu

polarbear

Ich bin mit Markus per eMail in contact und sowie es im Moment
aussieht liegt es an der SuSE Firewall. Sprich die Ports sind
nicht auf.

Mal sehn obs wirklich so ist. Ich warte noch auf Markus
antwort.

warum erwaehnt er solche „kleinigkeiten“ nicht in der frage?

viele gruesse an den kummerkasten,

joachim, der heute krank ist…

Hi Alle zusammen !
Erstmal allgemein vielen Dank für die vielen Tips. Muss das ganze ersmal verarbeiten. Da ich das alle mehr oder weniger „nebenher“
mach und demnächst noch in Urlaub fahre, hab ich derzeit ein bischen
Stress. Zudem bin ich kein alter hase sondern voll in der Lernphase.

warum erwaehnt er solche „kleinigkeiten“ nicht in der frage?

musst erstmal drauf kommen :wink:

viele gruesse an den kummerkasten,

hab mich bemüht die mein Prob nach bestem wissen und gewissen zu schildern.

joachim, der heute krank ist…

gute besserung

Wie gesagt, ich bearbeit das alles und melde mich notfalls nach dem urlaub (fängt erst in 1 1/2 Wochen an -> hab also noch ein bischen Zeit) mit nem neuen Thrad zurück.
Desweiteren bin ich noch mit polarbear in kontakt.

cya
Markus