www.ProFTPD.de
13. März 2007, 21:03:40 *
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
News: SMF - Neu installiert!
 
   Übersicht   Hilfe Suche Login Registrieren  
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: PathDenyFilter nur für bestimmte Gruppen?  (Gelesen 581 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
S_O
Gast
« am: 07. Dezember 2004, 17:29:03 »

Ich habe meinen FTP-Server mit SQL jetzt soweit zum laufen, aber ich möchte noch Dateien mit der Endung .inc und Dateien die mit einem Punkt im Dateinamen anfangen (.htaccess / .ftpaccess) für fast alle Benutzergruppen sperren.

Das ist meine Konfiguration soweit (alle Kommentare etc. entfernt):
Code:
ServerName ftp.meindomain.de
ServerType standalone
ServerAdmin meine@email.de
ServerIdent on "FTP Server ready."
DefaultServer on
Port 21
Umask 022
MaxInstances 30
User nobody
DenyFilter "%"
UseReverseDNS off
IdentLookups off
TimeoutStalled 300
TimeoutLogin 30
TimeoutIdle 120
TimeoutNoTransfer 300
RootLogin off
MaxLoginAttempts 3
RequireValidShell off
UseFtpUsers off
<Global>
DefaultRoot /srv/www/htdocs
AllowRetrieveRestart on
AllowForeignAddress on
AllowStoreRestart on
HiddenStor off
MaxClients 10 "Sorry, to many users online! Please try again later"
MaxClientsPerHost 2 "Max 2 Login per Host!!"
DeleteAbortedStores off
ShowSymlinks on
</Global>
<Anonymous /srv/www/htdocs>
 User ftp
 Group ftp
 UserAlias anonymous ftp
 <Directory *>
 <Limit WRITE>
 DenyAll
 </Limit>
 </Directory>
 <Directory /srv/www/htdocs/myadmin>
 <Limit ALL>
 DenyAll
 </Limit>
 </Directory>
 <Directory /srv/www/htdocs/ftpadmin>
 <Limit ALL>
 DenyAll
 </Limit>
 </Directory>
 <Directory /srv/www/htdocs/ssl>
 <Limit ALL>
 DenyAll
 </Limit>
 </Directory>
 <Directory /srv/www/htdocs/ordnera>
 <Limit ALL>
 DenyAll
 </Limit>
 </Directory>
 <Directory /srv/www/htdocs/ordnerb>
 <Limit ALL>
 DenyAll
 </Limit>
 </Directory>
</Anonymous>
SQLAuthTypes Crypt
SQLAuthenticate users* groups*
SQLConnectInfo ftp@localhost username password
SQLUserInfo users username passwd NULL NULL homedir NULL
SQLGroupInfo groups groupname id username
SQLUserWhereClause "valid = 1"
SQLDefaultGID 8
SQLDefaultUID 30
SQLHomedirOnDemand off
SQLLog PASS updatelogin
SQLNamedQuery updatelogin UPDATE "count=count+1, lastlogin=NOW() WHERE username = '%u'" users
SQLLog STOR,RETR,ERR_STOR,ERR_RETR logtrafic
SQLNamedQuery logtrafic FREEFORM "INSERT INTO history (username, filename, transfertype, transfersize, transferhost, transfertime, transferdate) VALUES('%u', '%F', '%m', %b, '%a', '%T', NOW())"
SQLLog ERR_* logevents
SQLNamedQuery logevents FREEFORM "INSERT INTO userevents (username, eventtype, description, eventdate) VALUES ('%u', '%m', '%r', NOW())"
<Directory /*>
 <Limit WRITE>
 DenyAll
 AllowGroup admin
 </Limit>
</Directory>
<Directory /srv/www/htdocs/ssl>
 <Limit ALL>
 DenyAll
 AllowGroup admin
 </Limit>
</Directory>
<Directory /srv/www/htdocs/myadmin>
 <Limit ALL>
 DenyAll
 </Limit>
</Directory>
<Directory /srv/www/htdocs/ftpadmin>
 <Limit ALL>
 DenyAll
 </Limit>
</Directory>
<Directory /srv/www/htdocs/ordnera>
 <Limit ALL>
 DenyAll
 AllowGroup admin
 AllowGroup gruppea
 </Limit>
 <Limit WRITE>
 DenyAll
 AllowGroup admin
 AllowGroup gruppea
 </Limit>
 <Limit SITE_CHMOD>
 DenyAll
 AllowGroup admin
 </Limit>
</Directory>
<Directory /srv/www/htdocs/gallery>
 <Limit WRITE>
 DenyAll
 AllowGroup admin
 AllowGroup gruppea
 </Limit>
 <Limit SITE_CHMOD>
 DenyAll
 AllowGroup admin
 </Limit>
</Directory>
<Directory /srv/www/htdocs/ordnerb>
 <Limit ALL>
 DenyAll
 AllowGroup admin
 AllowGroup gruppea
 AllowGroup gruppeb
 </Limit>
 <Limit WRITE>
 DenyAll
 AllowGroup admin
 AllowGroup gruppea
 AllowGroup gruppeb
 </Limit>
 <Limit SITE_CHMOD>
 DenyAll
 AllowGroup admin
 </Limit>
</Directory>

Wo muss ich das mit dem PathDenyFilter nun einfügen, damit alle außer Benutzer der Gruppe admin keinen Zugriff mehr auf .htaccess etc. haben?
Gespeichert
S_O
Gast
« Antwort #1 am: 07. Dezember 2004, 22:14:05 »

Ich habe proftpd jetzt nochmal mit dem ifsession-Modul neu kompiliert, auf das ich ganz versteckt einen Hinweis irgendwo gefunden habe (die Dokumentation von proftpd ist wirklich nicht gerade übersichtlich) weiß aber noch nicht genau wo ich das in meine Konfiguration einbauen muss:

<IfGroup !admin>
    PathDenyFilter \.inc$|^\.|^config\.php$
</IfGroup>

Ich möchte auch das die Dateien ausgeblendet werden in der Verzeichnisansicht und der proFTPd sich so verhält as ob die Dateien nicht existieren wenn man versucht direkt drauf zuzugerifen. Ich habe gelesen das geht mit IgnoreHidden und HideNoAccess oder so, aber ich verstehe nicht wo das genau hin muss. Ich möchte das es für alle nicht-admins global gilt.
Kann mir bitte irgendjemand helfen? Ich komme da nicht weiter.
Gespeichert
S_O
Gast
« Antwort #2 am: 08. Dezember 2004, 15:12:29 »

Ich habe gerade herausgefunden warum es nie zu gehen scheint:

PathDenyFilter sperrt nur write-befehle! Welche Einstellung sperrt alles, also auch lesen und auflisten, am besten die Existenz einer Datei verweigern und so tun als ob sie nicht existiert?
Gespeichert
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #3 am: 08. Dezember 2004, 16:14:47 »

Weiß ich auch grad nicht.
Kannst du nicht ListOptions dafür nehmen?
Und Dateien mit . am Anfang ausblenden?
Und die Dateien umbenennen in .Name  :oops:
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
S_O
Gast
« Antwort #4 am: 08. Dezember 2004, 18:40:57 »

Ich kriegs einfach nicht hin! :cry:  Egal was ich mache, und funktioniert es endlich, dass die benutzer die Dateien nicht nur nicht sehen, sondern auch nicht zugreifen können, habe ich die admins auch ausgesperrt  :cry:  :cry:

Ich habe alles mit IgnoreHidden und HideFiles ausprobiert, beim anonymous klappt das auch alles, aber mit IfGroup will das nicht, zum Teil ignoriert er das einfach oder er will IfGroup irgendwo nicht. Habe mich mit Define/IfDefine rumgemogelt, aber dann macht er absoluten Blödsinn.

Es muss doch möglich sein das eine Benutzergruppe auf bestimmte dateien nicht zugreifen kann?? Ich habe jetzt nahezu jeden Parameter in der Liste durchgegangen, aber ich finde nichts.
Gespeichert
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #5 am: 08. Dezember 2004, 22:20:31 »

Zitat von: "S_O"
Ich kriegs einfach nicht hin! :cry:  Egal was ich mache, und funktioniert es endlich, dass die benutzer die Dateien nicht nur nicht sehen, sondern auch nicht zugreifen können, habe ich die admins auch ausgesperrt  :cry:  :cry:

Ich habe alles mit IgnoreHidden und HideFiles ausprobiert, beim anonymous klappt das auch alles, aber mit IfGroup will das nicht, zum Teil ignoriert er das einfach oder er will IfGroup irgendwo nicht. Habe mich mit Define/IfDefine rumgemogelt, aber dann macht er absoluten Blödsinn.

Es muss doch möglich sein das eine Benutzergruppe auf bestimmte dateien nicht zugreifen kann?? Ich habe jetzt nahezu jeden Parameter in der Liste durchgegangen, aber ich finde nichts.

Dann mache doch genau diese Sperr-Regeln in einen IfUser oder IfGroup-Block (siehe mod_ifsession)

Code:
<IfGroup "AND" !schreibrechte,!administratoren>
   *Bla bla alles total verboten*
</IfGroup>

Dann gilt es für alle ausser die in der Gruppe schreibrechte oder administratoren
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
S_O
Gast
« Antwort #6 am: 08. Dezember 2004, 22:33:44 »

Genau so hab ich das ja gemacht!
Ich habe meine eine Version der proftpd.conf, bei der ist jetzt alles gesperrt, genau so ie ich das für die normalen Benutzer haben möchte.
Und ich hab die andere Version, bei der ist das nicht gesperrt so wie ich das für die admins haben möchte.
Beide funktinieren jeweils perfekt.
Da die Änderungen ja außschließlich in den directory-Blöcken am Ende sind, habe einfach um die einen directory-blöcke
<IfGroup !admin> </IfGroup> gemacht und um die anderen <IfGroup admin> </IfGroup> und das in eine conf kopiert.
ProFTPd startet immer noch perfekt, aber alles ist völlig verkehrt, auf einmal gehen bestimmte Ordner, die sonst in beiden konfs gingen gar nicht mehr, der admin hat in meinchen Ordnern weniger Rechte als der user etc.
Das ist für mich völlig unerklärlich.

Dieser ifsession-mod scheint nicht korrekt zu funktionieren. Kann man das nicht anders lösen?
Gespeichert
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #7 am: 09. Dezember 2004, 07:37:04 »

Zitat von: "S_O"
der admin hat in meinchen Ordnern weniger Rechte als der user

mod_ifsession funktioniert super.
Du hast entweder einen Denk- oder Konfigurationsfehler.
Warum eigentlich "der" admin. Du filterst auf die Gruppe - nicht den Benutzer. Schon klar, oder?

 :debug:
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
S_O
Gast
« Antwort #8 am: 09. Dezember 2004, 13:30:49 »

Zitat
Warum eigentlich "der" admin. Du filterst auf die Gruppe - nicht den Benutzer. Schon klar, oder?
Klar, ich hab drei Gruppen, eine davon heißt admin, da sind die admins drin.

Zitat
Du hast entweder einen Denk- oder Konfigurationsfehler.
Ich habe das jetzt schon 3x gemacht, und jedes mal spinnt der anders rum.
Da ich nicht genau weiß wie ich IfGroup einstetzen darf, kann es sein das da ein Fehler drin ist, aber ich finde ihn nicht!

Ich habe übrigens gelesen das directory mit einer Wildcard-Pfadangabe immer höhere Priorität hat als eines ohne.
Ich habe nun einmal <Directory /*> wo IgnoreHidden, HideFiles, HideNoAccess drinsteht, aber er übernimmt das nicht für die Unterordner, wenn in deren <Directory>-Block das nicht nochmal wiederholt wird, warum?

Wie kann ich denn die Konfiguration debuggen?
Wo würdest denn du das mit IfGroup in meine conf (siehe erstes Post) einbauen? Alles was ich will ist das für !admin überall gilt:

PathDenyFilter \.inc$|^\.|^config\.php$
HideFiles \.inc$|^\.|^config\.php$
HideNoAccess On
IgnoreHidden On

Und zwar überall. Kann ich das nicht irgendwo festlegen das es immer gilt, auch wenn es nicht immer und überall wieder erwähnt wird, außer bei PathDenyFilter krieg ich das nicht hin.
Gespeichert
Wörsty
Moderator
ProFTPD
*****
Offline Offline

Beiträge: 1602


50772603
Profil anzeigen WWW E-Mail
« Antwort #9 am: 09. Dezember 2004, 15:42:31 »

Zitat von: "S_O"
Wie kann ich denn die Konfiguration debuggen?

proftpd -nd5

Zitat von: "S_O"
Wo würdest denn du das mit IfGroup in meine conf (siehe erstes Post) einbauen?

In den Global Block.
Eigentlich.
Habe leider grad wenig Zeit um das mal zu testen.
Gespeichert

RedHat 8.0 (2.4er Kernel)
proftpd 1.2.10
-mod_sql_mysql
-mow_wrap
-mod_exec
-mod_ifsession[/size]
S_O
Gast
« Antwort #10 am: 09. Dezember 2004, 19:06:47 »

Zitat
proftpd -nd5
Hab ich gemacht, er ratert die conf durch und am Ende sagt er "Check the ServerType directive to ensure you are configured correctly."
Er nimmt die conf ja auch, sie arbeitet aber nciht wie ich will.
Zitat
In den Global Block.
Eigentlich.
Habe leider grad wenig Zeit um das mal zu testen.
Hab ich gemacht, HideFiles, HideNoAccess und IgnoreHidden erlaubt er nicht. habe ich dann im global-block in einem <directory /*>-Block gemacht, das ignoriert er beharrlich.
Außer PathDenyFilter nimmt der nichts.

Ich habe aber noch eine Idee, nämlich das in einer .ftpaccess zu machen, probiere ich gleich mal aus.
Gespeichert
S_O
Gast
« Antwort #11 am: 09. Dezember 2004, 19:50:40 »

So, IfGroup ignoriert er in .ftpaccess vollständig. Ich könnte <IfGroup> auch auskommentieren ohne das irgendeine Änderung auftritt.

Leider übernimmt er es generell auch bei .ftpaccess nicht für Unterordner.

Wie zu Teufel mach ich das??? Ich habe irgendwo gelesen das es genauso wie apache zu konfigurieren sein soll: Apache lief bei mir mit VirtualHosts, PHP etc. in 15 Minuten. ProFTPd ist wesentlich schwieriger zu konfigurieren als Apache.

Bei Debug-Modus meine ich, das ich sehen kann, während ich auf dem Server bin, er mir genau sagt was ich gerade mache, und warum ich das darf/nicht darf.
Gespeichert
S_O
Gast
« Antwort #12 am: 13. Dezember 2004, 08:59:45 »

:?:  :?:  :?:
Ich habe inzwischen alles probiert! Ich habs in Global gehabt, in der .ftpaccess und überall sonst. Ich komme aber nicht weiter. Kann mir nicht irgendjemand sagen wo die Kommandos mit dem <IfGroup> hin müssen?
Gespeichert
stonki
Administrator
ProFTPD
*****
Offline Offline

Beiträge: 1853


15318939
Profil anzeigen WWW E-Mail
« Antwort #13 am: 13. Dezember 2004, 09:18:17 »

Zitat von: "S_O"
:?:  :?:  :?:
Ich habe inzwischen alles probiert! Ich habs in Global gehabt, in der .ftpaccess und überall sonst. Ich komme aber nicht weiter. Kann mir nicht irgendjemand sagen wo die Kommandos mit dem <IfGroup> hin müssen?


ich habe mich mit dem Thread noch nicht beschafft. Schick mir bitte als PN einmal folgendes:

1) Was willst du machen ? Bitte auch mit Beispiel
2) Wie sieht Deine aktuelle Config aus
3) Ausgabe von proftpd -vv und proftpd -l

cu
stonki
Gespeichert

www.stonki.de:    the more I see, the more I know.......
www.proftpd.de:   Deutsche ProFTPD Dokumentation
www.krename.net:  Der Batch Renamer für KDE
www.kbarcode.net: Die Barcode Solution für KDE
S_O
ProFTPD
*
Offline Offline

Beiträge: 3


Profil anzeigen
« Antwort #14 am: 16. Dezember 2004, 16:10:06 »

Zitat
Schick mir bitte als PN einmal

Ist die PN angekommen?
Gespeichert
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Prüfe XHTML 1.0 Prüfe CSS
Seite erstellt in 0.067 Sekunden mit 16 Zugriffen.