Настройка WebDAV в Apache2 на Debian Lenny
Что такое WebDAV в одно предложение
WebDAV — расширение HTTP для редактирования и управления файлами на веб-сервере напрямую, без FTP: позволяет открывать, изменять и сохранять файлы на сервере.
Основные понятия
- DAV On — включает WebDAV для указанного Location.
- AuthUserFile — файл с паролями для базовой аутентификации (htpasswd).
- Alias и
— позволяют выделить путь для WebDAV в рамках виртуального хоста.
Предварительная заметка
В примере используется Debian Lenny с IP 192.168.0.100 и пользователь Apache www-data. При необходимости подставьте свои значения. Я не даю гарантий работы в вашей среде — адаптируйте конфигурацию под ваши потребности.
Установка WebDAV
Если Apache ещё не установлен, выполните:
aptitude install apache2Включите модули WebDAV:
a2enmod dav_fs
a2enmod davПерезапустите Apache:
/etc/init.d/apache2 restartВажно: используйте привилегии root или sudo для всех команд, которые требуют доступа к системным файлам и сервисам.
Создание виртуального хоста и каталога для WebDAV
Создаём директорию для содержимого WebDAV и назначаем владельцем www-data:
mkdir -p /var/www/web1/web
chown www-data /var/www/web1/webДелаем резервную копию дефолтного виртуального хоста и открываем его для редактирования:
mv /etc/apache2/sites-available/default /etc/apache2/sites-available/default_orig
vi /etc/apache2/sites-available/defaultВ файле вставьте (или отредактируйте) конфигурацию виртуального хоста:
NameVirtualHost *
ServerAdmin webmaster@localhost
DocumentRoot /var/www/web1/web/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Перегружаем конфигурацию Apache:
/etc/init.d/apache2 reloadНастройка виртуального хоста для WebDAV
Создаём файл паролей и добавляем пользователя test (ключ -c создаёт файл):
htpasswd -c /var/www/web1/passwd.dav testЕсли файл уже существует — не используйте -c, иначе все пользователи будут удалены.
Ограничиваем доступ к файлу паролей:
chown root:www-data /var/www/web1/passwd.dav
chmod 640 /var/www/web1/passwd.davДобавьте в конфигурацию виртуального хоста следующие строки (внутри
Alias /webdav /var/www/web1/web
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/web1/passwd.dav
Require valid-user
Итоговый виртуальный хост должен выглядеть так:
NameVirtualHost *
ServerAdmin webmaster@localhost
DocumentRoot /var/www/web1/web/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Alias /webdav /var/www/web1/web
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/web1/passwd.dav
Require valid-user
Перезагрузите конфигурацию:
/etc/init.d/apache2 reloadТестирование WebDAV
Установим cadaver — простейший CLI-клиент WebDAV:
aptitude install cadaverПодключаемся и проверяем работу:
cadaver http://localhost/webdav/Ожидается запрос имени пользователя: введите test и пароль. Пример сессии:
server1:~# cadaver http://localhost/webdav/
Authentication required for webdav on server `localhost':
Username: test
Password:
dav:/webdav/> quit
Connection to `localhost' closed.
server1:~#Если вы вошли — WebDAV работает.
Отладка и распространённые ошибки
- Ошибка 403 Forbidden: Проверьте права на каталог /var/www/web1/web и пользователя www-data. Убедитесь, что Apache имеет право записи, если планируется запись через WebDAV.
- Проблемы с аутентификацией: проверьте путь AuthUserFile и права на файл passwd.dav (должен быть доступен Apache). Если Apache запущен от www-data, файл должен быть readable группой www-data.
- Модули не загружены: проверьте output a2enmod и /etc/apache2/mods-enabled.
- SELinux или AppArmor: на системах с включёнными ограничениями безопасности может требоваться дополнительная настройка политик.
Альтернативные подходы
- Использовать WebDAV через отдельный виртуальный хост с отдельным доменом/портом (упрощает правила доступа).
- Для защищённой работы применяйте HTTPS (TLS) — базовая аутентификация передаёт пароль в незашифрованном виде.
- Рассмотрите SFTP для случаев, когда нужен только файловый доступ без HTTP-интеграции.
Чек-лист администратора перед вводом в эксплуатацию
- Установлены и включены модули dav_fs и dav
- Создан каталог /var/www/web1/web и назначен владелец www-data
- Создан файл паролей /var/www/web1/passwd.dav и добавлены пользователи
- Права на файл passwd.dav установлены как 640 и владелец root:www-data
- Конфигурация виртуального хоста обновлена и перезагружена
- Выполнено тестовое подключение cadaver или GUI-клиента
- При необходимости настроен TLS и проверен сертификат
Быстрая шпаргалка команд
- Установка Apache: aptitude install apache2
- Включить модули: a2enmod dav_fs; a2enmod dav
- Перезапустить: /etc/init.d/apache2 restart
- Создать пользователя WebDAV: htpasswd -c /var/www/web1/passwd.dav test
- Тест: cadaver http://localhost/webdav/
Роли и ответственность
- Системный администратор: установка, права, SELinux/AppArmor, перезагрузка сервиса.
- DevOps/инженер безопасности: настройка TLS, аудит паролей, мониторинг доступа.
- Тестировщик: проверка чтения/записи, проверка отказоустойчивости и восстановления.
Критерии приёмки
- Удалённое подключение к /webdav разрешено с учётными данными из passwd.dav.
- Пользователь может читать и (если разрешено) записывать файлы в /var/www/web1/web.
- Доступ к другим URL виртуального хоста остаётся стандартным HTTP.
- Логи Apache не содержат ошибок доступа или модулей.
Таблица полезных значений
- Порт по умолчанию: 80 (рекомендуется включить 443 + TLS)
- Файл паролей: /var/www/web1/passwd.dav
- Права файла паролей: 640 (root:www-data)
- Путь WebDAV: /webdav
- Владелец каталога: www-data
Короткое резюме
WebDAV даёт простой способ управлять файлами через HTTP. На Debian Lenny достаточно включить модули dav_fs и dav, настроить виртуальный хост с Alias и
Важное: если в вашей среде есть корпоративные политики безопасности (SELinux/AppArmor, прокси, брандмауэр), обязательно согласуйте и протестируйте настройку в тестовом окружении перед развёртыванием в продакшн.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента