Xây dựng một máy chủ lưu trữ sinh viên


10

Tôi làm việc cho một khu học chánh. Tôi đã được giao trách nhiệm xây dựng một máy chủ lưu trữ cho sinh viên. Một nơi để họ làm việc ở trường và nhà.

Thử thách của tôi là làm việc này ở nhà. Ở trường, họ đăng nhập, xác thực và họ nhận được một ổ đĩa được ánh xạ tới thư mục của họ trên máy chủ ( S:\fileserver\studentname).

Câu hỏi của tôi là làm thế nào tôi có thể cung cấp cho sinh viên ở nhà?

Máy chủ đang chạy Windows Server 2008 R2. Tôi đã có PHP, Apache và MySQL làm việc cùng nhau. Ý tưởng của tôi là viết một tập lệnh sẽ "thu thập dữ liệu" thông qua thư mục chứa tất cả các thư mục của sinh viên, sau đó tạo một thể hiện của mọi tệp và thư mục trong MySQL DB. Tạo một trang đăng nhập sẽ sử dụng LDAP để xác thực và một khi họ đăng nhập vào máy chủ từ nhà, họ sẽ nhận được một trang có các thư mục gắn với tên người dùng của họ.

Có ai ở ngoài đó bao giờ đặt một cái gì đó như thế này cùng nhau ??


2
họ cần gì để có thể làm gì? Tiêu đề của bạn nói lưu trữ với tôi nói rằng họ chỉ cần đăng nhập ftp. Truy cập máy từ xa đầy đủ = Kết nối máy tính từ xa.

1
Còn FTP thì sao?
m4tt1mus

3
Vấn đề với ý tưởng php / apache / mysql của bạn là nó sẽ cung cấp cho họ một danh sách các tệp trong một trang web. Ngay sau khi họ nhấp / tải xuống một tệp để làm việc, bạn sẽ có 2 phiên bản, một trên máy chủ của bạn và một trên máy tính ở nhà của học sinh. Điều đó chắc chắn sẽ dẫn đến nhiều vấn đề. Bạn sẽ cần tạo một số loại ổ đĩa ảo cho sinh viên của mình.
jeroen

Chưa kể đến việc bạn mở dữ liệu chính của máy chủ lên web toàn cầu, đây là điều bạn không nên làm, nếu ai đó lấy được root từ php thì hãy nói lời tạm biệt với dữ liệu của bạn.
RobertPitt

Bạn đã xem xét một số hình thức của CMS? Nếu họ chỉ cần quản lý các tài liệu theo phong cách văn phòng tiêu chuẩn, một cái gì đó như Alfresco có thể sẽ hoạt động tốt.
ErnieTheGeek

Câu trả lời:


18

Nếu bạn khăng khăng làm điều này (trái ngược với câu trả lời của @sweaves) thì tôi sẽ bắt đầu bằng cách:

  1. bỏ Php, Apache và MySql. Họ không cần thiết và sẽ giới thiệu đau đầu của riêng họ.

  2. Nhận một máy chủ FTPS và chạy. Dọc theo những dòng này, bạn có thể cân nhắc việc bán Windows Server 2003 để ủng hộ 2008 R2. IIS 7 có tốt hơn nhiều FTP mục xây dựng trong. Http://blogs.technet.com/b/chrisavis/archive/2008/06/12/how-to-configure-ftp-over-ssl-secure-ftp-on- windows-2008-in-ít hơn 10 phút.aspx

  3. Nếu bạn không thể làm điều này, hãy xem cái này để biết cách thiết lập File Zilla để hoạt động với AD. http://retrohack.com/eneac-filezilla-server-integration-with-active-directory-authentication/

  4. Một tùy chọn khác (cảm ơn @jscott) là sử dụng WebDav ( http://www.iis.net/doad/webdav ). Đây là một trường khác đang làm điều tương tự chính xác này: http://kb.iu.edu/data/araf.html

  5. Bạn cũng có thể thiết lập "> máy chủ SFTP. SFTP hỗ trợ đăng nhập không mật khẩu, nhưng không được hỗ trợ trong Windows.

Lưu ý bên lề, giải pháp filezilla là công việc quản lý nhiều hơn so với IIS 7.


2
+1 cho SFTP chứ không phải FTP
RobertPitt

1
Đây chắc chắn là con đường để đi. Về cơ bản, tôi đã có một hệ thống Linux hoạt động tương tự - một khu vực lưu trữ duy nhất có thể truy cập qua SMB khi sinh viên ở trong trường và trên SFTP khi họ ở ngoài trường. Sinh viên có thể sử dụng WinSCP , FileZilla client , Fugu hoặc bất cứ điều gì nói SFTP khi họ ở ngoài trường.
Mike Renfro

Những gì anh ấy nói ...
Bart Silverstrim

4
Bạn cũng có thể muốn thêm WebDav vào đó. Người dùng Windows có thể dễ dàng ánh xạ chia sẻ WebDav dưới dạng ký tự ổ đĩa - OSX, Linux cũng có hỗ trợ khá tốt. Cấu hình siêu đơn giản trong IIS, ngay cả khi nhà sinh viên ở trên một máy chủ khác.
jscott

1
@jscott: trải nghiệm của tôi với hỗ trợ WebDAV tích hợp của Windows khá tệ (đặc biệt là hiệu suất khủng khiếp trong XP). Nhưng nếu nó hoạt động trong một số môi trường khác mà tôi chưa từng thử, thì cũng vậy.
Mike Renfro

11

Một giải pháp dễ dàng hơn nhiều sẽ là thiết lập VPN. Sau đó, sinh viên có thể đăng nhập vào VPN và truy cập tất cả các tài nguyên của họ giống như họ đang ngồi trong khuôn viên trường. Kiểm tra để biết chi tiết ... http://lifehacker.com/162563/how-to-set-up-free-vpn


Đừng nghĩ rằng điều này sẽ làm việc ở đây. Chúng tôi phải làm điều này để làm việc với việc cài đặt bất cứ thứ gì trên máy tính ở nhà của học sinh.

4
@DobotJr: Bạn nhận ra rằng khi làm điều này mà không có bảo mật VPN là một mối quan tâm rất lớn? Bạn cũng nhận ra rằng hệ thống sinh viên là một số mặt hàng bị hack nhiều nhất ngoài kia?
NotMe

Tôi sẽ đề nghị Horde sau đó. Làm cho máy chủ của bạn có thể truy cập internet và cài đặt Horde, đó là trình duyệt tệp VÀ thư. Bản đồ các tệp từ người dùng chia sẻ cục bộ lên giao diện web để tải xuống / tải lên.

@sweaves liên kết từ trang web hacker cuộc sống bị borked, tôi đề nghị bạn liên kết đến một hướng dẫn khác

@Dagon - ah bạn thực sự chính xác, cái này là trực tiếp mặc dù compnetworking.about.com/od/vpnsetup/ Kẻ

5

Chính xác thì họ cần phải làm gì? Chỉ cần truy cập? Nếu bạn mở nó lên FTP, bạn đang yêu cầu những vấn đề lớn. Nếu họ cần quyền truy cập vào các công cụ nhất quán để làm việc trên các tài liệu từ trường học, hãy mở một máy chủ (hoặc cụm) cho các dịch vụ máy tính để bàn từ xa.

Có, họ cần cài đặt máy khách từ xa trên máy tính nếu họ chưa có nó (có lẽ họ đã làm rồi) nhưng máy khách có sẵn cho Linux, Windows và Mac miễn phí. Kết nối được mã hóa và họ có thể có quyền truy cập vào bất cứ điều gì trường học của bạn đang sử dụng cho Office hoặc các công cụ khác, trừ khi bạn đang thực hiện một nhiệm vụ nặng nề như Photoshop.

Nếu bạn sử dụng RDP, bạn nhận được mã hóa, bạn có một cổng để mở trên tường lửa của mình và bạn có được tiêu chuẩn hóa các tiện ích (không "Tôi đã thực hiện điều này ở nhà và nó hoạt động tốt, tại sao nó không mở ở đây?" quản lý tập trung. Tôi đã thấy những vấn đề tương tự như thế này được giải quyết chính xác theo cách này nhiều lần và chỉ trong những trường hợp cụ thể mới có vấn đề với nó.

Thêm vào đó, bạn không có học sinh có nhiều bản sao tài liệu chạy xung quanh phàn nàn rằng họ không biết TẠI SAO bài báo của họ là phiên bản sai vì nó hoạt động tại nhà ... hoặc họ đã không lưu nó vào đúng chỗ .. .Vân vân.


3

WebDAV thì sao?

Điều này được hỗ trợ trong apache và bạn vẫn có thể sử dụng LDAP để xác thực.

Người dùng sẽ có thể truy cập các tệp của họ từ trình duyệt và các phiên bản Windows và OS X hiện đại cho phép người dùng gắn kết các chia sẻ WebDAV trong Explorer và Finder tương ứng.

Nó cũng ngăn chặn các vấn đề liên quan đến việc cố gắng lưu trữ trạng thái của một hệ thống tệp thay đổi liên tục đồng bộ với cơ sở dữ liệu trong phương thức có đạo cụ của bạn.


1

Hãy xem Adito / OpenVPN ALS . Nó hoàn toàn miễn phí, sẽ cài đặt trên Windows hoặc Linux, và làm cho nó vô cùng dễ dàng để thiết lập một giao diện web cho tập tin chia sẻ, cũng như nhiều tính năng khác. Tôi sử dụng nó tại trường đại học nơi tôi làm việc. Nó có một vài nhược điểm: nó yêu cầu java phải được cài đặt trên máy khách, tắt trình chặn cửa sổ bật lên trên nhiều trình duyệt, thiết lập chứng chỉ có thể dễ dàng hơn và chế độ xem phân trang cho danh sách tệp có thể dễ dàng hơn. Nếu bạn chọn thiết lập webdav, nó có thể được sử dụng để giúp người dùng của bạn dễ dàng hơn (và đáng tin cậy hơn) để có được các ổ đĩa chính xác được ánh xạ.


1

Như những người khác đã nói - không sử dụng FTP - có rất nhiều, rất nhiều điều sai với nó. OTOH, có lẽ bạn nên sử dụng một giao thức không yêu cầu người dùng cài đặt phần mềm phía máy khách bổ sung; Mặc dù truy cập dựa trên ssh (sftp, scp) sẽ là lý tưởng, các máy MSWindows không đi kèm với máy khách như là tiêu chuẩn.

Không có phần cuối của trình quản lý tệp có sẵn được viết bằng PHP (và có lẽ các ngôn ngữ khác cũng vậy). IIS thực hiện một số điều rất kỳ quặc với việc tạo các quyền NTLM - nhưng nếu bạn đang sử dụng Apache thì nó sẽ an toàn một cách hợp lý - tuy nhiên việc truy cập các ổ đĩa không đơn giản như chỉ đọc từ \ server \ username \ - bạn cần cho phép quyền quản trị máy chủ web trên các tệp này - nhưng đó là một cơn ác mộng bảo mật!

Cách tôi thực hiện (đối với một loại ứng dụng rất khác) là xử lý I / O thông qua smbclient bằng tên người dùng / mật khẩu từ phiên PHP của người dùng - nhưng đó là trên máy Linux - AFAIK, không có tương đương trên MSWindows.

Chắc chắn bạn sẽ muốn sử dụng thông tin đăng nhập do người dùng cung cấp để xác thực đối với bộ lưu trữ.

Điều này nhanh chóng trở nên phức tạp đáng sợ!

Vì vậy, một giải pháp thực tế sẽ là cho phép các sinh viên lập bản đồ các ổ đĩa trên internet. Bằng cách đó, bạn không cần phải lo lắng về các vấn đề phức tạp khi cung cấp trình quản lý tệp không phải là một phần không thể thiếu của hệ điều hành (tức là có thể truy cập trực tiếp từ các ứng dụng). Nhưng bạn không muốn để lộ máy chủ của mình cho bất cứ ai và mọi người. Cách thông thường để giải quyết vấn đề này sẽ là VPN - và có rất nhiều cái tốt và chi phí thấp có sẵn. Hoặc đơn giản là bọc dịch vụ trong SSL bằng xác thực chứng chỉ ứng dụng khách. Nhưng một lần nữa điều này đòi hỏi cài đặt phía khách hàng.

Vì thế.....

Làm thế nào về một biểu mẫu web để xác thực người dùng tại một địa chỉ IP, sau đó tạo ra một lỗ hổng giới hạn thời gian trong tường lửa để địa chỉ IP đó kết nối qua SMB (và tất nhiên họ vẫn cần cung cấp tên người dùng / mật khẩu để ánh xạ ổ đĩa) .


"there are many, many things wrong with [FTP]"- thực ra, chỉ có một vài điều sai với ftp, nhưng chúng là những điều thực sự quan trọng . ;) Cuối cùng cũng vậy
Joel Coel

0

PS: cá nhân tôi nghĩ rằng bạn sẽ có tỷ lệ thành công cao hơn nhiều nếu bạn chuyển hệ thống của mình sang * nix, bởi vì sẽ có nhiều lựa chọn thay thế hơn (miễn phí)

Điều gì đến với tâm trí:

Dropbox:

tải các thay đổi lên Dropbox . Điều tuyệt vời về dropbox là họ cung cấp gói 20 GB miễn phí (ngay bây giờ) và có thể được sử dụng với mọi Hệ điều hành phổ biến (Windows / Linux / MacOSX) mà không gặp rắc rối nào. Tôi chưa đọc / triển khai bất cứ điều gì bằng API Dropbox , nhưng hy vọng bạn có thể đạt được mà không phải đau đầu nhiều. Tôi đoán vấn đề là những gì xảy ra khi họ thay đổi kế hoạch định giá, nhưng đó là điều gì đó cho sau này.

Các lựa chọn thay thế Dropbox mã nguồn mở

Sau khi thực hiện tìm kiếm nhanh trên Google, liên kết này cung cấp một số lựa chọn thay thế nguồn mở, nhưng tôi không biết liệu chúng có tốt không, vì vậy bạn nên kiểm tra điều đó.

Web

Thay vì cung cấp cho người dùng tùy chọn đồng bộ hóa, chỉ cung cấp cho họ cơ hội tải xuống tệp / thư mục (được nén). Tôi nghĩ bạn có thể viết một hệ thống như thế mà không có quá nhiều bất bình.

VPN / RPC

Giống như một số người dùng khác cho biết cung cấp cho người dùng đăng nhập bằng VPN / RPC.


2
Các sinh viên phải có thể đăng nhập bằng tên người dùng và mật khẩu mạng mà họ sử dụng hàng ngày ở trường. Đó là lý do tại sao điều này phải đồng bộ hóa thư mục w / active. Vì vậy, dropbox không phải là một lựa chọn. Cảm ơn mặc dù.
DobotJr

Tôi nghĩ rằng bạn có thể ánh xạ các thông tin đó thành thông tin đăng nhập theo cách nào đó, nhưng chúc may mắn thưa ông.
Alfred

0

Hãy xem Ajaxplorer ( http://www.ajaxplorer.info )

Đây là trình quản lý tệp dựa trên web (được viết bằng PHP & Javascript) cung cấp quản trị dễ dàng các quyền, người dùng, nhóm và bạn có thể thiết lập các kho lưu trữ được chia sẻ cũng như các kho cá nhân.

Nó cũng có thể làm webdav và có các trình kết nối xác thực cho tất cả các loại hệ thống (ldap, mysql, Flatfile .....)

với các trình kết nối hệ thống tập tin, bạn có thể tự động thiết lập quy tắc để ánh xạ tài khoản người dùng vào các thư mục riêng lẻ, điều này sẽ sắp xếp yêu cầu của bạn để truy cập vào ổ đĩa được ánh xạ của người dùng.

Chúng tôi mới bắt đầu sử dụng nó ở đây (thiết kế / đại lý web) và khách hàng của tất cả các khả năng kỹ thuật thấy rất dễ sử dụng / hiểu

Bạn sẽ có thể tích hợp nó vào hệ thống hiện tại của bạn mà không có thay đổi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.