Как настроить WebDAV с lighttpd на Fedora 11
Краткое описание
Это руководство объясняет, как настроить WebDAV (Web-based Distributed Authoring and Versioning) на сервере lighttpd под Fedora 11. WebDAV добавляет к HTTP возможности редактирования и совместной работы с файлами напрямую на сервере — без отдельного FTP-клиента. В руководстве показаны шаги по установке, настройке виртуального хоста, созданию файла паролей, тестированию и подключению клиентов.
Важно: Fedora 11 устарела и может не получать обновлений безопасности. По возможности рассматривайте миграцию на поддерживаемую версию Fedora или другую современную ОС.
Предварительная заметка
В примерах используется сервер Fedora 11 с IP-адресом 192.168.0.100. Подставьте свои значения при настройке.
Установка WebDAV и необходимых пакетов
Установите lighttpd вместе с модулем WebDAV и инструментом htpasswd (входит в httpd-tools):
yum install lighttpd httpd-toolsСоздайте ссылки автозапуска, чтобы lighttpd стартовал при загрузке, и запустите сервис:
chkconfig --levels 235 lighttpd on
/etc/init.d/lighttpd startОткройте конфигурационный файл и добавьте нужные модули. Важно, чтобы модуль mod_webdav был указан перед mod_auth:
vi /etc/lighttpd/lighttpd.conf[...]
server.modules = (
# "mod_rewrite",
# "mod_redirect",
"mod_alias",
"mod_access",
# "mod_cml",
# "mod_trigger_b4_dl",
"mod_webdav",
"mod_auth",
# "mod_status",
# "mod_setenv",
# "mod_fastcgi",
# "mod_proxy",
# "mod_simple_vhost",
# "mod_evhost",
# "mod_userdir",
# "mod_cgi",
# "mod_compress",
# "mod_ssi",
# "mod_usertrack",
# "mod_expire",
# "mod_secdownload",
# "mod_rrdtool",
"mod_accesslog" )
[...]Перезапустите lighttpd, чтобы применить изменения:
/etc/init.d/lighttpd restartСоздание виртуального хоста
В примере создаётся виртуальный хост для www.example.com с документ-рутом /var/www/web1/web. Если у вас уже есть vhost, адаптируйте пути соответственно.
Создайте каталог и назначьте владельца lighttpd:
mkdir -p /var/www/web1/web
chown lighttpd:lighttpd /var/www/web1/webДобавьте vhost в конфигурацию:
vi /etc/lighttpd/lighttpd.conf[...]
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
}Перезапустите сервис:
/etc/init.d/lighttpd restartНастройка виртуального хоста для WebDAV
Создайте файл паролей WebDAV и добавьте тестового пользователя (опция -c создаёт файл):
htpasswd -c /var/www/web1/passwd.dav testВас попросят ввести пароль для пользователя test.
Важно: не используйте опцию -c, если файл passwd.dav уже существует — она перезапишет файл и удалит всех пользователей.
Ограничьте доступ к файлу паролей:
chown root:lighttpd /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.davОтредактируйте vhost, чтобы включить алиас /webdav и авторизацию:
vi /etc/lighttpd/lighttpd.conf[...]
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
alias.url = ( "/webdav" => "/var/www/web1/web" )
$HTTP["url"] =~ "^/webdav($|/)" {
dir-listing.activate = "enable"
webdav.activate = "enable"
webdav.is-readonly = "disable"
auth.backend = "htpasswd"
auth.backend.htpasswd.userfile = "/var/www/web1/passwd.dav"
auth.require = ( "" => ( "method" => "basic",
"realm" => "webdav",
"require" => "valid-user" ) )
}
}Пояснение: alias.url + проверка URL включают WebDAV только при обращении к /webdav, остальные URL остаются обычными HTTP.
Перезапустите lighttpd:
/etc/init.d/lighttpd restartТестирование WebDAV (cadaver)
Установите консольный клиент cadaver и выполните тест:
yum install cadaverПодключитесь к WebDAV:
cadaver http://www.example.com/webdav/Введите имя пользователя test и его пароль. Пример сессии:
[root@server1 ~]# cadaver http://www.example.com/webdav/
Authentication required for webdav on server `www.example.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example.com' closed.
[root@server1 ~]#Если доступ получен — WebDAV работает.
Настройка клиента Windows XP
На Windows XP нужно указать порт в URL WebDAV, например:
http://www.example.com:80/webdav
На некоторых установках XP это позволяет системе принять обычное имя пользователя (например, test). В противном случае XP может требовать NTLM-формат имени: www.example.com\test
Настройка клиента Linux (GNOME)
GNOME умеет подключать WebDAV-ресурсы через “Подключение к серверу” (gvfs): используйте URL вида http://www.example.com/webdav/ и укажите учётные данные.
Советы по безопасности
- По возможности используйте HTTPS (TLS). WebDAV передаёт пароли в открытом виде при HTTP/Basic.
- Ограничьте доступ по IP, если это допустимо, с помощью директив allow/deny или на сетевом уровне.
- Держите файл /var/www/web1/passwd.dav с правами 640 и владельцем root:lighttpd.
- Используйте надёжные пароли и периодически их меняйте.
- SELinux может блокировать доступ к файлам — временно можно переключить в Permissive для тестирования, но лучше создать корректную политику.
Устранение неполадок
- 403 Forbidden при обращении к /webdav: проверьте права на каталог и на passwd.dav, порядок модулей (mod_webdav должен идти перед mod_auth), SELinux и логи /var/log/lighttpd/error.log.
- Ошибка аутентификации: убедитесь, что htpasswd был создан правильно и что auth.backend.htpasswd.userfile указан верно.
- Доступ только на чтение: проверьте webdav.is-readonly = “disable” в конфигурации.
- Какие ещё клиенты использовать: в дополнение к cadaver существуют GUI-клиенты (rclone, davfs2, Nautilus/Files в GNOME).
Важно: не отключайте SELinux на продакшн-сервере без анализа рисков.
Альтернативы и примечания по совместимости
- Apache HTTP Server поддерживает WebDAV и предоставляет расширенные возможности контроля прав и интеграции. Если вы знакомы с Apache, перенос конфигурации WebDAV на него может быть проще.
- nginx поддерживает базовые WebDAV-операции, но его функциональность записи может быть ограничена по сравнению с полноценной реализацией WebDAV в lighttpd или Apache.
- Fedora 11 устарела; для долгосрочной надёжности и безопасности планируйте миграцию на поддерживаемую версию дистрибутива.
Decision flowchart
flowchart TD A[Установка пакетов] –> B[Включение модулей в конфиге] B –> C[Создание виртуального хоста] C –> D[Создание passwd.dav и прав] D –> E[Добавление алиаса /webdav и включение webdav.activate] E –> F[Перезапуск lighttpd] F –> G[Тестирование cadaver] G –> H{Работает?} H – Да –> I[Подключение клиентов] H – Нет –> J[Логи, права, SELinux, порядок модулей]
Чек-лист администратора
- Установлены lighttpd и httpd-tools
- mod_webdav и mod_auth включены в server.modules (mod_webdav перед mod_auth)
- Виртуальный хост настроен и document-root корректен
- Создан /var/www/web1/passwd.dav и добавлены пользователи
- Права на passwd.dav — root:lighttpd и 640
- webdav.activate = “enable” и webdav.is-readonly = “disable” если нужно запись
- Тестирование через cadaver прошло успешно
- SSL/TLS настроен при экспонировании сервиса в публичный Интернет
Критерии приёмки
- Удачное подключение к http://www.example.com/webdav/ с учётной записью test
- Возможность просмотра и (если разрешено) записи файлов через клиент cadaver
- Файл паролей доступен только для root и группы lighttpd
- Логи не содержат критических ошибок при старте и при аутентификации
Краткое резюме
Настройка WebDAV на lighttpd включает установку пакетов, включение модулей, создание виртуального хоста, настройку файла паролей и проверку доступа. Обязательно учитывайте безопасность: используйте HTTPS, ограничьте доступ по правам и проверяйте SELinux. Для устаревшей Fedora 11 рассмотрите обновление ОС.
Глоссарий
- WebDAV — расширение HTTP для удалённого редактирования и управления файлами на сервере.
- Виртуальный хост — конфигурация, позволяющая одному серверу обслуживать несколько доменов.
- htpasswd — утилита для управления файлами паролей в формате Apache/lighttpd.
- cadaver — CLI-клиент для доступа к WebDAV.
Ссылки
- WebDAV: http://www.webdav.org/
- Lighttpd: http://www.lighttpd.net/
- Fedora: http://fedoraproject.org/
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента