Costruire un server di archiviazione per studenti


10

Lavoro in un distretto scolastico. Sono stato incaricato di costruire un server di archiviazione per gli studenti. Un posto dove lavorare fuori da scuola e da casa.

La mia sfida è far funzionare questo da casa. A scuola accedono, si autenticano e ottengono un'unità mappata nella loro cartella sul server ( S:\fileserver\studentname).

La mia domanda è: come posso renderlo disponibile per gli studenti a casa?

Il server esegue Windows Server 2008 R2. Ho PHP, Apache e MySQL che lavorano insieme. La mia idea è quella di scrivere uno script che "esegua la scansione" attraverso la directory contenente tutte le cartelle degli studenti, quindi creare un'istanza di ogni file e cartella in un database MySQL. Crea una pagina di accesso che utilizzerà LDAP per l'autenticazione e una volta effettuato l'accesso al server da casa, ottengono una pagina con cartelle e file collegati al loro nome utente.

Qualcuno là fuori ha mai messo insieme qualcosa del genere ??


2
di cosa hanno bisogno per essere in grado di fare? il tuo titolo mi dice che è necessario un login ftp. Accesso completo alla macchina remota = Connessione desktop remoto.

1
Che dire di FTP?
m4tt1mus,

3
Il problema con la tua idea php / apache / mysql è che fornirà loro un elenco di file in una pagina web. Non appena fanno clic / scaricano un file su cui lavorare, avrai 2 versioni, una sul tuo server e una sul computer a casa dello studente. Questo è destinato a portare a molti problemi. Dovrai creare una sorta di unità virtuale per i tuoi studenti.
jeroen,

Per non parlare del fatto che stai aprendo i dati principali del server sul World Wide Web, questo è qualcosa che non dovresti fare, se qualcuno ottiene radice da PHP, allora saluta i tuoi dati.
RobertPitt,

Hai considerato una qualche forma di CMS? Se hanno solo bisogno di gestire documenti standard in stile ufficio, qualcosa come Alfresco probabilmente funzionerebbe bene.
ErnieTheGeek,

Risposte:


18

Se insisti nel fare questo (invece di andare con la risposta di @sweaves), inizierei da:

  1. rilasciare Php, Apache e MySql. Non sono necessari e introdurranno i loro mal di testa.

  2. Installa e attiva un server FTPS. In questo senso potresti prendere in considerazione il dumping di Windows Server 2003 a favore di 2008 R2. In IIS 7 sono integrati elementi FTP molto migliori. Http://blogs.technet.com/b/chrisavis/archive/2008/06/12/how-to-configure-ftp-over-ssl-secure-ftp-on- finestre-2008-a-meno-che-10-minutes.aspx

  3. Se non puoi farlo, dai un'occhiata a come impostare File Zilla per lavorare con AD. http://retrohack.com/enabling-filezilla-server-integration-with-active-directory-authentication/

  4. Un'altra opzione (grazie a @jscott) è utilizzare WebDav ( http://www.iis.net/download/webdav ). Ecco un'altra scuola che fa esattamente la stessa cosa: http://kb.iu.edu/data/araf.html

  5. Puoi anche impostare un "> server SFTP. SFTP supporta accessi senza password, ma non è supportato in Windows.

Nota a margine, la soluzione filezilla è più lavoro di gestione rispetto a IIS 7.


2
+1 per SFTP e non FTP
RobertPitt,

1
Questa è sicuramente la strada da percorrere. Ho un sistema Linux che fa praticamente la stessa cosa: una singola area di archiviazione accessibile su SMB quando gli studenti sono nel campus e su SFTP quando sono fuori dal campus. Gli studenti possono usare WinSCP , client FileZilla , Fugu o qualunque cosa parli SFTP quando sono fuori dal campus.
Mike Renfro,

Quello che ha detto ...
Bart Silverstrim,

4
Potresti voler aggiungere WebDav anche lì. Gli utenti Windows possono facilmente mappare una condivisione WebDav come lettera di unità - OSX, anche Linux ha un supporto decente. Super semplice da configurare in IIS, anche se le case degli studenti si trovano su un altro server.
jscott,

1
@jscott: la mia esperienza con il supporto WebDAV integrato di Windows è stata piuttosto negativa (prestazioni orribili sotto XP, in particolare). Ma se funziona in qualche altro ambiente non ho provato, così sia.
Mike Renfro,

11

Una soluzione molto più semplice sarebbe quella di configurare una VPN. Lo studente può quindi accedere alla VPN e accedere a tutte le sue risorse come se fossero seduti all'interno del campus. Scopri i dettagli ... http://lifehacker.com/162563/how-to-set-up-free-vpn


Non pensare che questo possa funzionare qui. Dobbiamo farlo funzionare senza installare nulla sui computer di casa dei nostri studenti.

4
@DobotJr: ti rendi conto che farlo senza una sicurezza VPN è una grande preoccupazione? Ti rendi anche conto che i sistemi studenteschi sono alcuni degli oggetti più hackerati là fuori?
NotMe,

Vorrei suggerire Orda allora. Rendi il tuo server accessibile a Internet e installa Horde, è un browser di posta e file. Mappa i file dalla condivisione locale degli utenti a un'interfaccia Web per il download / upload.

@sweaves il link dal sito degli hacker di vita è interrotto, ti suggerisco di collegarti a un altro tutorial

@Dagon - ah hai davvero ragione, questo è live sebbene compnetworking.about.com/od/vpnsetup/…

5

Cosa devono fare esattamente? Ottieni l'accesso? Se lo apri su FTP, stai chiedendo grandi problemi. Se hanno bisogno di accesso a strumenti coerenti per lavorare sui documenti della scuola, apri un server (o cluster) per i servizi di desktop remoto.

Sì, devono installare il client desktop remoto se non lo hanno già (probabilmente lo fanno già) ma il client è disponibile gratuitamente per Linux, Windows e Mac. La connessione è crittografata e possono avere accesso a tutto ciò che la tua scuola sta usando per Office o altri strumenti, a meno che tu non stia eseguendo qualcosa di pesante come Photoshop.

Se si utilizza RDP, si ottiene la crittografia, si ottiene una porta da aprire sul firewall e si ottiene la standardizzazione delle utilità (no "Ho fatto questo a casa e ha funzionato bene, perché non si apre qui?" Reclami) più gestione centralizzata. Ho visto problemi simili come questo risolti esattamente in questo modo diverse volte e solo in circostanze specifiche ci sono stati problemi.

Inoltre non hai studenti con più copie di documenti che si lamentano del fatto che non sanno PERCHÉ il loro documento è la versione sbagliata perché ha funzionato FINE a casa ... o non l'hanno salvato nel posto giusto .. .eccetera.


3

Che ne dici di WebDAV?

Questo è supportato in apache e potresti ancora usare LDAP per l'autenticazione.

Gli utenti sarebbero in grado di accedere ai propri file da un browser e le versioni moderne di Windows e OS X consentono agli utenti di montare le condivisioni WebDAV rispettivamente in Explorer e Finder.

È stato anche impedito i problemi associati al tentativo di memorizzare lo stato di un file system in costante cambiamento in sincronia con un database nel metodo propedeut.


1

Dai un'occhiata ad Adito / OpenVPN ALS . È gratuito, verrà installato su Windows o Linux, e lo rende estremamente facile da configurare un'interfaccia web per la condivisione di file, così come molte altre caratteristiche. Lo uso al college dove lavoro. Ha alcuni aspetti negativi: richiede che java sia installato sui client, attiva il blocco pop-up su molti browser, l'impostazione del certificato potrebbe essere più semplice e la visualizzazione paginata per gli elenchi di file potrebbe essere più semplice. Se scegli di configurare webdav, può essere utilizzato per rendere più semplice (e più affidabile) la mappatura delle unità corrette per i tuoi utenti.


1

Come altri hanno già detto - non usare FTP - ci sono molte, molte cose che non vanno. OTOH, probabilmente dovresti usare un protocollo che non richiede agli utenti di installare software lato client aggiuntivo; sebbene l'accesso basato su ssh (sftp, scp) sia l'ideale, le macchine MSWindows non hanno un client standard.

Non ci sono finali di file manager disponibili scritti in PHP (e probabilmente anche in altre lingue). IIS fa alcune cose molto strane con il tunneling delle autorizzazioni NTLM - ma se stai usando Apache dovrebbe essere ragionevolmente sicuro - tuttavia accedere alle unità non è così semplice come leggere da \ server \ nomeutente \ - dovresti consentire diritti di amministratore del server web su questi file - ma questo è un incubo di sicurezza!

Il modo in cui lo faccio (per un tipo di applicazione molto diverso) è gestire l'I / O tramite smbclient usando il nome utente / la password della sessione PHP degli utenti - ma su un computer Linux - AFAIK, non esiste un equivalente su MSWindows.

Certamente si desidera utilizzare le credenziali fornite dall'utente per autenticarsi rispetto allo spazio di archiviazione.

Questo sta diventando rapidamente complicato!

Quindi una soluzione pratica sarebbe quella di consentire agli studenti di mappare le unità su Internet. In questo modo non dovrai preoccuparti delle complicazioni legate alla fornitura di un file manager che non è parte integrante del sistema operativo (cioè direttamente accessibile dalle applicazioni). Ma non vuoi esporre il tuo server a nessuno. Il solito modo di risolvere questo problema sarebbe una VPN - e ce ne sono molte disponibili a basso costo . O semplicemente avvolgere il servizio in SSL con l'autenticazione del certificato client. Ma di nuovo ciò richiede installazioni lato client.

Così.....

Che ne dite di un modulo web per autenticare un utente a un indirizzo IP che crea un buco nel tempo limitato nel firewall affinché quell'indirizzo IP si connetta tramite SMB (e devono comunque fornire un nome utente / password per mappare l'unità ovviamente) .


"there are many, many things wrong with [FTP]"- In realtà, ci sono solo alcune cose che non vanno in ftp, ma sono cose davvero importanti . ;) Alla fine lo stesso
Joel Coel,

0

PS: personalmente penso che avrai un tasso di successo molto migliore se porti il ​​tuo sistema su * nix, perché sarebbero disponibili (liberamente) più alternative

Cosa viene in mente:

Dropbox:

carica le modifiche su Dropbox . La cosa grandiosa di dropbox è che offrono un piano gratuito di 20 GB (in questo momento) e possono essere utilizzati con qualsiasi sistema operativo popolare (Windows / Linux / MacOSX) senza problemi. Non ho ancora letto / implementato nulla utilizzando l' API Dropbox , ma spero che tu possa ottenere senza troppi mal di testa. Immagino che il problema sia quello che succede quando cambiano il piano tariffario, ma questo è qualcosa per dopo.

Alternative Openbox di Dropbox

Dopo aver eseguito una rapida ricerca su Google, questo link fornisce alcune alternative open-source, ma non so se qualcuna di esse sia valida, quindi dovresti testarla.

ragnatela

Invece di offrire agli utenti l'opzione di sincronizzazione, offri loro solo l'opportunità di scaricare file / cartelle (zippati). Penso che potresti scrivere un sistema del genere senza troppi rimostranze.

VPN / RPC

Come alcuni altri utenti hanno detto, dare all'utente l'accesso tramite VPN / RPC.


2
Gli studenti devono poter accedere con il loro nome utente e password di rete che usano tutti i giorni a scuola. Ecco perché questo deve sincronizzare w / active directory in qualche modo. Quindi dropbox non è un'opzione. Grazie comunque.
DobotJr

Penso che potresti riuscire a mappare quelle credenziali sulle credenziali del dropbox in qualche modo, ma buona fortuna signore.
Alfred,

0

Dai un'occhiata a Ajaxplorer ( http://www.ajaxplorer.info )

È un file manager basato sul web (scritto in PHP e Javascript) che fornisce una facile amministrazione di autorizzazioni, utenti, gruppi e puoi impostare repository condivisi e personali.

Può anche fare webdav e ha connettori di autenticazione per tutti i tipi di sistemi (ldap, mysql, flatfile .....)

con i connettori del filesystem è possibile impostare regole per mappare automaticamente gli account utente alle singole directory che risolveranno i requisiti per l'accesso all'unità mappata dell'utente.

Abbiamo appena iniziato a usarlo qui (design / web agency) e i clienti di tutte le capacità tecniche lo trovano molto facile da usare / capire

Dovresti essere in grado di integrarlo nel tuo sistema attuale senza modifiche

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.