linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] pure ftpd e external authentication module

Rampage Rmp atomikramp a gmail.com
Lun 5 Dic 2011 14:51:31 UTC
Ciao ragazzi,
avrei bisogno di una mano da chi ne sa più di me (voi) perchè sto
diventando matto dietro ad un'installazione di pure-ftpd che non riesco a
far funzionare come vorrei.

in sostanza sto seguendo questo tutorial:

http://download.pureftpd.org/pub/pure-ftpd/doc/README.Authentication-Modules

che spiega come utilizzare dei moduli di autenticazione esterni
personalizzati per pure-ftpd,
Siccome io devo autenticare tutti gli teunti FTP verso un server IMAP (sì
lo so è una cosa aberrante ma purtroppo così è...)
mi sono cimentato un po' in python e ho buttato giù uno scriptino che
recita pressapoco così:

----------------------------------------------------------------------------
#!/usr/bin/python

import os
import imaplib
import fileinput

username = os.environ['AUTHD_ACCOUNT']
password = os.envoron['AUTHD_PASSWORD']
localip = os.envoron['AUTHD_LOCAL_IP']
localport = os.envoron['AUTHD_LOCAL_PORT']
remoteip = os.envoron['AUTHD_REMOTE_IP']
encrypted = os.envoron['AUTHD_ENCRYPTED']

uid=65000
gid=65000
trim = username.split("@")
utente = trim[0]
dominio = trim[1]
homedir = "dir:/var/utenti/"+ dominio + "/" + utente + "/ftp"

debug = open('/tmp/envvars.txt', 'w')
debug.write("check \n")
debug.write(username + '\n')
debug.write(password + '\n')
debug.write(utente + '\n')
debug.write(dominio + '\n')
debug.write(homedir + '\n')
debug.flush()
debug.close()

srv = imaplib.IMAP4_SSL("127.0.0.1")

try:
srv.login(username, password)
print 'auth_ok:1'
print 'uid:65000'
print 'gid:65000'
print homedir
print 'end'
except:
print 'auth_ok:o'
print 'end'
----------------------------------------------------------------------------

ora, l'autenticazione IMAP l'ho provata e di per sè funziona, infatti se
provo a far girare lo script in modalità standalone (commentando le env var
e hardcodando i dati, tutto fila liscio.

se però provo a "pluggare" lo script nel sistema di autenticazione dell'FTP
non funziona più nulla.

tra l'altro ho anche aggiunto delle righe di debug che dovrebbero scrivermi
in un file le variabili.
dal momento però che questo file non viene creato in /tmp, mi sorge il
dubbio che lo script non venga nemmeno chiamato.

non trovo nemmeno una voce dove poter alzare il livello di debug.

io pure-ftpd lo avvio come da guida:

pure-authd -s /var/run/ftpd.sock -r /usr/bin/ftp-auth-handler &
pure-ftpd  -lextauth:/var/run/ftpd.sock &


secondo voi dove sbaglio? qualcuno mi può dare una dritta?

grazie
Francesco
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lugbs.linux.it/pipermail/lug/attachments/20111205/0ff6b639/attachment.html>


Maggiori informazioni sulla lista Lug