Mac-Mini als Webserver - verweigert den Dienst

Hallo,

ich bräuchte einen Rat, da an der Grenze meiner Fähigkeiten und Geduld angekommen. :wink:

Ich habe eine Mac-Mini, Core Duo, 1,66 GHz, Mac OS X 10.4.9 mit 2 GB RAM. Dieser ist Teil eines kleinen LAN, bestehend aus einem MacBook und einem Windows-PC. Wir alle sitzen hinter einem Router von CNet, CNIG 914.

Ich hab auf meinem Mini mir Mamp installiert, für einen kleinen Webserver. Nun möchte ich einer einzigen Person, die aus dem Internet - also nicht Teil des LAN - zugreift, erlauben, ab und an diesen Webserver zu sehen.

Mamp bietet zwei Portkonfigurationen, auf beiden gelingt es mir lokal den Server zu sehen, aber nicht der Person von aussen. Ich gebe ihr meine momentane, expterne IP und es funktioniert nicht.

Gut, dachte ich, liegt wohl an Mamp, der kann das nicht. Daraufhin hab ich Xampp installiert, auch dort ging es nicht, auch nicht mit anderen ports als dem üblichen 80. Ich hab 8888 probiert, 8080 und 1214, ich weiß, der letztere ist für Kazaa, das hab ich nicht installiert, dachte also, der müsste frei sein.

Ich hab websharing aus, weil ich weiß, dass die Konfiguration dann auf den internen Apache zugreift. Ich hab es probiert mit Firewall, der internen, abschalten und ich hab mich aus dem DHCP ausgeklinkt, manuell konfiguriert. Es hat alles nichts gebracht.

Ich benutze Shiira als browser, der macht manchmal Mucken. Deswegen das gleiche probiert in Safari und dem neuen Opera.

Meine nächste Überlegung war, es liegt am Router. Ich hab Portmapping eingerichtet, die o.g. Ports auf meine interne IP umgeleitet (mit und ohne DHCP). Als das nichts brachte, hab ich zusätzlich portforwarding gemacht, mir die Ports rausgesucht, die üblich sind und einzeln eingegeben. Vergeblich.

Als nächstes hab mich direkt, über PPPoE mit dem DSL-Netz verbunden (ich bin bei Versatel, DSL 6000). Auch hier kein Erfolg, obwohl ich mir über portforward.com die genaue Anleitung noch mal durchgelesen hatte.

Ich war sogar so leichtsinnig und hab bei der direkten Verbindung noch die Firewall ausgeschaltet (nur ganz kurz ;)) ). Auch hier das gleiche, der von außen zugreifen will, bekommt nicht mal eine Fehlermeldung, es geht einfach gar nichts.

Ich hab online meine ports scannen lassen, 80 und der für https wurde als geschützt erkannt, nicht gesperrt oder sowas.

Fällt jemand von euch bei der Beschreibung auf, welchen Denkfehler ich mache? Ich sitze seit mehreren Tagen an dem Problem, hab hunderte von Posts gelesen in Foren, auch hier. Ich nutze Mac seit Jahren, ich WEISS einfach, dass es gehen muss und dass es nicht zu kompliziert sein dürfte. Ich komm nicht drauf … :frowning:

Danke

Kaleema

Schritt 0: Lokal testen (geht ja bei Dir).
Schritt 1: vom LAN aus testen: geht vom einem anderen Rechner aus 192.168.1.100:80 (falls das die IP des Webserver-Macs sein sollte)?
Schritt 2: Router so konfigurieren, dass Port 80 von außen auf den Mac weitergeleitet wird.
Schritt 3: Glücklich sein. :wink:

Ich schätze, Du steckst irgendwo zwischen Schritt 1 und 3… Kannst Du da mal noch ein paar Ergebnisse (v.a. zu Schritt 1) posten?

Hm, PFW war auch mein Gednake, aber er schreibt doch, dass er das schon durch hätte und sogar schon direkt am DSL Modem hing, sprich ohne NAT…

Hallo,

@Joerg
ich hatte eben probiert über die dose. hab meine interne ip genommen, port 8080, da steht der server auch. es geht nicht, die fehlermeldung war “zeitüberschreitung beim verbindungsaufbau”, was auf dieser dose die übliche fehlermeldung ist, wenn eine site nicht existiert.

schritt 2 hab ich gemacht, schritt 3 steht noch aus also *g

kaleema

Oh, vielleicht ist der Apache nur an die interne IP gebunden?
Kontrollier doch mal die Adresse bei “Listen” in der apache.conf? Ggf. einfach localhost hinzufügen :smile:

Zeitüberschreitung klingt jetzt irgendwie nach Firewall Problemen.

@GMan
eine apache.conf findet mein spotlight nicht. nur eine apache//TestConfig.3.

ich hab eben in httpd.conf was geändert. dort stand bisher:

Listen:8080

ich hab vor dem Doppelpunkt nun meine interne, vom router vergebene IP dort eingetragen. das hat leider nichts gebracht.

könntest du mir genauer erklären, was ich suchen muss, bitte? in dem oben erwähnten TestConfig.3 gibt es nichts mit bind_adress.

wenn ich den apache starte über das panel bekomme ich folgende meldung:

“Warning: World-writable config file ‘Applications/xampp/etc/my.cnf’ is ignored.” bedeutet das was für mein problem?

danke für die geduld :smile:

kaleema

Infos zum Binding gibts hier.
Hmmm, dann weiß ich auch grad keinen guten Rat…
Kann dann ja eigentlich wirklich nur noch am Port-Forwarding oder einer Firewall Einschränkung liegen.
(Hast du mal die Einstellungen am Mac unter Systemeinstellungen/ Sharing / Firewall geprüft?)

Also, gerade mal geschaut: die Jungs von MAMP wollen für den Zugriff via Ethernet ihre Pro-Version verhökern. Der Xampp müsste das können, den habe ich aber gerade nicht greifbar… Damit (und mit der richtigen FW-Konfiguration) müsste man eigentlich vom LAN aus drauf kommen…

Hmm bei mir klappt das mit dem IP Forwarding auf meinen Server und ich hab keine Proversion gekauft… oder wie meinst du das jetzt?

@GMan
ich prüfe die firewall ständig *lach
es geht halt auch nicht, wenn sie ganz abgeschaltet ist. worauf speziell müsste ich denn achten?

@joerg
ich hab im router-menü einen punkt “Nat” (exakt so geschrieben) und dort ein Untermenü “Virtual Server”. Dort gibts n popup-menü, wo diverse Ports voreingestellt sind, z.B. web oder ftp. ich hab von denen nur 80, also web ausgewählt. die anderen ports hab ich hingeschrieben, von Hand in ein Feld das “Mapping Ports” heißt. Dazu die interne IP und enable angeklickt, mit apply.

Dann gibts es im Router eine Firewall, Untermenü dort “Portfilter”. Dort kann ich unter “forwarding the following ports only” Portummern eingeben, diese allerdings nicht einer IP zuordnen.

Auch letzteres hatte ich probiert, wahlweise mit Portmapping an und aus. Keine Variante hat funktioniert. Und immer noch, egal was ich auswechsle, es geht weder vom LAN aus noch vom I-Net.

@Marduk
ich denke, es hat nicht mit xampp oder mamp zu tun. beides funktioniert nicht. muss also entweder router oder firewall oder beides sein.

Kaleema

edit:
noch was vergessen, im log der firewall stand das hier:
May 25 15:31:21 mein-computer ipfw: 12190 Deny TCP richtige ip vom Zugreifer:33836 192.168.1.140:8080 in via en0

kann man damit was anfangen, erkennen, warum das “deny”?

Langsam: Du musst erst vom LAN aus auf den Webserver zugreifen können. Wen das nicht geht, kannst Du am Router einstellen, dass er Dir ein Steak toastet, NAT macht, Port forwarding, ganz egal - das kann dann nicht tun.

Der FW-Log-Eintrag besagt genau das: dass ein Zugriff auf Port 8080 geblockt wurde.

Ich würde also xampp empfehlen (der ist per Default auf Port 80 konfiguriert), dann versuche, aus dem LAN drauf zu kommen, (vorher Port 80 in der FW freigeben) und DANN geht es an den Router.

Ich habe also am ganz falschen Ende der Wurst angefangen. Denn als das LAN nicht ging, dachte ich mir, es wäre unwichtig, da ich vom LAN aus eh keinen Zugriff brauche. *hmpf

Das LAN geht, insoweit, dass wir über das Austauschverzeichnis Daten hin und her schieben können. Was allerdings nicht geht - oder wo ich wahrscheinlich was falsch mache - ist der Zugriff auf meine Website. Einer meiner gestrigen Versuche wurde im Firewall-Log so protokolliert:

May 26 00:37:46 mein-computer ipfw: 12190 Deny TCP 192.168.1.27:3873 192.168.1.35:445 in via en0

Hier wurde also der Port 445 geblockt?

Ich hab auf deinen Hinweis nun rumgelesen über die interne Firewall. 12190 ist eine Firewallregel, die bei mir ganz am Ende in der Reihe der Regeln steht, d.h., zum Schluss erst abgearbeitet wird. Ich habe mit sudo ipfw list mir die Regeln angeschaut. Es gibt noch mehr “Denys”, nämlich diese:

Oder vielleicht ganz sinnvoll, ich quote mal meine Regeln, wie sie jetzt gerade aussehen:

02000 allow ip from any to any via lo
02010 deny ip from 127.0.0.0/8 to any in
02020 deny ip from any to 127.0.0.0/8 in
02030 deny ip from 224.0.0.0/3 to any in
02040 deny tcp from any to 224.0.0.0/3 in
02050 allow tcp from any to any out
02060 allow tcp from any to any established
02065 allow tcp from any to any frag
02070 allow tcp from any to any dst-port 548 in
02080 allow tcp from any to any dst-port 427 in
02090 allow tcp from any to any dst-port 139 in
02100 allow tcp from any to any dst-port 631 in
02110 allow tcp from any to any dst-port 515 in
12190 deny log tcp from any to any
65535 allow ip from any to any*

Ich verwende XAMPP, den Mamp hab ich verschoben in einen anderen, nicht den Applications-Ordner, im Glauben, der würde dort funktionslos sein. Stimmt das auch?

Ich habe irgendwo gelesen, dass der Apache nicht zugreifen lässt, wenn dieser Port 80 schon belegt ist. Das verstehe ich nicht so recht, da ja 80 wohl auch verwendet wird, wenn ich surfe, 80 auch vom von Apple voreingestellten Apache 1.3 benutzt wird (den ich ausgeschaltet habe, d.h. “websharing” als Dienst nicht angehakt ist) und jetzt - so es denn mal gehn sollte - auch vom Xampp Apache 2.0?

Und zum Schluss - ja, ich finde auch mal ein Ende :wink: - dein “vorher Port 80 in der FW freigeben” bezieht sich in diesem Zusammenhang nicht auf mein o.g. “Portmapping” unter “Virtual Server” im Routermenü sondern in der internen Firewall? Falls ja, weiß ich nicht, wie das geht, das als neue Regel in ipfw einzugeben. :blush:

Ich erwarte nicht, dass man mir das jetzt penibelst erklärt, wäre schon sehr dankbar, wenn mir jemand sagen könnte, wo ich mir das anlesen kann. Danke!

Kaleema

Also, der “Quickie-Test” wäre, einfach mal die Firewall am Mac zu deaktivieren, um den Test vom LAN aus zu machen. Geht das, kann man (wenn man nicht wirklich am ipfw rumbasteln möchte) in den Systemeinstellungen, Sharing das unten angehängte eintragen - das sollte eigentlich seinen Zweck erfüllen (gesetzt den Fall, der Server soll auf Port 80 laufen und nicht auf 8080). Also Sharing, dann Firewall, “Neu…”

