Создание сервера хранилища для студентов
Я работаю в школьном округе. Я был назначен ответственным за создание сервера хранения для студентов. Место для них, чтобы работать вне школы и дома.
Моя задача - заставить это работать из дома. В школе они входят в систему, проходят проверку подлинности и получают подключенный диск к своей папке на сервере (S:\fileserver\studentname
).
Мой вопрос: как я могу сделать это доступным для студентов дома?
Сервер работает под управлением Windows Server 2008 R2. У меня PHP, Apache и MySQL работают вместе. Моя идея состоит в том, чтобы написать скрипт, который будет "сканировать" каталог, содержащий все папки учеников, а затем создавать экземпляр каждого файла и папки в БД MySQL. Создайте страницу входа, которая будет использовать LDAP для аутентификации, и, как только они войдут на сервер из дома, они получат страницу с папками и файлами, привязанными к их имени пользователя.
Кто-нибудь когда-нибудь собирал что-то подобное?
8 ответов
Если вы настаиваете на этом (в отличие от ответа @sweaves), то я бы начал с:
сбросив Php, Apache и MySql. Они не нужны и будут вводить свои головные боли.
Получите FTPS сервер и работает. В связи с этим вы могли бы рассмотреть возможность отказа от Windows Server 2003 в пользу 2008 R2. В IIS 7 встроены гораздо лучшие элементы FTP. http://blogs.technet.com/b/chrisavis/archive/2008/06/12/how-to-configure-ftp-over-ssl-secure-ftp-on-windows-2008-in-less-than-10-minutes.aspx
Если вы не можете сделать это, посмотрите на это, как настроить File Zilla для работы с AD. http://retrohack.com/enabling-filezilla-server-integration-with-active-directory-authentication/
Другой вариант (спасибо @jscott) - использовать WebDav ( http://www.iis.net/download/webdav). Вот еще одна школа, которая делает то же самое: http://kb.iu.edu/data/araf.html
Вы также можете настроить сервер SFTP ">. SFTP поддерживает вход без пароля, но не поддерживается в Windows" из коробки ".
Отметим, что решение filezilla - это больше работы по управлению, чем решение IIS 7.
Гораздо проще было бы настроить VPN. Затем студент может войти в VPN и получить доступ ко всем своим ресурсам, как если бы они находились внутри кампуса. Проверьте подробности... http://lifehacker.com/162563/how-to-set-up-free-vpn
Что именно им нужно сделать? Просто получить доступ? Если вы открываете его до FTP, вы спрашиваете о больших проблемах. Если им нужен доступ к согласованным инструментам для работы с документами из школы, откройте сервер (или кластер) для служб удаленных рабочих столов.
Да, им нужно установить клиент удаленного рабочего стола, если у него его еще нет (вероятно, он уже есть), но клиент доступен для Linux, Windows и Mac бесплатно. Соединение зашифровано, и они могут иметь доступ ко всему, что ваша школа использует для Office или других инструментов, если вы не используете что-то сверхпрочное, например Photoshop.
Если вы используете RDP, вы получаете шифрование, вы получаете один порт, который открывается на брандмауэре, и вы получаете стандартизацию утилит (нет "я сделал это дома, и он работал нормально, почему он не открывается здесь?", Жалобы) плюс централизованное управление. Я видел, как подобные проблемы решались именно таким образом несколько раз, и только при определенных обстоятельствах возникали проблемы с ним.
Кроме того, у вас нет учеников с множественными копиями документов, которые жалуются на то, что они не знают, ПОЧЕМУ их статья неверная, потому что она работала FINE дома... или они не сохранили ее в нужном месте....так далее.
Как насчет WebDAV?
Это поддерживается в Apache, и вы все равно можете использовать LDAP для аутентификации.
Пользователи смогут получить доступ к своим файлам из браузера, а современные версии Windows и OS X позволяют пользователям монтировать общие ресурсы WebDAV в Explorer и Finder соответственно.
Также было предотвращено возникновение проблем, связанных с попыткой сохранить состояние постоянно меняющейся файловой системы в синхронизации с базой данных в вашем методе.
Как уже говорили другие - не используйте FTP - есть много, много проблем с ним. OTOH, вам, вероятно, следует использовать протокол, который не требует от пользователей установки дополнительного программного обеспечения на стороне клиента; хотя доступ на основе ssh (sftp, scp) был бы идеальным, машины MSWindows не поставляются с клиентом в стандартной комплектации.
Нет доступных файловых менеджеров, написанных на PHP (и, возможно, на других языках). IIS делает очень странные вещи с туннелированием разрешений NTLM - но если вы используете Apache, он должен быть достаточно безопасным - однако доступ к дискам не так прост, как простое чтение из \server\username\ - вам нужно разрешить права администратора веб-сервера на эти файлы - но это кошмар безопасности!
Способ, которым я делаю это (для совершенно другого типа приложений), - это обрабатывать ввод-вывод через smbclient, используя имя пользователя / пароль из пользовательского сеанса PHP - но это на машине Linux - AFAIK, в MSWindows нет эквивалента.
Конечно, вы захотите использовать учетные данные, предоставленные пользователем, для аутентификации в хранилище.
Это быстро становится страшно сложным!
Таким образом, практическим решением было бы позволить студентам отобразить диски через Интернет. Таким образом, вам не нужно беспокоиться о сложностях предоставления файлового менеджера, который не является неотъемлемой частью операционной системы (то есть напрямую доступен из приложений). Но вы не хотите показывать свой сервер всем и каждому. Обычным способом решения этой проблемы будет VPN - и есть много хороших и недорогих доступных. Или просто оберните сервис в SSL с аутентификацией сертификата клиента. Но опять же это требует установки на стороне клиента.
Так.....
Как насчет веб-формы для аутентификации пользователя по IP-адресу, который затем создает ограниченную по времени дыру в брандмауэре для того, чтобы этот IP-адрес подключался через SMB (и им по-прежнему необходимо предоставить имя пользователя / пароль для сопоставления диска, разумеется),
Взгляните на Adito / OpenVPN ALS. Он бесплатный, будет устанавливаться в Windows или Linux и позволяет чрезвычайно легко настроить веб-интерфейс для общих файловых ресурсов, а также многих других функций. Я использую это в колледже, где я работаю. У него есть несколько недостатков: он требует, чтобы на клиентах была установлена Java, во многих браузерах отключается блокировка всплывающих окон, настройка сертификатов может быть проще, а постраничное представление списков файлов может быть проще. Если вы решите настроить webdav, его можно использовать для упрощения (и повышения надежности) для ваших пользователей правильного сопоставления дисков.
PS: лично я думаю, что у вас будет гораздо больше шансов на успех, если вы перенесете свою систему на *nix, потому что будет доступно больше альтернатив (свободно)
Что приходит на ум:
Dropbox:
загрузить изменения в Dropbox. Отличительной особенностью Dropbox является то, что они предлагают бесплатный тариф на 20 ГБ (прямо сейчас) и могут использоваться с любой популярной операционной системой (Windows/Linux/MacOSX) без каких-либо хлопот. Я еще ничего не читал / не реализовывал с помощью API Dropbox, но, надеюсь, вы сможете добиться этого без особой головной боли. Я предполагаю, что проблема в том, что происходит, когда они меняют тарифный план, но об этом позже.
Альтернативы Dropbox с открытым исходным кодом
После быстрого поиска в Google, эта ссылка предоставляет некоторые альтернативы с открытым исходным кодом, но я не знаю, насколько они хороши, поэтому вы должны это проверить.
Web
Вместо того, чтобы дать пользователям возможность синхронизировать, предоставьте им только возможность загружать файлы / папки (в архиве). Я думаю, что вы могли бы написать такую систему без особых обид.
VPN / RPC
Как и некоторые другие пользователи, дайте пользователю возможность войти в систему с помощью VPN/RPC.
Взгляните на Ajaxplorer ( http://www.ajaxplorer.info/)
Это веб-файловый менеджер (написанный на PHP и Javascript), который обеспечивает простое администрирование разрешений, пользователей, групп, и вы можете настроить как общие, так и личные репозитории.
Это может также сделать webdav и имеет соединители аутентификации для всех видов систем (ldap, mysql, flatfile.....)
с помощью коннекторов файловой системы вы можете настроить правила для автоматического сопоставления учетных записей пользователей с отдельными каталогами, что позволит удовлетворить ваши требования для доступа к подключенному диску пользователя.
Мы только начали использовать его здесь (дизайн / веб-агентство), и клиенты со всеми техническими возможностями находят его очень простым в использовании / понимании.
Вы должны быть в состоянии интегрировать его в вашу текущую систему без изменений