Apache2.2 und DynDNS

From: Philipp Maihoefer <philipp_bsd(at)5711.org>
Date: Thu, 6 Jul 2006 12:54:07 +0200 (CEST)

Hallo Liste,

nach zirka einer Woche rumraten und versuchen des Debuggings brauche ich
nun doch eure Hilfe. Vermutlich habe ich an irgendeiner Stelle auch
einfach nur einen Denkfehler.

Ich möchte gerne auf meinen System zuhause einen Apache2.2 laufen lassen,
mit Namebased-Virtualhosts.

So weit so gut. Bei mir daheim bin ich mit einer ADSL Leitung angebunden,
demzufolge habe ich eine Dynamische IP die ich mit DynDNS immer abgleiche.
Der Hostname dazu ist: pandorra.ath.cx .

Zusätzlich läuft zuhause noch ein DNS-Resolver (tinydns, für lokale
Hostnames) und ein DNS-Caching (dnscache, für externe Hostnames)

Folgendes Szenario: Ich habe vor kurzen die Hardware meines Webservers
(und Routers) geändert und natürlich vorher sämtliche
Konfigurationsdateien gesichert. Mit dem Hardwarewechsel vollzog sich
gleichermassen ein Softwareupgrade von FBSD 4.11 auf FBSD6.1-RELEASE.

Seit dem funktioniert aber mein Webserver von aussen nicht mehr.

Zum Verständniss. Mein Apache ist mit "Listen 192.168.0.1:80"
konfiguriert, die V-Hosts demzufolge mit "NameVirtualHost =
192.168.0.1:80" und zum Beispiel hier einen VHost:

<VirtualHost 192.168.0.1:80>
    ServerAdmin webmaster(at)localhost
    VirtualDocumentRoot /www/%1/
    VirtualScriptAlias /www/%1/cgi-bin
    ServerName pandorra.ath.cx
    ServerAlias *.pandorra.ath.cx
    ErrorLog /var/log/pandorra.ath.cx-error_log
    CustomLog /var/log/pandorra.ath.cx-access_log common
    Options FollowSymLinks
</VirtualHost>

Dieser VHost ermöglicht es mir das ich einfach in /www Verzeichnisse
anlegen kann, zum Beispiel "test", die dann direkt auch als SubDomain
erreichbar sind. In diesem Fall "test.pandorra.ath.cx". Hoffentlich wird
jetzt klar, warum ich in diesem Fall Namebased vorgehen will, und nicht
einfach "Listen=80" in der Apache Konfiguration mache.

Stelle ich jetzt eine Anfrage von meinem LAN aus auf Port 80 und dem Host
"pandorra.ath.cx" wird diese Anfrage von meinen DNSCACHE angenommen, wo
der Host dementsprechend konfiguriert ist, das er bei der Auflösung den
lokalen TinyDNS nach der IP fragen soll. Im TinyDNS habe ich den Host
pandorra.ath.cx auf die 192.168.0.1 umgebogen, somit erspare ich mir den
umweg über das externe Interface und halte die Aufrufe lokal.

Sofern ich im LAN bleibe klappt diese Konstellation reibungslos. Alle
VHosts sind ebenfalls richtig aufrufbar.

Wenn ich jetzt aber von meinem Arbeitsrechner (oder irgendeinem anderen
externen Rechner) aus eine Anfrage stelle kommt leider keine Antwort.
Sondern nur ein Connection Refused. Eigentlich ja auch korrekt. Da auf der
externen IP ja kein Webserver horcht, sondern dieser ja auf die
192.168.0.1 horcht. Wäre da nicht mein Forwarding was der NATD (der auch
das lokale Masquerading macht) übernimmt.

-snipp>
redirect_port tcp 192.168.0.1:80 80
-snipp>

Aber dennoch kommt diese Anfrage nicht am natd an. Dies habe ich
festgestellt als ich den NATD mal im Verbosemodus gestartet habe.

Ich habe noch ein zweites Forwarding für RDP eingerichtet.

-snipp>
redirect_port tcp 192.168.0.27:3389 3389
-snipp>

Als ich im Verbosemodus war, kamen meine Test-Telnet Verbindung auch im
natd über Port 3389 an, jedoch konnte da natürlich kein Service erreicht
werden. Da Rechner aus. Meine Testverbindungen über Port 80 erschienen
aber überhaupt nicht im natd.

Daher vermute ich das Problem irgendwo dort an dieser Stelle. Oder evtl
auch schon vorher in meiner ipfw.

Hier mal meine Rules:

00050 1148 77364 pipe 3 tcp from any 21,20 to any out xmit tun0
00051 1151 64462 pipe 4 tcp from any to any dst-port 21,20 in
recv tun0
00060 6673574 3450213279 pipe 5 tcp from any to any dst-port 6890-6999
in recv tun0
00061 6309173 3046281465 pipe 6 tcp from any 6890-6999 to any out xmit
tun0
00070 936 117008 pipe 7 tcp from any to any dst-port 80,443 in
recv tun0
00071 1107 555043 pipe 8 tcp from any 80,443 to any out xmit tun0
00100 21950555 13413406770 divert 8668 log ip from any to any via tun0
00200 77330 5970126 allow ip from any to any via lo0
00300 0 0 deny ip from any to 127.0.0.0/8
00400 0 0 deny ip from 127.0.0.0/8 to any
65435 201224583 183156413771 allow ip from any to any
65535 4 251 deny ip from any to any

Wie gesagt. Prinzipiell habe ich da nichts verändert, zum Vorstatus. Aus
einem Wechsel von 4.11 auf 6.1. Selbst die Versionen des Webservers
stimmen überein.

Oder gibt es im 6.1 neue Sicherheitsfeatures die mir noch nicht bekannt sind?

Hoffe mir kann da jemand weiterhelfen, und vielen Dank fürs Lesen bis
hierhin ;)

Gruß,
Philipp Maihoefer

PS: Kann mir einer sagen wie ich die Default-Policy mit dem deny IP from
any to any rausbekomme? Ich meine eigentlich ist es ja egal weil direkt
dadrüber ja ein allow all ist. Aber es stört Optisch.

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 06 Jul 2006 - 12:52:59 CEST

search this site