Deine Firewall hat oben einen Zugriff auf Port 445 geblockt, genau. Bezüglich Port 80: der kann nur von einem “Dienst” oder Server-Prozess belegt werden. Allerdings hindert einem der Webrowser hier an nichts: der verwendet zwar Port 80, aber er verbindet sich auf diesen und nicht von diesem (im Beispiel Deines Firewall-Zugriffs: Zugriff auf Server-Port 445 von Client-Port 3873). D.h. Safari nimmt irgendeinen Ausgangsport am Mac (und zwar nicht den 80er) und verbindet sich damit auf macmini-forum.de:80.

/Edit: und mal nach OS X verschoben

Ich bekomme einfach keinen LAN-Zugriff auf diese Site. Austauschverzeichnis, shareddocs … kein Problem. Ich probiere grade am MacBook. Mache ich denn grundlegend was falsch, wenn ich auf dem Mini Xampp starte, phpmyadmin-seite öffne und dann auf dem MacBook den Firefox, dort meine interne ip, also 192.168.1.35:80/xampp/ eingebe? Firewall auf dem MacBook ist auch aus.

Firefox sagt, er konnte keine Verbindung aufbauen zu o.g. Server. *seufz

Also, die Firewall auf dem MacBook ist egal. Die auf dem Mini ist aus? was sagt denn im Terminal ein

netstat -a -pTCP|grep 80

:question:
…wenn da irgend ein xampp-Prozess dabei ist, wäre die Ausgabe mal interessant. Ansonsten ist der Ansatz richtig.

ja, firewall ist aus. auf den befehl hin bekomme ich:

mein-computer:~ ich$ netstat -a -pTCP|grep 80
tcp4 0 0 192.168.1.35.49180 192.168.1.27.netbios-s ESTABLISHED

192.168.1.27 ist die Dose aus meinem LAN.

edit:
wenn ich den gleichen Befehl auf dem MacBook eingebe, dann steht dort:

tcp4 0 0 localhost.47807 . LISTEN

:open_mouth: das ist beides Murks - wenn ein Apache auf Port 80 aktiv wäre, müsste da eine Zeile mit localhost.80 auf der linken Seite sein. Oder, besser noch sowas wie 192.168.1.35.80 (BSD zeigt die Ports nicht mit einem Doppelpunkt von der IP abgesetzt an, das verwirrt etwas; das .80 heisst also eigentlich :80)

in der httpd.conf von xampp steht:

*# Listen: Allows you to bind Apache to specific IP addresses and/or

ports, instead of the default. See also the

directive.

Change this to Listen on specific IP addresses as shown below to

prevent Apache from glomming onto all bound IP addresses.

#Listen 12.34.56.78:80
Listen localhost:80*

über:

localhost:80/xampp/index.php

komme ich lokal in meinem browser auf die phpmyadmin-Seite von Xampp.

versteh ich dein “Murks” richtig, dass trotz dem oben zitierten mein Port 80 mit was anderem belegt sein muss?

Wo könnte ich nach dem Fehler suchen? Ich hab das Netzwerk, das interne im Moment über “automatisch” konfiguriert und DHCP wieder drin. Kann man aufgrund der Meldung irgendwas drüber sagen, WAS da an meinem port 80 abgeht?

Wenn ich die Meldung beim MacBook richtig verstehe, hockt der dortige Localhost auf port 47807. Wäre mir nicht schon geholfen, wenn ich wüsste, auf welchem port meiner läuft und das dann entsprechend in der httpd.conf vom apache ändere und über Portforwarding dann auf den die neue Regel für die Firewall lege? Dann soll der 80er doch mit sich selber spielen, ansonsten tut er ja was er soll *grins

ich danke dir übrigens, für deine Mühe und Geduld. Wenn du grad keine Lust mehr hast, kann ich das gut verstehn :wink:

Kaleema

[quote=“Kaleema”]in der httpd.conf von xampp steht:

*# Listen: Allows you to bind Apache to specific IP addresses and/or

ports, instead of the default. See also the

directive.

Change this to Listen on specific IP addresses as shown below to

prevent Apache from glomming onto all bound IP addresses.

#Listen 12.34.56.78:80
Listen localhost:80*
[/quote]

Na da haben wir ja das Problem, du bindest den Apache nur an localhost und nicht an deine LAN-IP. Ersetze dort mal localhost durch deine IP und starte dein XAMPP mal neu.