Настройка WebDAV с Apache2 на OpenSUSE 11.2
Версия 1.0
Автор: Falko Timme
Подписывайтесь на меня в Twitter
Введение
Это руководство объясняет, как настроить WebDAV (Web-based Distributed Authoring and Versioning) в Apache2 на сервере OpenSUSE 11.2. WebDAV — набор расширений HTTP, который позволяет напрямую редактировать файлы на сервере Apache, не прибегая к загрузке/выгрузке через FTP. Также WebDAV можно использовать для обычной загрузки и скачивания файлов.
Важно: Автор не даёт гарантий, что инструкция сработает в вашей среде. Тестируйте изменения на тестовом сервере прежде, чем применять в продакшене.
1 Предварительное замечание
В примерах используется сервер OpenSUSE 11.2 с IP-адресом 192.168.0.100. При необходимости замените адреса и домены на ваши.
2 Установка WebDAV
Если Apache ещё не установлен, установите его командой:
yast2 -i apache2Затем включите модули WebDAV:
a2enmod dav
a2enmod dav_fs
a2enmod dav_lockСоздайте системные ссылки автозапуска для Apache и запустите службу:
chkconfig --add apache2/etc/init.d/apache2 startПримечание: команды управления сервисами специфичны для OpenSUSE 11.2; в более новых версиях используются systemctl.
3 Создание виртуального хоста
В этом примере создаём виртуальный хост www.example1.com, корневая директория — /srv/www/web1/web. Если у вас уже есть vhost, адаптируйте пути и имена.
Создаём директорию и назначаем владельца (Apache-пользователь wwwrun и группа www):
mkdir -p /srv/www/web1/web
chown wwwrun:www /srv/www/web1/webСоздайте файл vhost:
vi /etc/apache2/vhosts.d/www.example1.com.confВставьте в файл следующее:
ServerAdmin webmaster@localhost
ServerName www.example1.com
ServerAlias example1.com
DocumentRoot /srv/www/web1/web/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Откройте /etc/apache2/httpd.conf и перед строкой Include /etc/apache2/vhosts.d/.conf добавьте NameVirtualHost :
vi /etc/apache2/httpd.confНайдите секцию конфигурации виртуальных хостов и добавьте/проверьте:
[...]
NameVirtualHost *
Include /etc/apache2/vhosts.d/*.conf
[...]Перезапустите Apache:
/etc/init.d/apache2 restart4 Настройка виртуального хоста для WebDAV
Создаём файл паролей WebDAV и добавляем пользователя test (ключ -c создаёт файл):
htpasswd2 -c /srv/www/web1/passwd.dav testВас попросят ввести пароль для пользователя test. Не используйте -c, если файл уже существует — это перезапишет его и удалит всех других пользователей.
Измените права доступа, чтобы файл мог читать root и члены группы www:
chown root:www /srv/www/web1/passwd.dav
chmod 640 /srv/www/web1/passwd.davОтредактируйте vhost /etc/apache2/vhosts.d/www.example1.com.conf и добавьте Alias и секцию Location для WebDAV:
vi /etc/apache2/vhosts.d/www.example1.com.confВставьте:
Alias /webdav /srv/www/web1/web
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /srv/www/web1/passwd.dav
Require valid-user
Alias вместе с
Финальный vhost будет выглядеть примерно так:
ServerAdmin webmaster@localhost
ServerName www.example1.com
ServerAlias example1.com
DocumentRoot /srv/www/web1/web/
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
Alias /webdav /srv/www/web1/web
DAV On
AuthType Basic
AuthName "webdav"
AuthUserFile /srv/www/web1/passwd.dav
Require valid-user
Следующий шаг — указать расположение базы блокировок WebDAV. В примере я использую /var/lib/dav/:
mkdir /var/lib/dav/
chown wwwrun:www /var/lib/dav/Отредактируйте /etc/apache2/httpd.conf и добавьте DAVLockDB выше строки NameVirtualHost *:
vi /etc/apache2/httpd.confДобавьте блок:
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
NameVirtualHost *Перезапустите Apache:
/ etc/init.d/apache2 restart5 Тестирование WebDAV
Установите cadaver — консольный WebDAV‑клиент:
yast2 -i cadaverТест подключения:
cadaver http://www.example1.com/webdav/Должно появиться приглашение ввести имя пользователя и пароль. Введите test и соответствующий пароль. Если доступ предоставлен — WebDAV работает. Введите quit для выхода:
server1:~ # cadaver http://www.example1.com/webdav/
Authentication required for webdav on server `www.example1.com':
Username: test
Password:
dav:/webdav/> quit
Connection to `www.example1.com' closed.
server1:~ #URL WebDAV: http://www.example1.com/webdav/ для Linux-клиентов и http://www.example1.com:80/webdav/ для клиентов Windows (в некоторых клиентах Windows требуется указать порт).
6 Безопасность и рекомендации
Важно: Basic Auth передаёт учётные данные в кодировке Base64 (не зашифрованы). Рекомендации:
- Используйте HTTPS (SSL/TLS) для защищённого обмена и авторизации.
- Храните файл паролей вне общедоступных директорий и с правами 640/640.
- По возможности используйте более продвинутые механизмы аутентификации (LDAP, Kerberos) для корпоративных сред.
- Ограничьте доступ по IP/ACL к /webdav для уменьшения поверхности атаки.
- Регулярно проверяйте и защищайте DAVLockDB от перезаписи и доступов.
7 Тесты и критерии приёмки
Критерии приёмки
- Apache успешно запускается после конфигурации без ошибок.
- Веб‑браузер/ cadaver получают запрос аутентификации при обращении к /webdav.
- Пользователь с действительными учётными данными может просмотреть/загрузить/создать файл в /webdav.
- Попытки без аутентификации или с неверными учётными данными отклоняются.
- База блокировок DAVLockDB создаётся и имеет корректные права доступа.
Тестовые случаи
- Попытка доступа без авторизации: должно быть 401 Unauthorized.
- Попытка записи и блокировки файла параллельно с двух клиентов: блокировки должны работать (проверить через cadaver).
- Перезапуск Apache не приводит к потере DAVLockDB или к нарушению прав доступа.
8 Чек‑лист системного администратора
Перед запуском:
- Сделан резерв конфигурации Apache
- Каталог /srv/www/web1/web создан и имеет владельца wwwrun:www
- Файл паролей /srv/www/web1/passwd.dav создан и защищён
- DAVLockDB настроен и соответствует правам доступа
- Приведён список пользователей, которым нужен доступ
- В планах — включение HTTPS
При эксплуатации:
- Мониторинг логов (error_log, access_log) на предмет ошибок WebDAV
- Регулярное тестирование аутентификации
- Обновление пакетов Apache и OpenSUSE
9 Когда это может не работать (частые проблемы)
- Модуль dav_fs не включён: убедитесь, что a2enmod dav_fs выполнился успешно.
- Неправильные права доступа на каталог или файлы: проверьте chown/chmod.
- DAVLockDB отсутствует или доступ закрыт для Apache-пользователя.
- Фаервол блокирует соединения: откройте порт 80/443 для нужных адресов.
- В некоторых средах SELinux/AppArmor может блокировать доступ к файлам — проверьте профиль безопасности.
10 Альтернативные подходы
- Если нужна совместная работа в локальной сети — рассмотрите Samba или NFS для простого шаринга.
- Для версионности и совместной работы с историей — используйте Git или специализированные системы управления версиями.
- Если важна интеграция с каталогом пользователей — используйте LDAP/Active Directory для аутентификации в Apache.
11 Роли и ответственность
Системный администратор:
- Настройка Apache, модулей и прав доступа.
- Настройка SSL/TLS и контроля доступа.
Администратор безопасности:
- Проведение аудита и настройка политики паролей.
Пользователь:
- Использование клиента WebDAV (cadaver, файловый менеджер, монтирование WebDAV в ОС).
12 Короткое объявление (для команды, 100–200 слов)
Мы внедрили WebDAV на Apache2 в OpenSUSE 11.2 для удобного удалённого редактирования и обмена файлами. Пользовательский доступ защищён базовой аутентификацией и файлом паролей; для рабочих сред настоятельно рекомендуется включить HTTPS. Администраторы должны проверить DAVLockDB и права на директории перед вводом в эксплуатацию. Инструкции по тестированию включают использование cadaver и критерии приёмки, чтобы убедиться в корректной работе. Если нужна интеграция с корпоративными учетными записями или усиленная безопасность, рассмотрим LDAP/SSL.
13 Краткий глоссарий
- WebDAV: расширения HTTP для удалённого редактирования файлов.
- DAVLockDB: файл базы блокировок WebDAV.
- htpasswd2: утилита для создания файла пользователей Apache.
14 Полезные ссылки
- WebDAV: http://www.webdav.org
- Apache: http://httpd.apache.org
- OpenSUSE: http://www.opensuse.org/
Важно: адаптируйте примерные пути и конфигурации под вашу инфраструктуру и требования безопасности.
Конец руководства.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента