Il pacchetto bftpd_telsey_yymmdd.tar.gz contiene i sorgenti del programma bftpd scaricati dal sito http://bftpd.sourceforge.net e leggermente modificati per compilare ed eseguire sul telsey magic. I sorgenti telsey contengono gia' una versione precedente di bftpd fortemente modificata da broadcom per creare un server ftp utile per l'aggiornamento firmware. La versione contenuta nell'archivio invece e' la 1.6 e implementa tutte le principali funzioni di un server ftp. Chiaramente ha più senso se usato insieme a una disco esterno su cui memorizzare le home. UTENTI bftpd funziona utilizzando gli utenti di sistema. In particolare per l'utente anonymous conviene creare un utente e un gruppo apposito. Purtroppo /etc/passwd e /etc/group vengono creati dinamicamente all'avvio da cfm il quale sovrascrive i file se gia' presenti all'avvio e ogni volta che si modifica una password da interfaccia web. Dopo il cfm non si può aggiungere niente perche' non forka e non restituisce il prompt (con 'cfm &' purtroppo il router ha dei problemi). La soluzione è un po' sporca ma funziona: bftp esegue il fork, attende 10 secondi che cfm crei /etc/passwd e /etc/group dopodiche' aggiunge l'utente ftp. L'unica controindicazione è che dopo la modifica di una password da interfaccia web bisogna riavviare per riattivare l'utente ftp. Esiste anche la gestione di utenti su file ascii (non passwd) ma non mi ha funzionato correttamente l'accesso anonimo. MODIFICHE RISPETTO AI SORGENTI ORIGINALI BFTPD - Impostata la variabile daemonmode=1 per impostare il default in daemon mode poiche' cfm non passa parametri di avvio - Aggiunta una funzione per creare utente ftp e gruppo nogroup INSTALLAZIONE - Rinominare la directory originale /opt/bcm963xx_router/userapps/opensource/ftpd - Copiare il contenuto del file tar.gz in /opt/bcm963xx_router/userapps/opensource/ftpd - Copiare i file fwsyscall.* dalla directory originale - Modificare le impostazioni del file bftpd.conf a piacimento - Impostare la home dell'utente ftp nel file main.c (define ANON_PATH) - Compilare tutto il firmware come sempre CONFIGURAZIONE La configurazione di default e' la seguente: - Utente admin abilitato su tutto l'albero del fs in r/w - Utente anonymous in sola lettura su ANON_PATH (chrooted) - Utenti root, support, user e nobody disabilitati - Attivare il servizio ftp sulla WAN dall'interfaccia web NOTE Purtroppo non posso fornire il binario poiche' va ricompilato insieme al fw altrimenti la libc.so.0 non include tutto il necessario. La procedura e' un po' macchinosa ma il tempo a disposizione e' quello che e' per fare di meglio.