Yo trabajo para un distrito escolar. Me pusieron a cargo de construir un servidor de almacenamiento para estudiantes. Un lugar para trabajar desde la escuela y el hogar.
Mi desafío es lograr que esto funcione desde casa. En la escuela, inician sesión, se autentican y obtienen una unidad asignada a su carpeta en el servidor ( S:\fileserver\studentname
).
Mi pregunta es ¿cómo puedo poner esto a disposición de los estudiantes en casa?
El servidor ejecuta Windows Server 2008 R2. Tengo PHP, Apache y MySQL trabajando juntos. Mi idea es escribir una secuencia de comandos que se "arrastre" a través del directorio que contiene todas las carpetas de los estudiantes, y luego crear una instancia de cada archivo y carpeta en una base de datos MySQL. Cree una página de inicio de sesión que utilizará LDAP para la autenticación, y una vez que inicien sesión en el servidor desde casa, obtendrán una página con carpetas y archivos vinculados a su nombre de usuario.
¿Alguien por ahí ha puesto algo como esto?
Respuestas:
Si insiste en hacer esto (en lugar de ir con la respuesta @sweaves), entonces comenzaría por:
dejando caer Php, Apache y MySql. No son necesarios e introducirán sus propios dolores de cabeza.
Obtenga un servidor FTPS en funcionamiento. En este sentido, puede considerar deshacerse de Windows Server 2003 a favor de 2008 R2. IIS 7 tiene elementos FTP mucho mejores integrados. Http://blogs.technet.com/b/chrisavis/archive/2008/06/12/how-to-configure-ftp-over-ssl-secure-ftp-on- windows-2008-en-menos-10-minutos.aspx
Si no puede hacer esto, mire esto para saber cómo configurar File Zilla para que funcione con AD. http://retrohack.com/enabling-filezilla-server-integration-with-active-directory-authentication/
Otra opción (gracias @jscott) es usar WebDav ( http://www.iis.net/download/webdav ). Aquí hay otra escuela que hace exactamente lo mismo: http://kb.iu.edu/data/araf.html
También puede configurar un "> servidor SFTP. SFTP admite inicios de sesión sin contraseña, pero no es compatible con Windows de fábrica.
Nota al margen, la solución filezilla es más trabajo de administración que la de IIS 7.
fuente
Una solución mucho más fácil sería configurar una VPN. Luego, el estudiante puede iniciar sesión en la VPN y acceder a todos sus recursos como si estuvieran sentados dentro del campus. Echa un vistazo para más detalles ... http://lifehacker.com/162563/how-to-set-up-free-vpn
fuente
¿Qué necesitan hacer exactamente? ¿Solo tienes acceso? Si lo abre a FTP, está solicitando grandes problemas. Si necesitan acceso a herramientas consistentes para trabajar en documentos de la escuela, abra un servidor (o clúster) para servicios de escritorio remoto.
Sí, necesitan instalar un cliente de escritorio remoto si aún no lo tienen (probablemente ya lo tengan) pero el cliente está disponible para Linux, Windows y Mac de forma gratuita. La conexión está encriptada, y pueden tener acceso a lo que su escuela esté utilizando para Office u otras herramientas, a menos que esté ejecutando algo pesado como Photoshop.
Si usas RDP, obtienes cifrado, obtienes un puerto para abrir en tu firewall y obtienes estandarización de utilidades (no tengo "Quejé esto en casa y funcionó bien, ¿por qué no se abre aquí?") Más gestión centralizada He visto problemas similares como este resueltos exactamente de esta manera varias veces y solo en circunstancias específicas ha habido problemas con él.
Además, no tiene estudiantes con varias copias de documentos corriendo quejándose de que no saben POR QUÉ su papel es la versión incorrecta porque funcionó FINE en casa ... o no lo guardaron en el lugar correcto ... .etc.
fuente
¿Qué hay de WebDAV?
Esto es compatible con apache y aún puede usar LDAP para la autenticación.
Los usuarios podrían acceder a sus archivos desde un navegador, y las versiones modernas de Windows y OS X permiten a los usuarios montar recursos compartidos de WebDAV en Explorer y Finder, respectivamente.
También se evitaron los problemas asociados con el intento de almacenar el estado de un sistema de archivos en constante cambio en sincronización con una base de datos en su método sugerido.
fuente
Echa un vistazo a Adito / OpenVPN ALS . Es gratis, se instalará en Windows o Linux, y hace que sea extremadamente fácil configurar una interfaz web para compartir archivos, así como muchas otras características. Lo uso en la universidad donde trabajo. Tiene algunas desventajas: requiere que Java esté instalado en los clientes, activa el bloqueador de elementos emergentes en muchos navegadores, la configuración del certificado podría ser más fácil y la vista paginada de listados de archivos podría ser más fácil. Si elige configurar webdav, se puede utilizar para que sea más fácil (y más confiable) para sus usuarios obtener las unidades correctas asignadas.
fuente
Como han dicho otros, no use FTP, hay muchas, muchas cosas mal con él. OTOH, probablemente debería usar un protocolo que no requiera que los usuarios instalen software adicional del lado del cliente; aunque el acceso basado en ssh (sftp, scp) sería ideal, las máquinas con MSWindows no vienen con un cliente como estándar.
No hay fin de los administradores de archivos disponibles escritos en PHP (y probablemente también en otros idiomas). IIS hace cosas muy extrañas con la tunelización de los permisos NTLM, pero si está usando Apache, debería ser razonablemente seguro; sin embargo, acceder a las unidades no es tan simple como simplemente leer desde \ server \ username \: necesitaría permitir el derechos de administrador del servidor web en estos archivos, ¡pero eso es una pesadilla de seguridad!
La forma en que lo hago (para un tipo de aplicación muy diferente) es manejar la E / S a través de smbclient usando el nombre de usuario / contraseña de la sesión PHP de los usuarios, pero eso es en una máquina Linux, AFAIK, no hay equivalente en MSWindows.
Ciertamente, desearía utilizar las credenciales proporcionadas por el usuario para autenticarse en el almacenamiento.
¡Esto se está volviendo rápidamente complicado!
Por lo tanto, una solución práctica sería permitir a los estudiantes mapear las unidades a través de Internet. De esa manera, no necesita preocuparse por las complicaciones de proporcionar un administrador de archivos que no es una parte integral del sistema operativo (es decir, directamente accesible desde las aplicaciones). Pero no desea exponer su servidor a nadie y a todos. La forma habitual de resolver este problema sería una VPN, y hay muchas disponibles buenas y de bajo costo . O simplemente envuelva el servicio en SSL con autenticación de certificado de cliente. Pero, de nuevo, esto requiere instalaciones del lado del cliente.
Entonces.....
¿Qué tal un formulario web para autenticar a un usuario en una dirección IP que luego crea un agujero de tiempo limitado en el firewall para que esa dirección IP se conecte a través de SMB (y todavía necesitan proporcionar un nombre de usuario / contraseña para mapear el disco, por supuesto) .
fuente
"there are many, many things wrong with [FTP]"
- En realidad, solo hay algunas cosas mal con ftp, pero son cosas realmente importantes . ;) De todos modos al finalPD: personalmente, creo que tendrá una tasa de éxito mucho mejor si transfiere su sistema a * nix, porque habría más alternativas disponibles (libremente)
Lo que viene a la mente:
Dropbox:
subir los cambios a Dropbox . Lo mejor de Dropbox es que ofrecen un plan gratuito de 20 GB (en este momento) y se pueden usar con todos los sistemas operativos populares (Windows / Linux / MacOSX) sin problemas. Todavía no he leído / implementado nada usando la API de Dropbox , pero espero que puedas lograrlo sin mucho dolor de cabeza. Supongo que el problema es lo que sucede cuando cambian el plan de precios, pero eso es algo para más adelante.
Alternativas de código abierto para Dropbox
Después de realizar una búsqueda rápida de Google este enlace ofrece algunas alternativas de código abierto, pero no sé si alguno de ellos es bueno por lo que debe probar eso.
Web
En lugar de ofrecer a los usuarios la opción de sincronizar, solo les da la oportunidad de descargar archivos / carpetas (comprimidos) Creo que podrías escribir un sistema así sin demasiada queja.
VPN / RPC
Al igual que otros usuarios, di al usuario que inicie sesión con VPN / RPC.
fuente
Echa un vistazo a Ajaxplorer ( http://www.ajaxplorer.info )
Es un administrador de archivos basado en la web (escrito en PHP y Javascript) que proporciona una fácil administración de permisos, usuarios, grupos, y puede configurar repositorios compartidos y personales.
También puede hacer webdav y tiene conectores de autenticación para todo tipo de sistemas (ldap, mysql, flatfile .....)
con los conectores del sistema de archivos puede configurar reglas para asignar cuentas de usuario a directorios individuales automáticamente, lo que resolvería sus requisitos para acceder a la unidad asignada del usuario.
Acabamos de comenzar a usarlo aquí (agencia de diseño / web) y los clientes de todas las habilidades técnicas encuentran muy fácil de usar / entender
Debería poder integrarlo en su sistema actual sin cambios
fuente