FTP chroot met virtual directory

Pagina: 1
Acties:

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
Ik ben al enige tijd aan het kijken of ik dmv. chroot mensen ervoor kan laten zorgen dat ze niet uit hun home drive kunnen. Op zich gaat dat ook wel, maar nu komt het: ik wil er voor zorgen dat mensen in een bepaalde directory kunnen met data, maar ik wil niet deze directory naar hun homedrive copieren, omdat dit om enkele gig's gaat. Die gigabytes zijn voor elke persoon hetzelfde, dus als ik bijwijze van 10 keer 3 gigabyte moet copieren, dan heb ik 30 GB kwijt aan data.

Dus is mijn vraag hoe krijg ik dit voor elkaar? evt. wil ik ook wel van chroot afstappen.

Voor de duidelijkheid, ik heb gezocht op google e.d. maar het zou me weer niet vreemd in de oren klinken als ik met de verkeerde combinatie van woorden probeer.

Verwijderd

Je kan toch een symbolic link proberen te maken in je ftp server?

je vermeld niet welke server software je gebruikt, maar bij de meeste servers kan je een link maken naar een directory die je users dan kunnen volgen, waar ze bijv. read-only rights krijgen

  • koffiedrinker
  • Registratie: September 2002
  • Laatst online: 05-02 21:05

koffiedrinker

Archlinux werkt dagelijks

Volgens mij kan je dat ook met mount --bind doen. Dat lukt met de meeste programma's wel, omdat nu niet zien dat het een link is.

Koffie werkt echt!


Verwijderd

Verwijderd schreef op maandag 05 december 2005 @ 12:09:
Je kan toch een symbolic link proberen te maken in je ftp server?

je vermeld niet welke server software je gebruikt, maar bij de meeste servers kan je een link maken naar een directory die je users dan kunnen volgen, waar ze bijv. read-only rights krijgen
let daarbij ook op de list rechten voor je link

welke software gebruik je? bulletproof? serv-u of andere?

via bulletproof kan je het in de gui heel makkelijk instellen dat iedere gebruiker een home heeft maar via een link toch inlogt in je aangegeven directory hierbij wel nog in ogenschouw houden dat je even moet opletten dat die link dan als virtual dir geshowed wordt. en zorg dan gewoon dat men lees rechten en list rechten kijgt

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
Aangezien ik het hier in NOS post, zijn Bulletproof en Serv-u geen optie want dat is windows software.
Ik zal eens kijken naar mount --bind

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
koffiedrinker schreef op maandag 05 december 2005 @ 12:11:
Volgens mij kan je dat ook met mount --bind doen. Dat lukt met de meeste programma's wel, omdat nu niet zien dat het een link is.
Dat is het ook niet :)
Verwijderd schreef op maandag 05 december 2005 @ 12:09:
Je kan toch een symbolic link proberen te maken in je ftp server?
Je kunt met een chroot(2) geen symlinks buiten je chroot volgen.

Wat je (TS) wil kan trouwens met pure-ftpd en virtual-chroot support.

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
Inderdaad, heb net even lopen spelen met pure-ftpd en met de opties die erbij geleverd worden kom ik een aardig eindje. Heb nu ook weer de chrootjail draaien, maar kan het kloppen dat --dir-alliases in de debian package niet gebruikt is? Heb net namelijk de dir-aliases file aangepast, maar de aangemaakte virtuele directories komen niet tevoorschijn.

Heb al op de debian site gekeken, maar kan niets vinden over deconfiguratie opties die gebruikt zijn.

offtopic:
valt me op dat er voornamelijk informatie te vinden is in de asiatische landen en in het frans.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Als je de sourcepackage downloadt kun je precies de gebruikte compilatie-details zien. Ik was overig maar matig te spreken over de debian-packages van pure-ftpd, maar dat terzijde :)

  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Met proftpd is het vrij eenvoudig: om iedereen behalve jezelf te chrooten in hun home directory:
code:
1
DefaultRoot ~ !eigen_username

in /etc/proftpd.conf zetten. Maar, uit de documentatie
Care should be taken when using DefaultRoot. Chroot "jails" should not be used as methods for implementing general system security as there are potentially ways that a user can "escape" the jail.

Wie trösten wir uns, die Mörder aller Mörder?


Verwijderd

Symlinks worden standaard niet gevolgd door FTP-servers.
Je kan wel vaak ingeven in de configfiles dat de server die toestemming wel heeft.
Volgens mij kan dat met ProFTP via FollowSymLink on oid.
Check ff proftpd.org voor de juiste syntax.

