Titel: Zugriffsrechte Beitrag von: maone am 02. Februar 2006, 22:01:22 Hallo!
Bin neu bei Debian & ProFTPd...aber schon total begeistert davon :wink: ! Hab den Server mit SQL zum laufen gebracht...d.h die User-Konfig rennt schon über SQL! Meine Frage jetzt...wie regel ich jetzt wer was wo machen darf??? Titel: Zugriffsrechte Beitrag von: VolGas am 02. Februar 2006, 22:53:21 Wenn Du die ProFTPD-Userdaten (und damit auch die Home-Verzeichnisse) schon mit mySQL verwalten kannst,
dann regeln den Rest -mehr oder weniger- die Filesystem-Zugriffsrechte bzw. "Directory"-Direktiven in der .conf Nicht mehr und nicht weniger. ;-) mfg. VolGas Titel: Zugriffsrechte Beitrag von: maone am 02. Februar 2006, 23:36:02 Code: # # /etc/proftpd.conf -- This is a basic ProFTPD configuration file. # To really apply changes reload proftpd after modifications. # ServerName "oxymoronsrv" ServerType standalone ServerAdmin support@oxymoron.at ServerIdent on "FTP Server ready." DeferWelcome on DefaultServer on Port 21 Umask 022 #Dateien können überschrieben werden <Directory /> AllowOverwrite on </Directory> # Maximal Werte setzen MaxClientsPerHost 5 "Nicht mehr als %m Verbindungen" MaxClients 30 "Leider sind schon %m Clients verbunden" MaxLoginAttempts 3 MaxInstances 30 # Restart erlauben AllowStoreRestart on AllowRetrieveRestart on # Logging options TransferLog /var/log/ftp/proftpd.xferlog LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" LogFormat write "%h %l %u %t \"%r\" %s %b" MultilineRFC2228 on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ DefaultRoot ~ UseReverseDNS off IdentLookups off RequireValidShell off # Uncomment this if you are using NIS or LDAP to retrieve passwords: #PersistentPasswd off # Uncomment this if you would use TLS module: #TLSEngine on # Uncomment this if you would use quota module: #Quotas on # Uncomment this if you would use ratio module: #Ratios on # Set the user and group that the server normally runs at. User nobody Group nogroup # Delay engine reduces impact of the so-called Timing Attack described in # http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02 # It is on by default. #DelayEngine off <Directory ~> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD> DenyAll </Limit> </Directory> <Directory ~/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR> AllowAll </Limit> </Directory> # # SQL Zugangskontrolle # SQLAuthTypes Plaintext SQLAuthenticate users* SQLConnectInfo sys_ftpserver@localhost USER PASSWORD SQLDefaultGID 65534 SQLDefaultUID 65534 SQLMinUserGID 100 SQLMinUserUID 500 SQLUserInfo users userid passwd uid gid homedir shell SQLHomeDirOnDemand on Sind da irgendwelche Fehler drinnen? :? Titel: Zugriffsrechte Beitrag von: maone am 02. Februar 2006, 23:40:09 Was ich eigentlich machen möchte ist folgendes:
User hat Home-Verzeichnis...dort hab ich für ihn Ordner angelegt "www.domain.at"...er darf in seinem Home-Dir lesen aber sonst nix...kein Ordner erstellen...löschen...raufladen. Im Ordner "www.domain.at" darf er alles machen! Wie kann ich das lösen? :roll: Titel: Zugriffsrechte Beitrag von: stonki am 03. Februar 2006, 04:36:14 http://www.proftpd.de/HowTo_Directory.43.0.html
Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 09:25:04 Danke für den Link!
Aber irgendwie check ichs nicht! Code: <Directory ~/*/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR> AllowAll </Limit> </Directory> Das müsste doch reichen, oder? Titel: Zugriffsrechte Beitrag von: VolGas am 03. Februar 2006, 09:38:13 Ich denke, so könnte es funktionieren wie Du es möchtest:
Code: <Directory ~> <Limit WRITE> DenyAll </Limit> </Directory> <Directory ~/*> <Limit WRITE> AllowAll </Limit> </Directory> Im Home-Verzeichnis selbst werden alle schreibende Zugriffe verboten, aber in den darunter liegenden Verzeichnissen wird es wieder erlaubt. mfg. VolGas Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 09:45:52 Und wie kann ich dem User "Administrator" (über SQL gelöst) volle Zugriffsrechte ab seinem Home-Dir geben?
(Es hat erst funktioniert, als ich den Unterordner per chmod auf 777 gestellt habe) Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 10:09:17 Warum geht das nicht?
Muss ich zuerst alle existierenden Ordner auf chmod 777 setzen? Code: <Directory ~> <Limit All> AllowUser administrator </Limit> </Directory> <Directory ~/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR> AllowAll </Limit> </Directory> Ist das ok? Code: Umask 000 Titel: Zugriffsrechte Beitrag von: VolGas am 03. Februar 2006, 10:40:37 Aua, aua!
Mit dem Adminstrator und den Zugriffsrechten ist das immer so eine Sache - man sollte dies vorher gründlichst überdenken und planen! So ganz kann dies nämlich nicht funktionieren, wie Du das möchtest, dazu müßtest Du nämlich root-Rechte erhalten (NEVER-EVER per FTP!!!) Man kann aber versuchen, zumindest etwas ähnliches zu erreichen, indem man allen Usern die selbe Gruppe zuweist und umask auf 007 setzt. Dann noch: Code: <Directory ~> <Limit WRITE> AllowUser administrator DenyAll </Limit> </Directory> <Directory ~/*> <Limit WRITE> AllowAll </Limit> </Directory> Das hat allerdings den gravierenden Nachteil, daß jeder User in den Verzeichnissen der anderen stöbern und wildern kann, sofern diese nicht selbst die Zugriffsrechte ändern. Warum gehst Du nicht hin, und machst dies so: * jedem User sein eigenes Verzeichnis * alle User die selbe Gruppe * umask=007 * home von administrator in das übergeordnete Verzeichnis Der "administrator" hat zwar auch nur Zugriff, wenn die User das nicht ändern, aber immerhin... Meine Meinung: Am besten hält man die User- und Gruppenrechte so restriktiv wie möglich und erledigt seinen Admin-Job über die Konsole z.B. mit mc! mfg. VolGas Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 10:51:08 Dann werde ich den Admin einfach weglassen!
Welcher Wert für Umask wäre am sinnvollsten? Gibt es am Conf-File noch was auszusetzen? Quota & Ratio möchte ich auch über SQL lösen! Code: # # /etc/proftpd.conf -- This is a basic ProFTPD configuration file. # To really apply changes reload proftpd after modifications. # ServerName "oxymoronsrv" ServerType standalone ServerAdmin support@oxymoron.at ServerIdent on "FTP Server ready." DeferWelcome on DefaultServer on Port 21 Umask 000 #Dateien können überschrieben werden <Directory /> AllowOverwrite on </Directory> # Maximal Werte setzen MaxClientsPerHost 5 "Nicht mehr als %m Verbindungen" MaxClients 30 "Leider sind schon %m Clients verbunden" MaxLoginAttempts 3 MaxInstances 30 # Restart erlauben AllowStoreRestart on AllowRetrieveRestart on # Logging options TransferLog /var/log/ftp/proftpd.xferlog LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" LogFormat write "%h %l %u %t \"%r\" %s %b" MultilineRFC2228 on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ DefaultRoot ~ UseReverseDNS off IdentLookups off RequireValidShell off # Uncomment this if you are using NIS or LDAP to retrieve passwords: #PersistentPasswd off # Uncomment this if you would use TLS module: #TLSEngine on # Uncomment this if you would use quota module: #Quotas on # Uncomment this if you would use ratio module: #Ratios on # Set the user and group that the server normally runs at. User nobody Group nogroup # Delay engine reduces impact of the so-called Timing Attack described in # http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02 # It is on by default. #DelayEngine off <Directory ~/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR> AllowAll </Limit> </Directory> # # SQL Zugangskontrolle # SQLAuthTypes Plaintext SQLAuthenticate users* SQLConnectInfo sys_ftpserver@localhost USER PASSWORD SQLDefaultGID 65534 SQLDefaultUID 65534 SQLMinUserGID 100 SQLMinUserUID 500 SQLUserInfo users userid passwd uid gid homedir shell SQLHomeDirOnDemand on Titel: Zugriffsrechte Beitrag von: VolGas am 03. Februar 2006, 11:21:31 Ich gehe davon aus, daß die Gruppenrechte dazu da sind, daß der Apache ebenfalls auf die Dateien zugreifen kann.
Dann wäre "umask 037 027" die sicherste Einstellung. (User darf alles, Gruppe: Dateien nur lesen, Verzeichnisse "öffnen" und lesen, sonst kein Zugriff) Umask 000 ist wohl die denkbar schlechteste Einstellung. Was mir sonst noch an der .conf aufgefallen ist: * "AllowOverwrite on" braucht kein umgebendes "Directory" * Sind die Limitierungen wirklich (noch) notwendig? * Solange Deine User keine Shell brauchen, reicht "SQLUserInfo users userid passwd uid gid homedir NULL" völlig aus. Das Datenfeld in der mySQL-Tabelle braucht dann nicht mehr gepflegt und kann auch weglassen werden. Dies gilt alalog auch für "gid", wenn alle User in der selben Gruppe sind - das ist sicherer. SQLDefaultGID ist ja vorhanden. * SQLHomeDirOnDemand könnte man -streng genommen- als Risiko einstufen, ist aber ok. Einen Fehler konnte ich nicht entdecken. (was aber nicht unbedingt etwas bedeutet) mfg. VolGas Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 11:48:49 Welche Limitierungen meinst du?
Kann ich "Quota" und "Ratio" hier weglassen? Wird ja eh über SQL realisiert! Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 11:59:36 Auf welches chmod muss ich die bestehenden Ordner also "domain.at" bzw "www.domain.at" setzen?
Titel: Zugriffsrechte Beitrag von: VolGas am 03. Februar 2006, 13:34:44 Mit Limitierungen meine ich den ganzen "<Directory ~/*>..." Block.
"Quota" und "Ratio" ist sowieso auskommentiert. Meine Güte: Grundwissen und (selbst) Nachdenken! chmod u=rwX,g=rX,o= /pfad/wohin/auch/immer mfg. VolGas Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 13:40:58 Das Problem ist, dass ich nicht weiß inwieweit "normale" Dateizugriffsrechte bei ProFTPd eine Rolle spielen!
Ohne den "Directory"-Teil könnte doch jeder in sein Root-Verzeichnis schreiben, oder? Titel: Zugriffsrechte Beitrag von: VolGas am 03. Februar 2006, 15:07:19 Sobald man als FTP-User eingeloggt ist, hat der zugehörige ProFTPD-Prozess die vordefinierten UID/GID des Users.
Damit gelten die Unixrechte uneingeschränkt und genauso als hätte man sich mit einer Shell eingeloggt! Zu Punkt zwei: das hatte ich nicht richtig realisiert - ich dachte, es ginge dabei nur um einen Admin. Nun ist klar. Den User kann man entweder durch geschickt gesetzte Unix-Rechte reglementieren oder aber durch die zwei "Directory"-Blöcke weiter oben in diesem Thread. Jetzt sollte aber alles geklärt sein. mfg. VolGas Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 17:22:58 Hab ich das richtig verstanden, dass ich für jeden FTP-User einen dazugehörigen FTP-User anlegen muss?
Irgendwie steh ich auf der Leitung! Dachte ich kann das mit SQL umgehen! Titel: Zugriffsrechte Beitrag von: VolGas am 03. Februar 2006, 18:23:47 Bitte einen, nein, besser gleich zwei Schritte zur Seite!
In mySQL werden zu den Usernamen UID/GID's vergeben, die nach einem erfolgreichen Einloggen dann von dem laufenden ProFTPD-Prozess übernommen werden. Das ist genau so, als hätte man sich als existierender Systemuser mit einer Shell eingeloggt, ohne daß aber dieser besagte Shelluser wirklich im System angelegt sein muß. Ebenso kann man auch im Filesystem mit nicht im System eingetragenen Usern und Gruppen arbeiten. Ich hoffe, ich habe mich nun verständlich genug ausgedrückt. mfg. VolGas Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 18:59:39 Darf ich dich noch ein (hoffentlich) letztes Mal nerven?
Code: # # /etc/proftpd.conf -- oxymoronsrv # ServerName "oxymoronsrv" ServerType standalone ServerAdmin support@oxymoron.at ServerIdent on "FTP Server ready." DeferWelcome on DefaultServer on Port 21 Umask 037 027 User nobody Group nogroup AllowOverwrite on AllowRetrieveRestart on AllowStoreRestart on MaxClientsPerHost 5 "Nicht mehr als %m Verbindungen" MaxClients 30 "Leider sind schon %m Clients verbunden" MaxLoginAttempts 3 MaxInstances 30 ShowSymlinks off TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DefaultRoot ~ DenyFilter \*.*/ UseReverseDNS off IdentLookups off RequireValidShell off ListOptions +R strict <Directory ~/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR SITE_CHMOD> AllowAll </Limit> </Directory> # SQL Zugangskontrolle SQLAuthTypes Plaintext SQLAuthenticate users* SQLConnectInfo sys_ftpserver@localhost USER PASSWORD SQLDefaultGID 65534 SQLDefaultUID 65534 SQLMinUserGID 100 SQLMinUserUID 500 SQLUserInfo users userid passwd uid NULL homedir NULL SQLHomeDirOnDemand off Passt das jetzt alles? Ist es nicht auf irgendeinem Weg über die Directory & Limit Anweisungen möglich einem Benutzer Zugriff (schreibend&lesend) auf den root (oberste Ebene aller per FTP zugänglichen Dateien) zu geben? Neu erstellte Dateien/Ordner haben die Berechtigung "rw-r-----"...stimmt das so? Titel: Zugriffsrechte Beitrag von: VolGas am 03. Februar 2006, 19:57:01 Die die Berechtigung "rw-r-----" ist für Dateien in Ordnung, aber für
Verzeichnisse sollte es "rwxr-x---" sein, sonst klappt das mit den Usern und dem Apachen nicht! Deinen "directory"-Block läßt momentan noch jeden in Dein "root"-Verzeichnis, es fehlt der Teil der weiter oben im Thread beschrieben wurde, um auch dieses zu sperren. Nach wie vor würde ich Dir noch einmal empfehlen, Deine Struktur zu überdenken! Jedem User sein eigenes home-Verzeichnis und dann dort für jede Domain ein Unterverzeichnis. Es wurde in diesem Thread nun alles relevante mindestens schon einmal angesprchen. Das sollte schon längstens ausreichen, damit Du von selbst weiterkommst. mfg. Volker Titel: Zugriffsrechte Beitrag von: maone am 03. Februar 2006, 20:06:50 Zitat von: "VolGas" Nach wie vor würde ich Dir noch einmal empfehlen, Deine Struktur zu überdenken! So ist es doch jetzt!Jedem User sein eigenes home-Verzeichnis und dann dort für jede Domain ein Unterverzeichnis. Titel: Zugriffsrechte Beitrag von: VolGas am 03. Februar 2006, 20:20:47 Schmeiß' den einen "Directory"-Block raus und dann:
Code: <Directory ~> <Limit WRITE> AllowUser administrator DenyAll </Limit> </Directory> <Directory ~/*> <Limit WRITE> AllowAll </Limit> </Directory> Feierabend! mfg. VolGas Titel: Zugriffsrechte Beitrag von: maone am 04. Februar 2006, 12:03:23 So kann keiner ins "Haupt"-Root?!
Also ins Root vom Admin!? Mit ist es lieber genau zu sagen was jeder darf: Code: <Directory ~> <Limit MKD RTFR RNTO DELE RMD STOR SITE_CHMOD> AllowUser administrator DenyAll </Limit> </Directory> <Directory ~/*> <Limit CWD MKD RTFR RNTO DELE RMD RETR STOR SITE_CHMOD> AllowAll </Limit> </Directory> Stimmt so, oder? "Umask 026 027" müsste doch stimmen, oder? Ich möchte für Dateien "rw-r-----" haben -> enspricht "640" -> 666-640 -> 026 Ich möchte für Ordner "rwxr-x---" haben -> enspricht "750" -> 777-750 -> 027 |