lighttpd geschützte Verzeichnisse von aussen erreichbar...

dj1985

Mitglied
Mitglied seit
5 Jul 2006
Beiträge
459
Punkte für Reaktionen
0
Punkte
16
Hallo, ich habe gerade mal zu testzwecken über die AVM Firewall eine Portweiterleitung zum Server gemacht (von port 80 auf den port 85 der Box (da läuft der lighttpd)

Da ich nicht will das jeder /server-status etc ansehen kann, habe ich folgendes eingetragen in die Additional:

$HTTP["host"] == "fritz.box" {
#!~ is a perl style regular expression not match
$HTTP["remoteip"] !~ "^(192\.168\.1X8\.2X|192\.168\.178\.88|192\.168\.17X\.3X)$" {


$HTTP["url"] =~ "^/server-status" {
url.access-deny = ( "" )
}
$HTTP["url"] =~ "^/server-statistics" {
url.access-deny = ( "" )
}
$HTTP["url"] =~ "^/server-config" {
url.access-deny = ( "" )
}
}
}

Das klappt soweit auch ganz gut zumindest aus den Internen Netz bekomme ich dann ein forbidden.

Aber sobald ich "/server-status" oder eine andere eigentlich gesperrte url über dyndns oder die externe/Internet IP der Box aufrufe habe ich wieder vollzugriff auf die gesperrten urls.. :mad:

Und genau das will ich ja grade eben nicht.
 
Siehst du irgendwo im Log von welcher IP die Zugriffe kommen bzw. geloggt werden?

MfG Oliver
 
Von hier das gleiche bekomme ich auch unter Server Status angezeigt
87.17X.40.10X XXX.dyndns.org - [24/Jun/2010:09:57:10 +0200] "GET /server-status HTTP/1.1" 200 4702 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)"
87.17X.40.10X 87.17X.40.10X - [24/Jun/2010:09:58:28 +0200] "GET /server-status HTTP/1.1" 200 4690 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)"
87.17X.40.10X 87.17X.40.10X - [24/Jun/2010:09:58:29 +0200] "GET /favicon.ico HTTP/1.1" 200 78 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 ( .NET CLR 3.5.30729)"

Connections
Client IP: Read: Written: State: Time: Host: URI: File:
87.17X.40.10X 0/0 0/4477 handle-req 0 87.17X.40.10X /server-status (/server-status)

EDIT: "/Server Status" hat mich auf die idee gebracht woran es liegen könnte der Hostname ändert sich bei einen Zugriff von außen.
und ist nicht mehr fritz.box, sondern XXX.dyndns.org oder die aktuelle ip der BOX.

Ich habe aus
$HTTP["host"] == "fritz.box" {
$HTTP["host"] =~ "^(dj1985rl\.dyndns\.org|fritz\.box(\:[0-9]*)?)$" {
gemacht.

Das läuft jetzt schon mal recht gut, das problem ist, wenn ich die Seite direkt über die ip aufrufe, ändert sich der lighttpd hostname in die ip, eine feste IP eintragen würde keinen sinn machen dank Zwangstrennung und neuer ip. :( Also müsste ich jetzt wissen wie der Ausdruck für eine IP ist... damit ich das mit anhängen kann
 
Zuletzt bearbeitet:
über "$HTTP["host"] == "*" {"
ist das alles wieder zu erreichen als wäre kein Schutz da.
 
Der Schutz kommt doch über remoteip und nicht über host. Wenn Du einen host-Eintrag machst, der auf jede IP-Adresse zutrifft, hast Du sowieso das gleiche Ergebnis.
Nebenbei wäre es sowieso nicht sicher, einen Schutz über den Host-Namen zu realisieren.
 
Ah danke für die Idee :)
Ich hab den Hostteil entfernt und jetzt scheint wirklich alles zu funktionieren.
Warum ich da ne selbst drauf gekommen bin? :confused::mad:

Ich bin halt nur nach der Anleitung hier gegangen (http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:Configuration)

# Allow only 200.19.1.5 and 210.45.2.7 to
# have access to www.example.org/admin/
$HTTP["host"] == "www.example.org" {
#!~ is a perl style regular expression not match
$HTTP["remoteip"] !~ "^(200\.19\.1\.5|210\.45\.2\.7)$" {
$HTTP["url"] =~ "^/admin/" {
url.access-deny = ( "" )
}
}
}
 
Unterscheidung nach Hosts ist dann sinnvoll, wenn man unter verschieden Host-Namen verschiedene Inhalte anzeigen will. Normalerweise ist das der Fall, wenn man eine Server mit fester IP-Adresse hat und mehren Domains.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.