Wees hier wel voorzichtig mee, ik kan me voorstellen dat onverlaten op het grote boze web de boel kunnen foppen en vreemde symblic links op je bak kunnen zetten. Maar misschien praat ik nu ook wel onzin.

Verwijderd

ge-flopt schreef op maandag 05 december 2005 @ 13:20:
Aangezien ik het hier in NOS post, zijn Bulletproof en Serv-u geen optie want dat is windows software.
Ik zal eens kijken naar mount --bind
Deze optie moet werken, maar waarom de TS niet post dat het probleem is opgelost? :X

Dit is precies hetzelfde probleem als [rml][ vsftpd] Is directory structuur mogelijk?[/rml]

[ Voor 13% gewijzigd door Verwijderd op 05-12-2005 22:25 ]


  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
Misschien omdat ik het op een andere manier aan het oplossen ben, misschien omdat ik bezig ben met andere zaken dan ftp+jail (ja wokken! :9~)..... :X

Maar Bloody NO! ik heb het inmiddels getest en pure-ftpd in combinatie met die mount optie does the rick, dus dank u!

[ Voor 29% gewijzigd door ge-flopt op 05-12-2005 23:38 ]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Verwijderd schreef op maandag 05 december 2005 @ 22:23:
[...]


Deze optie moet werken, maar waarom de TS niet post dat het probleem is opgelost? :X
Omdat het niet voor iedereen wenselijk is dat de hoeveelheid mounts die je nodig hebt schaalt met het aantal users. Terwijl een simpele symlink verder niemand in de weg zit (denk bijvoorbeeld aan de output van "mount"), nergens root nodig heeft en portable is naar andere besturingssystemen :)

Verwijderd

ge-flopt schreef op maandag 05 december 2005 @ 23:31:
Misschien omdat ik het op een andere manier aan het oplossen ben, misschien omdat ik bezig ben met andere zaken dan ftp+jail (ja wokken! :9~)..... :X
offtopic:
Eet smakelijk! Nouja, ik hoop dat je gisteren smakelijk gegeten hebt. ;)
Maar Bloody NO! ik heb het inmiddels getest en pure-ftpd in combinatie met die mount optie does the trick, dus dank u!
Gelukkig maar. De credits moeten eigenlijk naar Koffiedrinker gaan - hij was eerder dan ik. :)
Omdat het niet voor iedereen wenselijk is dat de hoeveelheid mounts die je nodig hebt schaalt met het aantal users. Terwijl een simpele symlink verder niemand in de weg zit (denk bijvoorbeeld aan de output van "mount"), nergens root nodig heeft en portable is naar andere besturingssystemen
Met symlinks zou hij de chroot uit moeten zetten - ook een mogelijkheid, maar toch ietsjes minder veilig.

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Verwijderd schreef op dinsdag 06 december 2005 @ 16:56:
Met symlinks zou hij de chroot uit moeten zetten - ook een mogelijkheid, maar toch ietsjes minder veilig.
De chroot hoeft niet uit, de chroot gebeurt op een andere manier, vandaar dat het "virtual chroot" heet. En er zitten inderdaad andere risico's aan dan aan een "normale" chroot, maar mijn voorkeur gaat in het algemeen uit naar deze optie, en die hoeft helemaal niet per definitie ietsjes minder veilig te zijn omdat "je chroot uit moet zetten" :)

  • Paul
  • Registratie: September 2000
  • Nu online
Voor Debian heb je packages voor pure-ftpd, gebruik ik ook. Of die in de officiele repository ook kloppen weet ik niet, maar als je op de pure-ftpd-site de link volgt naar de Debian Package Maintainer dan staan daar ook repositories.

Ik heb een jaar terug oid gemailed met die maintainer omdat --with-everything (waar hij mee compileerde) niet echt everything deed, namelijk --with-virtual-chroot zit er dan niet bij. Als je die wel gebruikt heb je dezelfde functionaliteit als met een echte chroot, maar met als verschil dat je ook symlinks naar buiten je chroot kunt volgen. De virtual-chroot controleerd dan of je niet alsnog buiten je gebied komt (met bhv ../../../ etcetera bijvoorbeeld).
Dan hoef je geen loo-back mounts te maken (want die zijn er geloof ik ook maar een beperkt aantal mogelijk).

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
Nou de loop back mounts heb ik er weer uit... zat effe te rekenen, dan zou ik ongeveer 30 loop back mounts moeten gaan maken, dat werkt niet.

Alleen stuit ik nu op een probleem. Mijn dir-aliases komen niet tevoorschijn, ik heb er twee aangemaakt om te testen, maar geen van beide werkt:
mp3
/mount/hde/media/audio

test
/test1234/test1
de mp3 is degene die buiten de chroot omgeving zit en de test zit in de chroot omgeving. Ik heb geen idee wat k fout doe, maar kan er op internet weinig over vinden. Kan iemand mij de goede kant op helpen?

  • Paul
  • Registratie: September 2000
  • Nu online
Welke ftp server gebruik je nu precies, waar haal je die packages vandaan, wat is je configfile en (misschien nog wel de belangrijkste) kun je in een shell als diezelfde user als waarmee je FTP't wel de symlink volgen?

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
Pureftp 1.19 (laatste van debian) ik heb ook de patch (deb source) geprobeerd die op de pureftpd site staat.
mijn config (/etc/pure-ftpd-common):
code:
1
2
3
4
5
STANDALONE_OR_INETD=standalone
VIRTUALCHROOT=true
UPLOADSCRIPT=
UPLOADUID=
UPLOADGID=

Voor degene die denken, hij heeft zijn capslock aan, nee zo staat het in de file

Mijn /etc/pureftpd-dir-aliases
code:
1
2
3
4
5
mp3
/mount/hde/media/audio

test
/test1234/test1


Maar jij hebt het nu over symlinks, maar ik ben nergens tegen gekomen dat ik symlinks moet gebruiken. Nu moet ik wel zeggen dat er zeer weinig info te vinden is over dir-aliases.

Maar symlinks werken toch niet "over" schijven heen, want die mp3 dir staat op een andere schijf.

  • MrBarBarian
  • Registratie: Oktober 2003
  • Laatst online: 07-03-2023
ge-flopt schreef op woensdag 07 december 2005 @ 21:12:
Nou de loop back mounts heb ik er weer uit... zat effe te rekenen, dan zou ik ongeveer 30 loop back mounts moeten gaan maken, dat werkt niet.

Alleen stuit ik nu op een probleem. Mijn dir-aliases komen niet tevoorschijn, ik heb er twee aangemaakt om te testen, maar geen van beide werkt:


[...]

de mp3 is degene die buiten de chroot omgeving zit en de test zit in de chroot omgeving. Ik heb geen idee wat k fout doe, maar kan er op internet weinig over vinden. Kan iemand mij de goede kant op helpen?
Er zijn PAM-modules die iets mounten op het moment dat je inlogt.. misschien is dat wat voor je..

iRacing Profiel


  • Feanaro
  • Registratie: Februari 2002
  • Laatst online: 25-11-2025
ik heb vsFTPd draaien, alle users ge'chroot en heb de directories die algemeen zijn gemount met
"mount -o bind [dir] [mnt point]"

Dit werkt prima, ik probeerder eerst symbolic links, maar dat werkt niet met chroot. Wat ik verder heb gedaan is een simpel bashscriptje geschreven dat die directories voor me mount.

Aurë Entuluva!


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
ge-flopt schreef op donderdag 08 december 2005 @ 18:46:


Maar jij hebt het nu over symlinks, maar ik ben nergens tegen gekomen dat ik symlinks moet gebruiken. Nu moet ik wel zeggen dat er zeer weinig info te vinden is over dir-aliases.

Maar symlinks werken toch niet "over" schijven heen, want die mp3 dir staat op een andere schijf.
Met de virtual-chroot optie van pure-ftpd werkt dat nou juist wel, die is precies daarvoor bedoeld, symlinks naar een ander filesystem. Ik gebruik precies hetzelfde namelijk, voor precies hetzelfde wat jij wil, en zonder dir-aliases gedoe of 3000 mount --bind's.

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
Feanaro, een klein stukje erboven heb ik al aangegeven dat dat niet is wat ik wil.

MrBarBarian, ik wil het liefst zonder mounts werken. Als er iets gebeurd waardoor iemand niet (goed) uitlogd dan blijven de mounts toch bestaan

Maar hoe maak ik die symlinks dan aan? ln commando? Want als je die in een shell gebruikt naar een andere schijf dan werkt dat niet.

[ Voor 26% gewijzigd door ge-flopt op 09-12-2005 23:14 ]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
ge-flopt schreef op vrijdag 09 december 2005 @ 23:13:
Maar hoe maak ik die symlinks dan aan? ln commando? Want als je die in een shell gebruikt naar een andere schijf dan werkt dat niet.
Als je de manpage van ln leest staat daar precies uitgelegd hoe je een symlink maakt :)

  • jealma
  • Registratie: Mei 2003
  • Niet online

jealma

Jesus is Lord!

(overleden)
Ik gebruik VSFTPD en ik heb het volgende erop gevonden:

Stel voor dat het path waar de bestanden staan die je wilt delen, /shared is.
Dan maak je de ftp gebruikers aan, en geef je die de /bin/false shell en als homedirectory /shared.
Achter /shared maak je een map users waarin je een mapje voor elke user maakt. Nu alleen nog de rechten goed zetten (chmod 700 voor elke gebruikersdirectory) en voila. Dan kun je elke gebruiker chrooten in de homedirectory, heb je geen symlinks nodig en het is betrekkelijk veilig. Alleen dus wel zorgen dat je rechten goed staan.

Dit is de manier die ik gebruik.

Avalon, Fireflight, Gaither, Point of Grace, Third Day
C2D E6400 @ 3GHz - Zalman CNPS8000 - GA-P35-DS3 - Corsair 2GB ram - Asus 9400GT - OCZ Vertex 30GB
Archlinux 64-bit + Awesome


  • MrBarBarian
  • Registratie: Oktober 2003
  • Laatst online: 07-03-2023
ge-flopt schreef op vrijdag 09 december 2005 @ 23:13:
MrBarBarian, ik wil het liefst zonder mounts werken. Als er iets gebeurd waardoor iemand niet (goed) uitlogd dan blijven de mounts toch bestaan
Ik snap je punt.

Maar opzich zou het niet goed uitloggen geen probleem mogen zijn -> zosnel je sessie wordt gekilled, gebeurt hetzelfde met de mount.. of de user nou de sessie killed of er een timeout langsloopt mag niet uitmaken..

Maar dit terzijde ;)

iRacing Profiel


  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
blaataaps schreef op vrijdag 09 december 2005 @ 23:22:
[...]
Als je de manpage van ln leest staat daar precies uitgelegd hoe je een symlink maakt :)
Dat begrijp ik, maar zover mij altijd is uitgelegd, kan een symlink niet verwijzen naar een ander mount object (Parititie of Schijf)
jealma schreef op vrijdag 09 december 2005 @ 23:36:
Ik gebruik VSFTPD en ik heb het volgende erop gevonden:

Stel voor dat het path waar de bestanden staan die je wilt delen, /shared is.
Dan maak je de ftp gebruikers aan, en geef je die de /bin/false shell en als homedirectory /shared.
Achter /shared maak je een map users waarin je een mapje voor elke user maakt. Nu alleen nog de rechten goed zetten (chmod 700 voor elke gebruikersdirectory) en voila. Dan kun je elke gebruiker chrooten in de homedirectory, heb je geen symlinks nodig en het is betrekkelijk veilig. Alleen dus wel zorgen dat je rechten goed staan.

Dit is de manier die ik gebruik.
Dat is inderdaad ook een optie, maar mijn spullen staan op verschillende schijven en partities... Dus dan werkt deze optie niet, jammer genoeg. Mount points aanpassen is in dit geval geen optie.

[ Voor 58% gewijzigd door ge-flopt op 10-12-2005 17:45 ]


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
ge-flopt schreef op zaterdag 10 december 2005 @ 17:42:
[...]

Dat begrijp ik, maar zover mij altijd is uitgelegd, kan een symlink niet verwijzen naar een ander mount object (Parititie of Schijf)
Een normale (hard-)link kan inderdaad niet naar een ander filesystem wijzen, een symbolische link kan dat wel, dat is namelijk niets anders dan een symbolische verwijzing naar een andere lokatie.

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
Ok blaataaps, dus even om het geheel te resumeren:
Ik maak een symlink aan en maak deze ook aan in de dir-aliases file en dan werkt het ... ?!

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
ge-flopt schreef op zaterdag 10 december 2005 @ 17:46:
Ik maak een symlink aan en maak deze ook aan in de dir-aliases file en dan werkt het ... ?!
Ik heb nog nooit iets met dir-aliases of wat dan ook gedaan. Ik compile met virtual-chroot support, maak users aan met als homedir /home/user/./ (/./ om aan te geven dat ie gechroot moet geloof ik, maar dat is wel gedocumenteerd), en dan werkt het. Als de client dan chdir't naar een plek waar de symlink heenwijst, zeg van /home/user/link naar /data/stuff/link, werkt dat. De user zit dan in een nieuwe virtuele chroot op /data/stuff/link .
Om dit zinvol te laten zijn moet je zorgen dat de users in kwestie niet zelf kunnen symlinken, maar dat is meestal geen punt; als ze al een shell hebben is een chroot via ftp al niet zo zinvol meer.

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 14:45
.................. Dat het zo simpel zou zijn :( Dit is echt zo iets, dat heel moeilijk lijkt maar ow zo simpel is. Dank je..
Pagina: 1