Как настроить WebDAV в lighttpd на Mandriva 2009.1
TL;DR
Кратко: установите модуль mod_webdav для lighttpd, создайте vhost с alias /webdav, настройте HTTP-аутентификацию через htpasswd и проверьте работу с cadaver. Обязательно защите доступ TLS и права на файл паролей.
Введение
Этот пошаговый гид покажет, как включить WebDAV в lighttpd на сервере Mandriva 2009.1. WebDAV (Web-based Distributed Authoring and Versioning) расширяет HTTP и позволяет редактировать и передавать файлы прямо на сервере без использования FTP. Гид адаптирован под конфигурацию примера: IP 192.168.0.100 и vhost www.example.com.
Важно: автор не даёт гарантий; выполняйте команды с правами root и при необходимости делайте резервные копии конфигураций.
Основные понятия
- WebDAV — расширение HTTP для совместного редактирования и передачи файлов.
- vhost (виртуальный хост) — конфигурация сервера для одного домена/сайта.
- htpasswd — утилита для управления файлом с паролями в формате Apache htpasswd.
1. Предварительная заметка
В примерах используется Mandriva 2009.1 с IP 192.168.0.100. Подставьте свои имена хостов, пути и пользователей при применении инструкций.
2. Установка WebDAV и зависимостей
Установите lighttpd, модуль WebDAV и apache-base (htpasswd входит в него):
urpmi lighttpd lighttpd-mod_webdav lighttpd-mod_auth apache-baseЕсли у вас установлен Apache, остановите его и отключите автозапуск, чтобы исключить конфликт за порт 80:
/etc/init.d/httpd stop
chkconfig httpd offЗапустите lighttpd:
/etc/init.d/lighttpd startОткройте файл конфигурации /etc/lighttpd/lighttpd.conf и включите модули mod_alias, mod_webdav и mod_auth в секции server.modules. Важно: укажите 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 restart3. Создание виртуального хоста
В примере мы создаём vhost для www.example.com с документ-рутом /var/www/web1/web.
Создайте каталог и назначьте владельца apache:apache (в Mandriva пользователь веб-сервера называется apache):
mkdir -p /var/www/web1/web
chown apache:apache /var/www/web1/webДобавьте в конец /etc/lighttpd/lighttpd.conf блок vhost:
vi /etc/lighttpd/lighttpd.conf[...]
$HTTP["host"] == "www.example.com" {
server.document-root = "/var/www/web1/web"
}Затем перезапустите:
/etc/init.d/lighttpd restart4. Конфигурация vhost для WebDAV
Создайте файл паролей WebDAV и добавьте пользователя test (ключ -c создаёт файл):
htpasswd -c /var/www/web1/passwd.dav testВведите пароль для пользователя test.
Важно: не используйте -c, если файл уже существует — это перезапишет его и удалит предыдущие записи.
Назначьте права, чтобы только root и группа apache могли читать файл:
chown root:apache /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.davОтредактируйте vhost, чтобы подключить алиас /webdav и включить 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 в сочетании с правилом $HTTP[“url”] =~ “^/webdav($|/)” включает WebDAV только при обращении к /webdav, остальные URL остаются обычным HTTP.
Перезапустите lighttpd:
/etc/init.d/lighttpd restart5. Тестирование WebDAV с помощью cadaver
Установите cadaver — командный WebDAV-клиент:
urpmi cadaverПодключитесь к шару:
cadaver http://www.example.com/webdav/Ожидается запрос имени пользователя и пароля. Пример сессии:
[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 ~]#Если доступ разрешён и команды cadaver работают, WebDAV функционирует.
6. Подключение клиента Windows XP
Инструкция описана в исходном материале: https://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch-p2
Примечание для Windows XP: указывайте порт в URL, например http://www.example.com:80/webdav — это часто заставляет XP принять обычное имя пользователя (например, test). Без указания порта XP может ожидать NTLM-формат имени (www.example.com\test).
7. Подключение клиента Linux (GNOME)
Инструкция для GNOME описана здесь: https://www.howtoforge.com/setting-up-webdav-with-apache2-on-debian-etch-p3
В GNOME используйте «Подключиться к серверу» и укажите URL вида dav:// или http:// (при отсутствии TLS). Рекомендуется использовать TLS (https) для безопасной передачи паролей.
8. Отладка и распространённые ошибки
- 401 Unauthorized: проверьте файл /var/www/web1/passwd.dav, права доступа и auth.require.
- 405 Method Not Allowed или ошибки LOCK/PUT: убедитесь, что webdav.activate = “enable” и webdav.is-readonly = “disable”.
- Проблемы с правами файлов: убедитесь, что пользователь apache имеет права на запись в каталог /var/www/web1/web.
- Конфликты с Apache: проверьте, что Apache остановлен и не слушает порт 80.
- Логи: смотрите /var/log/lighttpd/error.log и access-log (если включён mod_accesslog).
Совет по безопасности: если у вас включены SELinux или AppArmor, проверьте соответствующие правила, они могут блокировать доступ к файлам и портам.
9. Безопасность и рекомендации по харднингу
- Используйте HTTPS (TLS) для всех WebDAV-соединений — базовая HTTP-аутентификация передаёт пароли в незашифрованном виде.
- Ограничьте доступ по IP, если это возможно (директива $HTTP[“remoteip”]).
- Храните файл паролей вне документ-рута и с правами 640.
- Отключите перечисление директорий (dir-listing.activate = “disable”) в рабочей среде, если не нужно.
- Регулярно пересматривайте пользователей в passwd.dav и используйте сложные пароли.
10. Миграция и альтернативные подходы
- Если вы уже используете Apache, можно включить WebDAV через модуль mod_dav и mod_dav_fs — для крупных инсталляций Apache имеет большее количество расширений.
- Nginx не имеет встроенной полноценной реализации WebDAV для записи, но поддерживает ограничённый набор методов; для полноценного WebDAV часто используют Apache или специализированные сервисы (Nextcloud, ownCloud).
11. Роли и контрольный список
Администратор сервера:
- Установить пакеты: lighttpd, lighttpd-mod_webdav, lighttpd-mod_auth, apache-base.
- Остановить Apache и отключить автозапуск.
- Включить необходимые модули в /etc/lighttpd/lighttpd.conf.
- Создать vhost и каталог документа.
- Создать файл паролей htpasswd и настроить права.
- Перезапустить lighttpd и проверить логи.
Пользователь рабочего места:
- Подключиться через cadaver или клиент ОС (GNOME, Windows).
- Проверить запись/чтение/удаление в /webdav.
12. Критерии приёмки
- Пользователь test успешно аутентифицируется и может просматривать/записывать файлы в /webdav.
- При обращении к другим URL vhost доступны обычным способом.
- Логи lighttpd не содержат критических ошибок при подключениях.
- Подключение через HTTPS (если настроено) не вызывает ошибок сертификата для доверенного клиента.
13. Мини-методология развёртывания
- Подготовка: выбор хоста, резервная копия конфигурации.
- Тестовая среда: настроить на тестовом сервере и проверить базовую функциональность.
- Безопасность: настроить TLS и права доступа.
- Перенос в прод: применить на продакшн и контролировать логи первые 24–72 часа.
14. Полезные ссылки
- WebDAV: http://www.webdav.org/
- Lighttpd: http://www.lighttpd.net/
- Mandriva: http://www.mandriva.com/
15. Заключение
WebDAV в lighttpd даёт простой способ удалённого редактирования файлов через HTTP. Для безопасной эксплуатации обязательно используйте TLS, жёсткие права на файл паролей и контроль доступа. Тестируйте подключение перед переносом в продакшн и следите за логами.
Важно: если вы меняете пути, имена хостов или порты — обновите соответствующие места в конфигурациях и в файле passwd.dav.
Сводка и действия: проверьте, что mod_webdav включён, создайте passwd.dav с нужными правами, добавьте алиас /webdav и протестируйте cadaver.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента