Membangun server Penyimpanan Siswa

10

Saya bekerja di distrik sekolah. Saya ditugaskan membangun server penyimpanan untuk siswa. Tempat bagi mereka untuk bekerja dari sekolah dan rumah.

Tantangan saya adalah membuat ini bekerja dari rumah. Di sekolah mereka login, otentikasi, dan mereka mendapatkan drive yang dipetakan ke folder mereka di server ( S:\fileserver\studentname).

Pertanyaan saya adalah bagaimana saya bisa membuat ini tersedia untuk siswa di rumah?

Server menjalankan Windows Server 2008 R2. Saya memiliki PHP, Apache, dan MySQL yang bekerja bersama. Gagasan saya adalah menulis skrip yang akan "merangkak" melalui direktori yang berisi semua folder siswa, lalu membuat instance dari setiap file dan folder dalam DB MySQL. Buat halaman login yang akan menggunakan LDAP untuk autentikasi, dan begitu mereka masuk ke server dari rumah, mereka mendapatkan halaman dengan folder-file yang diikat dengan nama pengguna mereka.

Adakah yang pernah menempatkan sesuatu di luar sana bersama-sama?

DobotJr
sumber
2
apa yang harus mereka lakukan? judul Anda mengatakan penyimpanan kepada saya yang mengatakan mereka hanya perlu login ftp. Akses mesin jarak jauh penuh = Koneksi Desktop Jarak Jauh.
1
Bagaimana dengan FTP?
m4tt1mus
3
Masalah dengan ide php / apache / mysql Anda adalah ia akan memberi mereka daftar file di halaman web. Segera setelah mereka mengklik / mengunduh file untuk dikerjakan, Anda akan memiliki 2 versi, satu di server Anda dan satu di komputer di rumah siswa. Itu pasti akan menimbulkan banyak masalah. Anda perlu membuat semacam drive virtual untuk siswa Anda.
Jeroen
Belum lagi fakta bahwa Anda membuka server data utama ke world wide web, ini adalah sesuatu yang tidak boleh Anda lakukan, jika seseorang mendapatkan root dari php lalu ucapkan selamat tinggal pada data Anda.
RobertPitt
Sudahkah Anda mempertimbangkan beberapa bentuk CMS? Jika mereka hanya perlu mengelola dokumen gaya kantor standar, sesuatu seperti Alfresco mungkin akan bekerja dengan baik.
ErnieTheGeek

Jawaban:

18

Jika Anda bersikeras melakukan ini (sebagai lawan pergi dengan jawaban @sweaves) maka saya akan mulai dengan:

  1. menjatuhkan Php, Apache, dan MySql. Mereka tidak perlu dan akan memperkenalkan sakit kepala mereka sendiri.

  2. Dapatkan server FTPS aktif dan berjalan. Sejalan dengan ini, Anda mungkin mempertimbangkan dump Windows Server 2003 mendukung 2008 R2. IIS 7 memiliki banyak item FTP yang lebih baik. Http://blogs.technet.com/b/chrisavis/archive/2008/06/12/how-to-configure-ftp-over-ssl-secure-ftp-on- windows-2008-dalam-kurang dari 10 menit.aspx

  3. Jika Anda tidak dapat melakukan ini, lihat ini untuk cara mengatur File Zilla agar berfungsi dengan AD. http://retrohack.com/enabling-filezilla-server-integration-with-active-directory-authentication/

  4. Pilihan lain (terima kasih @jscott) adalah menggunakan WebDav ( http://www.iis.net/download/webdav ). Inilah sekolah lain yang melakukan hal yang persis sama: http://kb.iu.edu/data/araf.html

  5. Anda juga dapat mengatur server "> SFTP. SFTP mendukung login tanpa kata sandi, tetapi tidak didukung di Windows di luar kotak.

Catatan, solusi filezilla lebih banyak pekerjaan manajemen daripada IIS 7 satu.

Bukan saya
sumber
2
+1 untuk SFTP dan bukan FTP
RobertPitt
1
Ini jelas rute untuk pergi. Pada dasarnya saya memiliki sistem Linux yang melakukan hal yang sama - satu area penyimpanan yang dapat diakses melalui SMB ketika siswa berada di kampus, dan lebih dari SFTP ketika mereka berada di luar kampus. Siswa dapat menggunakan WinSCP , klien FileZilla , Fugu , atau apa pun yang berbicara SFTP ketika mereka berada di luar kampus.
Mike Renfro
Apa yang dia katakan ...
Bart Silverstrim
4
Anda mungkin ingin menambahkan WebDav di sana juga. Pengguna Windows dapat dengan mudah memetakan share WebDav sebagai huruf drive - OSX, Linux juga memiliki dukungan yang layak. Super sederhana untuk dikonfigurasi di IIS, bahkan jika rumah siswa ada di server lain.
jscott
1
@ jscott: pengalaman saya dengan dukungan WebDAV bawaan Windows sudah sangat buruk (kinerja mengerikan di bawah XP, khususnya). Tetapi jika itu bekerja di lingkungan lain saya belum mencoba, jadi itu.
Mike Renfro
11

Solusi yang jauh lebih mudah adalah dengan mengatur VPN. Siswa kemudian dapat masuk ke VPN dan mengakses semua sumber daya mereka seolah-olah mereka duduk di dalam kampus. Lihat detailnya ... http://lifehacker.com/162563/how-to-set-up-free-vpn


sumber
Jangan berpikir ini akan berhasil di sini. Kita harus membuatnya bekerja tanpa memasang apa pun di komputer rumah siswa kami.
4
@DobotJr: Anda sadar bahwa ketika melakukan ini tanpa keamanan VPN adalah masalah yang sangat besar? Anda juga menyadari bahwa sistem siswa adalah beberapa item yang paling diretas di luar sana?
NotMe
Saya akan menyarankan Horde kalau begitu. Buat server Anda dapat diakses ke internet dan instal Horde, ini adalah browser email DAN file. Memetakan file dari pengguna lokal yang dibagikan ke antarmuka web untuk diunduh / unggah.
@memindahkan tautan dari situs peretas hidup ini dibakar, saya sarankan Anda menautkan ke tutorial lain
@Agon - ah Anda memang benar, ini hidup meskipun compnetworking.about.com/od/vpnsetup/…
5

Apa yang sebenarnya harus mereka lakukan? Dapatkan akses saja? Jika Anda membukanya ke FTP, Anda meminta masalah besar. Jika mereka membutuhkan akses ke alat yang konsisten untuk mengerjakan dokumen dari sekolah, buka server (atau kluster) untuk layanan desktop jarak jauh.

Ya, mereka perlu menginstal klien desktop jarak jauh jika mereka belum memilikinya (mereka mungkin sudah melakukannya) tetapi klien tersedia untuk Linux, Windows, dan Mac secara gratis. Koneksi dienkripsi, dan mereka dapat memiliki akses ke apa pun yang digunakan sekolah Anda untuk Office atau alat lain, kecuali Anda menjalankan tugas berat seperti Photoshop.

Jika Anda menggunakan RDP, Anda mendapatkan enkripsi, Anda mendapatkan satu port untuk dibuka pada firewall Anda, dan Anda mendapatkan standarisasi utilitas (tidak "Saya membuat ini di rumah dan itu bekerja dengan baik, mengapa tidak terbuka di sini?" Keluhan) plus manajemen terpusat. Saya telah melihat masalah serupa seperti ini diselesaikan dengan cara yang persis seperti ini beberapa kali dan hanya dalam keadaan tertentu ada masalah dengannya.

Ditambah lagi, Anda tidak memiliki siswa dengan banyak salinan dokumen berkeliaran mengeluh bahwa mereka tidak tahu MENGAPA kertas mereka adalah versi yang salah karena bekerja HALUS di rumah ... atau mereka tidak menyimpannya di tempat yang tepat .. .etc.

Bart Silverstrim
sumber
3

Bagaimana dengan WebDAV?

Ini didukung di apache dan Anda masih bisa menggunakan LDAP untuk otentikasi.

Pengguna akan dapat mengakses file mereka dari browser, dan versi modern Windows dan OS X memungkinkan pengguna untuk me-mount share WebDAV di bawah Explorer dan Finder masing-masing.

Itu juga mencegah masalah yang terkait dengan mencoba untuk menyimpan keadaan sistem file yang terus berubah disinkronkan dengan database dalam metode propsed Anda.

Dua Belas47
sumber
1

Lihatlah Adito / OpenVPN ALS . Gratis, akan dipasang di Windows atau Linux, dan membuatnya sangat mudah untuk membuat antarmuka web untuk berbagi file, serta banyak fitur lainnya. Saya menggunakannya di kampus tempat saya bekerja. Itu memang memiliki beberapa kelemahan: itu membutuhkan java untuk diinstal pada klien, memicu pemblokir pop up pada banyak browser, pengaturan sertifikat bisa lebih mudah, dan tampilan halaman untuk daftar file bisa lebih mudah. Jika Anda memilih untuk mengatur webdav, itu dapat digunakan untuk membuatnya lebih mudah (dan lebih dapat diandalkan) bagi pengguna Anda untuk mendapatkan drive yang benar dipetakan.

Joel Coel
sumber
1

Seperti yang orang lain katakan - jangan gunakan FTP - ada banyak, banyak hal yang salah dengannya. OTOH, Anda mungkin harus menggunakan protokol yang tidak mengharuskan pengguna untuk menginstal perangkat lunak sisi klien tambahan; meskipun akses berbasis ssh (sftp, scp) akan ideal, mesin MSWindows tidak datang dengan klien sebagai standar.

Tidak ada ujung manajer file yang tersedia ditulis dalam PHP (dan mungkin bahasa lain juga). IIS melakukan beberapa hal yang sangat aneh dengan tunneling izin NTLM - tetapi jika Anda menggunakan Apache itu harus cukup aman - namun mengakses drive tidak sesederhana hanya membaca dari \ server \ username \ - Anda harus mengizinkan hak admin webserver pada file-file ini - tapi itu mimpi buruk keamanan!

Cara saya melakukannya (untuk jenis aplikasi yang sangat berbeda) adalah untuk menangani I / O melalui smbclient menggunakan nama pengguna / kata sandi dari sesi pengguna PHP - tetapi itu pada mesin Linux - AFAIK, tidak ada padanan pada MSWindows.

Tentu saja Anda ingin menggunakan kredensial yang disediakan oleh pengguna untuk mengautentikasi terhadap penyimpanan.

Ini dengan cepat menjadi rumit menakutkan!

Jadi solusi praktis adalah dengan memungkinkan siswa untuk memetakan drive di internet. Dengan begitu Anda tidak perlu khawatir tentang komplikasi menyediakan file manager yang bukan merupakan bagian integral dari sistem operasi (yaitu langsung dapat diakses dari aplikasi). Tetapi Anda tidak ingin mengekspos server Anda kepada siapa pun dan semua orang. Cara biasa untuk mengatasi masalah ini adalah VPN - dan ada banyak yang bagus dan berbiaya rendah tersedia. Atau cukup bungkus layanan dalam SSL dengan otentikasi sertifikat klien. Tetapi sekali lagi ini membutuhkan instalasi sisi klien.

Begitu.....

Bagaimana dengan formulir web untuk mengotentikasi pengguna di alamat IP yang kemudian menciptakan lubang waktu terbatas di firewall agar alamat IP dapat terhubung melalui SMB (dan mereka masih perlu memberikan nama pengguna / kata sandi untuk memetakan drive tentu saja) .

symcbean
sumber
"there are many, many things wrong with [FTP]"- sebenarnya, hanya ada beberapa hal yang salah dengan ftp, tetapi mereka adalah hal yang sangat penting . ;) Semua tetap sama
Joel Coel
0

PS: secara pribadi saya pikir Anda akan memiliki tingkat keberhasilan yang jauh lebih baik jika Anda port sistem Anda ke * nix, karena lebih banyak alternatif akan tersedia (bebas)

Apa yang terlintas dalam pikiran:

Dropbox:

unggah perubahan ke Dropbox . Hal yang hebat tentang dropbox adalah mereka menawarkan paket gratis 20GB (sekarang) dan dapat digunakan dengan setiap Sistem Operasi yang populer (Windows / Linux / MacOSX) tanpa kesulitan. Saya belum membaca / mengimplementasikan apa pun menggunakan Dropbox API , tapi mudah-mudahan Anda dapat mencapai tanpa banyak sakit kepala. Saya kira masalahnya adalah apa yang terjadi ketika mereka mengubah rencana penetapan harga, tetapi itu adalah sesuatu untuk nanti.

Alternatif Dropbox sumber terbuka

Setelah melakukan pencarian Google cepat tautan ini menyediakan beberapa alternatif open-source, tetapi saya tidak tahu apakah ada di antara mereka yang bagus sehingga Anda harus mengujinya.

Web

Alih-alih memberi pengguna opsi untuk menyinkronkan hanya memberi mereka kesempatan untuk mengunduh file / folder (zip). Saya pikir Anda bisa menulis sistem seperti itu tanpa terlalu banyak keluhan.

VPN / RPC

Seperti beberapa pengguna lain mengatakan berikan pengguna untuk login menggunakan VPN / RPC.

Alfred
sumber
2
Para siswa harus dapat masuk dengan nama pengguna dan kata sandi jaringan yang mereka gunakan setiap hari di sekolah. Itu sebabnya ini harus disinkronkan dengan direktori aktif. Jadi dropbox bukan opsi. Terimakasih Meskipun.
DobotJr
Saya pikir Anda mungkin dapat memetakan kredensial tersebut ke kredensial dropbox semacam cara, tapi semoga berhasil, pak.
Alfred
0

Lihatlah Ajaxplorer ( http://www.ajaxplorer.info )

Ini adalah pengelola file berbasis web (ditulis dalam PHP & Javascript) yang memberikan administrasi izin, pengguna, grup, dan Anda dapat mengatur repositori bersama serta yang pribadi.

Itu juga dapat melakukan webdav dan memiliki konektor otentikasi untuk semua jenis sistem (ldap, mysql, flatfile .....)

dengan konektor filesystem Anda dapat mengatur aturan untuk memetakan akun pengguna ke direktori individual secara otomatis yang akan memilah kebutuhan Anda untuk mengakses drive yang dipetakan pengguna.

Kami baru saja mulai menggunakannya di sini (desain / agen web) dan klien dari semua kemampuan teknis merasa sangat mudah digunakan / dimengerti

Anda harus dapat mengintegrasikannya ke sistem Anda saat ini tanpa perubahan

Nick Downton
sumber