[pure-ftpd] apt-get of handmatig - virutal users willen niet

Pagina: 1
Acties:

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 07:47

Kaastosti

Vrolijkheid alom!

Topicstarter
Een tijdje terug heb ik een dergelijk topic gestart over pure-ftpd, waarbij ik niet in kon loggen met virtual users. Vandaag dit projectje maar weer eens opgepakt en met frisse moed en een boel handleidingen aan de slag gegaan. Het gevolg hiervan is dat ik nu met twee verschillende installaties van pure-ftpd zit.
1) apt-get install pure-ftpd
2) handmatig installen, configuren en installen
Het probleem met de virtual users blijft helaas bestaan. Nu echter met een extra moeilijkheidsgraad: Door de verschillende installaties door elkaar heen, heb ik nu echt geen idee meer welke bestanden nu wel en niet gebruikt worden.

Als ik apt-get remove pure-ftpd geef, wordt er wel iets gedaan, maar /etc/pure-ftpd blijft gewoon bestaan. Aangezien dat de directory is waar het programma door apt-get wordt neergezet, ga ik er ook van uit dat deze weer weggehaald wordt als ik heel duidelijk opgeef dat ik van het programma af wil.

De commando's pure-pw, pure-pwconvert en pure-statsdevode komen voor in zowel /usr/bin als in /usr/local/sbin. In /usr/local/sbin staan nog meer commando's voor pure-ftpd, waarom het er daar meer zijn, geen idee. Het moge duidelijk zijn, ik ben geen linux guru.

De pure-ftpd deamon draait en ik kan inloggen met een account, wat ook een account is op het systeem zelf. Op het moment dat ik een virtual user 'test' aanmaak en deze wijziging door voer, staat er in /etc/pureftpd.passwd ook netjes die gebruiker. Bij het verbindine met de ftp krijg ik echter het bekende bericht "530 Authentication failed, sorry".

Hierin ben ik niet de enige, heel veel mensen krijgen problemen op het moment dat virtual users de hoek om komen kijken. Helaas wordt dus in elke uitleg die ik tegen ben gekomen verwezen naar bestanden die hier niet eens aanwezig zijn (pureftpd.conf bijvoorbeeld). Op dat moment stopt dus dat pad en moet ik op zoek naar een volgende handleiding. Ondertussen heb ik er een stuk of 6 gehad die allemaal dood lopen :|

OS: Debian Sarge
Pure-ftpd apt-get: 1.0.19-4
Pure-ftpd handmatig: 1.0.20

Bij handmatige installatie heb ik gebruik gemaakt van deze howto: link

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Paul
  • Registratie: September 2000
  • Nu online
Het is normaal dat bij apt-get remove de bestanden in /etc/ blijven staan, dit voor het geval je het later toch opnieuw wilt installeren, dan heb je je oude configuratiebestanden nog.

Je hebt http://pureftpd.org/README.Virtual-Users gelezen neem ik aan?

Omdat ik pure-ftpd-mysql onder Woody wilde gebruiken heb ik de apt-regels uit http://pureftpd.org/README.Debian gebruikt, zelfs nog met de maintainer gemailed omdat ik niet wist ofdat ik iets fout deed of dat hij geen --with-virtualchroot en --with-largefile gebruikte :P

Mijn virtual users werken iig (icm MySQL) vlekkeloos.

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


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 07:47

Kaastosti

Vrolijkheid alom!

Topicstarter
Ik heb zitten testen wat er gebeurt op het moment dat ik een gebruiker uit die pureftpd.passwd haal en opnieuw wijzigingen doorvoer. Helemaal niets dus, die gebruiker kan dan nog steeds inloggen. Geen idee dus waar hij die gegevens opslaat. Geen toegang tot mysql, en geen andere pureftpd.passwd bestanden.

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Kaastosti schreef op donderdag 09 juni 2005 @ 15:37:
Ik heb zitten testen wat er gebeurt op het moment dat ik een gebruiker uit die pureftpd.passwd haal en opnieuw wijzigingen doorvoer. Helemaal niets dus, die gebruiker kan dan nog steeds inloggen. Geen idee dus waar hij die gegevens opslaat. Geen toegang tot mysql, en geen andere pureftpd.passwd bestanden.
Hij haalt de gegevens standaard niet uit /etc/pureftpd.passwd volgens mij, maar uit de pdb, een binary versie van dat bestand. Als je dus je .passwd verandert en de veranderingen niet doorvoert met een pure-pw mkdb zal de pure-ftpd binary die veranderingen niet weten natuurlijk. In geval van dergelijke twijfel kun je ook altijd nog met lsof/strace of iets dergelijks kijken welke bestanden de draaiende daemon allemaal benadert.
Je kunt trouwens op de commandline ook gewoon meegeven welke authenticatiemethode en welk bijbehorende bestand hij moet gebruiken.

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 07:47

Kaastosti

Vrolijkheid alom!

Topicstarter
Dat klopt, en dat laatste heb ik niet gedaan. Daarom zal hij ook de standaard benamingen gebruiken, dus pureftpd.passwd en pureftpd.pdb. Zoals ik al zeg in het stukje wat je quote, voer ik de wijzigingen wel door, dus ook het pdb bestand wordt aangepast (tenminste, daar ga ik dan maar van uit ;))

Eens kijken waar ik met lsof en strace achter kan komen.

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Ah, ik had het doorvoeren niet opgevat als mkdb'en :)
Je kunt met ls of iets anders wel zien of de .pdb ook aangepast wordt, en je kunt ook nog proberen de defaultwaarden eens mee te geven. Je geeft aan dat systeemusers wel in kunnen loggen, ik weet niet met welke argumenten je de daemon start, maar het kan zijn dat hij nog default alleen systeemusers toelaat.

  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 07:47

Kaastosti

Vrolijkheid alom!

Topicstarter
De handleiding die ik gebruikt heb (zie startpost) doet mij de deamon starten met de volgende argumenten:
/usr/local/sbin/pure-ftpd -A -b -B -c 5 -C 2 -E -j -l puredb:/etc/pureftpd.pdb -R -u 1 -X
-A --chrooteveryone
-b --brokenclientscompatibility
-B --deamonize
-c 5 --maxclientsnumber 5
-C 2 --maxclientsperip 2
-E --noanonymous
-j --createhomedir
-l login pureftpd.pdb
-R --nochmod
-u 1 --minuid 1
-X -- prohibitdotfileswrite

Mooie opties volgens mij :P

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 07:47

Kaastosti

Vrolijkheid alom!

Topicstarter
Om het topic toch maar een schopje te geven (aangezien ik het nog niet werkend heb gekregen) en om wat meer informatie te geven:

De bestanden in /etc worden in ieder geval gebruikt. Ik heb het dan over pureftpd.passwd en pureftpd.pdb. Als ik in de eerste een account er uit gooi en pure-pw mkdb geef, verdwijnt deze ook uit het pdb bestand. Het rare is echter wel, dat ik kan inloggen met accounts die op het systeem zelf bestaan, ook al zijn deze niet aanwezig in het pdb bestand. Dus ondanks dat deze wordt geupdate met mkdb, lijkt hij niet gebruikt te worden door pure-ftpd zelf.

Dat zou ook verklaren waarom ik bij het inloggen met het systeem-account, standaard in de home directory van die user kom, in plaats van in /var/www, welke ik op heb gegeven bij het aanmaken van het account.

Die pureftpd.passwd en pdb staan in /etc en in /etc/pureftpd, waarbij beiden niet gebruikt lijken te worden. Ik zie echt niet waar logins anders opgeslagen worden :|

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Paul
  • Registratie: September 2000
  • Nu online
Dat gewone users nog in kunnen loggen is wel vaag, het lijkt net of je server die hele -l niet meekrijgt?
Jammer dat het een textfile is, anders had ik een anchor kunnen geven naar http://pureftpd.org/README maar daar staat:
------------------------ AUTHENTICATION ------------------------


Pure-FTPd supports multiple methods of authentication. To use a method, you
must have it compiled in (check the ./configure options) .

- To use Unix authentication (the traditional /etc/passwd file), add the
following option when you run the server:

[..]

Multiple authentication methods can be chained. For instance, you can run the
server like this:

/usr/local/sbin/pure-ftpd -lldap:/etc/pureftpd-ldap.conf \
-lpuredb:/etc/pureftpd.pdb -lunix

Every method is tried in order. With the previous command line, an LDAP
directory is probed first. If a user isn't found in the directory, a
PureDB database is scanned for the same user name. If that user is still not
found, /etc/passwd is scanned.

If the user is found in the LDAP directory, but the given password is wrong,
further authentication methods are skipped.

If you don't specify any -l option, PAM is assumed by default if the server
is compiled with PAM support and Unix is assumed by default otherwise.
Als ik me niet vergis staat de hele commandline er bij als je ps aux gebruikt. Staat hij daar ook tussen?
Het package maakt namelijk gebruik van bestanden in /etc/pureftpd/conf, die weer worden geparsed door /etc/init.d/pure-ftpd...

Wat als je daar een "echo /etc/pureftpd.pdb > /etc/pureftpd/conf/login" en vervolgens een "/etc/init.d/pure-ftpd restart" doet?

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


  • Kaastosti
  • Registratie: Juni 2000
  • Laatst online: 07:47

Kaastosti

Vrolijkheid alom!

Topicstarter
ps aux|grep pure
root 1900 0.0 0.0 2096 664 ? Ss Jun09 0:00 pure-ftpd (SERVER)
Helaas, niet de hele commandline dus

Wat zou die 'login' moeten gaan doen dan? Dan creëer ik toch alleen maar een text file met die login gegevens uit het pdb bestand? Hoe dan ook...
sudo echo /etc/pureftpd.pdb > /etc/pure-ftpd/conf/login
-bash: /etc/pure-ftpd/conf/login: Permission denied

Een vergissing is menselijk, maar om er echt een puinhoop van te maken heb je een computer nodig.


  • Paul
  • Registratie: September 2000
  • Nu online
Je hebt gelijk, ik krijg die hele regel met opties te zien als ik hem handmatig start :)

Hoe start je precies die server? Ik gebruik het blijgeleverde scriptje van de Debian package. De commandline optie --login geeft aan op welke manier er ingelogd moet worden, waar hij zoekt naar users en wachtwoorden :) Het opstartscriptje leest alle bestanden in die dir uit en tovert ze om naar command-line switches. dmv bestanden daar configureer je (de Debian versie van) PureFTPd :)

zeddicus:/etc/pure-ftpd/conf# ll
total 48
-rw-r--r--  1 root root 38 May  3 19:31 AltLog
-rw-r--r--  1 root root  4 May  3 11:17 AnonymousCantUpload
-rw-r--r--  1 root root 17 Jun  5 18:57 ForcePassiveIP
-rw-r--r--  1 root root  3 May  3 11:17 MaxClientsNumber
-rw-r--r--  1 root root  2 May  3 11:17 MaxClientsPerIP
-rw-r--r--  1 root root  5 Feb 14  2004 MinUID
-rw-r--r--  1 root root 29 Feb 14  2004 MySQLConfigFile
-rw-r--r--  1 root root 12 Jun  5 18:57 PassivePortRange
-rw-r--r--  1 root root  4 May  3 11:18 ProhibitDotFilesRead
-rw-r--r--  1 root root 28 Feb 14  2004 PureDB
-rw-r--r--  1 root root  5 May  3 02:33 TrustedGID
-rw-r--r--  1 root root  3 May 23 16:52 UnixAuthentication


Je krijgt een Access Denied? Of je hebt geen schrijfrechten op de dir en het bestand bestond nog niet, of het bestand bestaat wel maar je hebt daar geen schrijfrechten. Ik denk dat nu alleen cat als root uitgevoerd wordt en je pipe met de normale user :P sudo nano /etc/pure-ftpd/conf/login ?

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


  • Thc_Nbl
  • Registratie: Juli 2001
  • Laatst online: 07-02 11:13
Jouw oplossing is denk ik toch simpel

wat voor UID heeft de virtuele user, deze MOET 1000 of meer zijn.
anders wordt deze ten alle tijden geweigert.

als je apt-get remove --purge pure-ftpd ( of dpkg --purge packetnaam) doet wordt echt alles verwijderd,
uitgezonderd de bestanden en directories die je zelf hebt aangemaakt/gekopieerd
in de pure-ftpd directory.

een mooie oplossing is
apt-get install pure-ftpd-mysql

en installeer deze erbij
http://machiel.generaal.n...ubject=pureftpd#subject_2
als de de howto lees gewoon een beetje debianize en dit werkt prima.
of gebruik pure-ftpd met de puredb en installeer deze webmin module.
http://www.lashampoo.net/unix/pureftpd.wbm

ehhh.. noppes


  • Paul
  • Registratie: September 2000
  • Nu online
Thc_Nbl schreef op vrijdag 10 juni 2005 @ 18:58:
Jouw oplossing is denk ik toch simpel

wat voor UID heeft de virtuele user, deze MOET 1000 of meer zijn.
anders wordt deze ten alle tijden geweigert.
Kleine wijziging aangebracht ;)
Kaastosti schreef op donderdag 09 juni 2005 @ 16:20:
De handleiding die ik gebruikt heb (zie startpost) doet mij de deamon starten met de volgende argumenten:
/usr/local/sbin/pure-ftpd -A -b -B -c 5 -C 2 -E -j -l puredb:/etc/pureftpd.pdb -R -u 1 -X
-A --chrooteveryone
-b --brokenclientscompatibility
-B --deamonize
-c 5 --maxclientsnumber 5
-C 2 --maxclientsperip 2
-E --noanonymous
-j --createhomedir
-l login pureftpd.pdb
-R --nochmod
-u 1 --minuid 1
-X -- prohibitdotfileswrite

Mooie opties volgens mij :P
Die optie kun je niet voor niets meegeven :)

Ik had pure-ftpd-mysql bewust niet aangeraden omdat dit ook werkend te krijgen moet zijn :P
Ikzelf ben voornamelijk voor de MySQL-variant gegaan vanwege de FTPStats en PureFTPd User Manager, beiden te vinden op http://pureftpd.org/thirdparty.shtml , en dat werkt gewoon :)
Nu ja, ik ben sinds de overstap van Stable/Woody naar Stable/Sarge nog aan het prutsen met FTPStats, omdat die nu iedere keer ALLE transfers toevoegt, maar daar kom ik nog wel uit denk ik :P

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

Pagina: 1