Sie sind nicht angemeldet.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Lieber Besucher, herzlich willkommen bei: Die NSLU2 Community****wenns ums speichern und streamen geht****. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

sindbad

Schüler

  • »sindbad« ist der Autor dieses Themas

Beiträge: 65

Verwendetes NAS-Device: debian lenny@NSLU und sheeva

Firmwareversion / your current Firmware: Debian

Wohnort: zwischen Berlin und Leipzig

  • Nachricht senden

1

Montag, 13. Juli 2009, 21:08

lighttpd mit chroot und userdir

Hallo Gemeinde,

ich hab mir den lighttpd auf die slug gepackt, was auch soweit funktioniert. SSL klappt, http wird automatisch auf https umgeleitet und userdir funktioniert auch und sogar mit mit htdigest authentifizierung. Sehr schön.
Packe ich das Ganze nun aber in ein chroot verzeichnis /webroot und erstelle bzw kopiere darin die Dateien, dann fuktioniert sogar hier alles, bis auf die userdir sache. ~user an den url gehängt ergibt einen 404 fehler.
Ich finde nirgend einen hinweis, dass das nicht geht oder wo ein problem sein könnte.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# Debian lighttpd configuration file
#

############ Options you really have to take care of ####################

## modules to load
# mod_access, mod_accesslog and mod_alias are loaded by default
# all other module should only be loaded if neccesary
# - saves some time
# - saves memory

server.modules              = (
            "mod_access",
            "mod_alias",
            "mod_accesslog",
#           "mod_rewrite",
           "mod_redirect",
           "mod_status",
#           "mod_evhost",
#           "mod_compress",
#           "mod_usertrack",
#           "mod_rrdtool",
#           "mod_webdav",
#           "mod_expire",
#           "mod_flv_streaming",
#           "mod_evasive",
            "mod_userdir",
            "mod_auth"
 )

## a static document-root, for virtual-hosting take look at the
## server.virtual-* options
server.document-root       = "/var/www/"

## where to send error-messages to
server.errorlog            = "/var/log/lighttpd/error.log"

## files to check for if .../ is requested
index-file.names           = ( "index.php", "index.html",
                               "index.htm", "default.htm" )


## Use the "Content-Type" extended attribute to obtain mime type if possible
# mimetype.use-xattr = "enable"

#### accesslog module
accesslog.filename         = "/var/log/lighttpd/access.log"

## deny access the file-extensions
#
# ~    is for backupfiles from vi, emacs, joe, ...
# .inc is often used for code includes which should in general not be part
#      of the document-root
url.access-deny            = ( "~", ".inc" )



######### Options that are good to be but not neccesary to be changed #######

## bind to port (default: 80)
# server.port               = 81

## bind to localhost only (default: all interfaces)
## server.bind                = "localhost"

## error-handler for status 404
#server.error-handler-404  = "/error-handler.html"
#server.error-handler-404  = "/error-handler.php"

## to help the rc.scripts
server.pid-file            = "/var/run/lighttpd.pid"

## virtual directory listings
dir-listing.encoding        = "utf-8"
server.dir-listing          = "enable"

## send unhandled HTTP-header headers to error-log
#debug.dump-unknown-headers  = "enable"

### only root can use these options
#
# chroot() to directory (default: no chroot() )
server.chroot            = "/webroot/"

## change uid to <uid> (default: don't care)
server.username            = "www-data"

## change uid to <uid> (default: don't care)
server.groupname           = "www-data"

#### expire module
# expire.url                  = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes$

#### handle Debian Policy Manual, Section 11.5. urls
#### and by default allow them only from localhost

$HTTP['remoteip'] =~ "127.0.0.1" {
        alias.url += (
                "/doc/" => "/usr/share/doc/",
                "/images/" => "/usr/share/images/"
        )
        $HTTP['url'] =~ "^/doc/|^/images/" {
                dir-listing.activate = "enable"
        }
}

#### external configuration files
## mimetype mapping
include_shell "/usr/share/lighttpd/create-mime.assign.pl"

## load enabled configuration files,
## read /etc/lighttpd/conf-available/README first
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

##von mir eingefügt für Umleitung http -> https
$SERVER['socket'] == ":80" {
  $HTTP['host'] =~ "(.*)" {
    url.redirect = ( "^/(.*)" => "https://%1/$1" )
  }
}

auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/lighttpd-htdigest.user"

auth.require = (
   "~deruser" => (
      "method"  => "digest",
      "realm"   => "der realm halt",
      "require" => "user=xxxxx"
   )
)
Danke für Tips..

sindbad

Anzeigen

sindbad

Schüler

  • »sindbad« ist der Autor dieses Themas

Beiträge: 65

Verwendetes NAS-Device: debian lenny@NSLU und sheeva

Firmwareversion / your current Firmware: Debian

Wohnort: zwischen Berlin und Leipzig

  • Nachricht senden

2

Donnerstag, 16. Juli 2009, 16:42

AW: lighttpd mit chroot und userdir

mh, entweder stelle ich blöde Frage, ich stell die Fragen blöde oder ich weiss auch nicht...

Die Lösung:

ich hab etwas aufgeräumt und den Authentifizierungsteil in die /etc/lighttpd/config-enabled/10-auth.conf verschoben, die "mod_xxx" von ssl und auth rausgenommen, da die automatisch durch lighty-enable-mod ssl bzw auth gelinkt werden.

Und dann brauchte die 10-userdir.conf nur noch den Hinweis, was nach dem chroot der Basispfad für die "home" Verzeichnisse ist:

userdir.basepath = "/home/"

irgendwie kam er mit der Tilde nicht mehr ins "home" Verzeichnis, evtl weil im chroot Verzeichnis keine passwd zur verfügung steht, wo er das jeweilige "home" auslesen kann. komisch ist das schon, da ich nirgends einen Hinweis auf diese Notwendigkeit gefunden habe.

außerdem ist ja im chroot - home Verzeichnis kein User drin, also /chroot/home (bzw bei mir webroot/home) nach /home mounten (bind), voila.

Wenn jemand sicherheitstechnische Bedenken hat, soll er sie bitte kund tun, da ich die Konsequenzen von dieser Mounterei in und aus einer chroot nicht überblicke.

Grüße

sindbad
»sindbad« hat folgende Dateien angehängt:
  • 10-auth.txt (1,21 kB - 154 mal heruntergeladen - zuletzt: 13. August 2016, 20:08)
  • 10-ssl.txt (348 Byte - 90 mal heruntergeladen - zuletzt: 1. Januar 2017, 18:57)
  • 10-userdir.txt (577 Byte - 99 mal heruntergeladen - zuletzt: 5. Oktober 2016, 04:41)
  • lighttpd.txt (4,51 kB - 87 mal heruntergeladen - zuletzt: 5. Oktober 2016, 04:43)

Anzeigen

Social Bookmarks