3.9.17 WebDAV, neon и chezdav для настройки сервера
Утилита neon
Утилита chezdav
Синтаксис chezdav
Опции chezdav
WebDAV
Настройки облачного сервиса, поддерживающего протокол WebDAV
Окружение
- Версия РЕД ОС: 7.3, 8
- Конфигурация: Сервер графический
- Версия ПО в РЕД ОС 7.3: neon-0.32.1, chezdav-2.3
- Версия ПО в РЕД ОС 8.0: neon-0.32.2, chezdav-3.0
Утилита neon
Neon — клиентская библиотека HTTP и WebDAV, предоставляющая высокоуровневый интерфейс для методов HTTP и WebDAV, а также низкоуровневый интерфейс для обработки HTTP-запросов. Neon поддерживает постоянные подключения, прокси-серверы, базовую аутентификацию, Kerberos, SSL.
Neon предназначен для защиты от определённой модели угроз: использования вредоносного HTTP-сервера. В соответствии с этой моделью угроз против клиента возможен целый ряд атак, когда пользователя (или приложение) можно обманом заставить получить доступ к HTTP-серверу, который контролируется злоумышленником.
Возможности:
Высокоуровневый интерфейс для общих методов HTTP и WebDAV позволяет отправлять GET- или MKCOL-запросы к ресурсу с помощью одного вызова функции;
Низкоуровневый интерфейс для обработки HTTP-запросов, позволяющий реализовывать запросы с использованием произвольных методов и заголовков запросов, захватывать произвольные заголовки ответов и т. д.;
Поддержка постоянного подключения — neon группирует набор запросов к серверу в "сеанс", запросы внутри этого сеанса могут использовать постоянно действующее соединение;
Современная поддержка аутентификации, полная реализация нового стандарта аутентификации RFC2617, включая поддержку Digest, Basic и Negotiate;
Сеанс может быть настроен на использование прокси-сервера, при этом аутентификация поддерживается как для прокси-сервера, так и для исходного сервера;
Поддержка SSL/TLS с использованием OpenSSL или GnuTLS, предоставление уровня абстракции для проверки сертификатов сервера, обработки клиентских сертификатов и изучения свойств сертификатов;
Полная поддержка SSL, простой интерфейс для включения SSL, скрывающий сложность прямого использования библиотеки SSL. Поддержка клиентских сертификатов, проверка сертификатов сервера на основе обратного вызова, а также функции для загрузки сертификатов доверенного центра сертификации. Клиентские сертификаты на основе смарт-карт поддерживаются через интерфейс-оболочку PKCS#11;
Универсальный интерфейс синтаксического анализа XML для обработки содержимого XML-ответов с использованием SAX-подобных обратных вызовов;
Поддержка WebDAV, включая блокировку, манипулирование свойствами и извлечение данных, поддержку ACL.
Для установки neon выполните команду в терминале (потребуются права администратора):
sudo dnf install neon
Основные функции:
ne_session *ne_session_create(const char *scheme, const char *hostname, unsigned int port) — функция создаёт соединения с указанным хостом, принимает в качестве параметров схему, хост и порт, возвращает указатель на новый объект сеанса, который используется в других функциях для выполнения запросов;
int ne_get(ne_session *sess, const char *path, int fd) — получение ресурса по пути path, результат записывается в указанный файловый дескриптор;
int ne_put(ne_session *sess, const char *path, int fd) — изменение ресурса по пути path из файлового дескриптора;
int ne_copy(ne_session *sess, int overwrite, int depth, const char *src, const char *dest) — копирует ресурс из src в dest;
int ne_move(ne_session *sess, int overwrite, const char *src, const char *dest) — перемещает ресурс из src в dest;
int ne_delete(ne_session *sess, const char *uri) — удаляет ресурс по указанному пути;
int ne_mkcol(ne_session *sess, const char *uri) — создаёт директорию struct ne_lock *ne_lock_create(void);
int ne_lock(ne_session *sess, struct ne_lock *lock) — создаёт блокировку на ресурс;
int ne_unlock(ne_session *sess, const struct ne_lock *lock) — снимает блокировку с ресурса;
ne_lock и ne_unlock — принимают структуру ne_lock в качестве аргумента, содержащую информацию о блокировке на ресурсы.
Описание полей структуры ne_lock:
ne_uri uri — URI-ресурса, который требуется заблокировать;
int depth — глубина блокировки, определяющая, на каком уровне блокировки будет применяться операция;
enum ne_lock_type type — тип блокировки (shared — разделяемая блокировка, exclusive — исключительная блокировка);
enum ne_lock_scope scope — область видимости блокировки;
char *token — уникальный идентификатор блокировки;
char *owner — владелец блокировки;
long timeout — таймаут блокировки в секундах.
Утилита chezdav
Утилита chezdav также предоставляет возможность работы с WebDAV-серверами, но основной упор делается на удобство использования и предоставление более высокоуровневых функций. Утилита chezdav запускает сервер WebDAV. Это позволяет клиентам получать доступ к вашим файлам и изменять их. Для просмотра файлов достаточно простого веб-браузера. Общей папкой по умолчанию является домашний каталог, но вы можете указать другую папку с помощью опции -P.
Для установки chezdav выполните команду в терминале (потребуются права администратора):
sudo dnf install chezdav
Дальнейшая работа с программой должна выполняться с правами обычного (непривилегированного) пользователя.
Для запуска webdav-сервера выполните в терминале команду:
chezdav
Для вывода списка доступных команд и опций утилиты chezdav, а также краткого описания их использования введите команду:
chezdav --help
Синтаксис chezdav
Утилита chezdav доступна для запуска через терминал при помощи команды следующего вида:
chezdav [<опции>]
Опции chezdav
Основные опции утилиты:
-h, --help — показать параметры справки;
--version — вывести версию программы;
-v, --verbose — подробный вывод;
-p, --port — порт для прослушивания (по умолчанию порт выделяется случайным образом);
--local — слушать только локально;
--public — слушать на всех интерфейсах;
-P, --path — путь для экспорта;
-d, --htdigest — путь к файлу htdigest;
-r, --readonly — только чтение.
WebDAV
Подробную информацию о подключении к облачному сервису с использованием протокола WebDAV см. в нашей инструкции «Подключение РЕД ОС к облачным сервисам».
Настройки облачного сервиса, поддерживающего протокол WebDAV
1. Выполните установку davfs2 в терминале (потребуются права администратора):
sudo dnf install davfs2
2. Создайте точку монтирования (например, /mnt/webdav):
sudo mkdir /mnt/webdav
3. Откройте файл конфигурации /etc/davfs2/davfs2.conf на редактирование:
sudo nano /etc/davfs2/davfs2.conf
Раскомментируйте (уберите символ "#" в начале строки) и установите значение "0" для отключения блокировок в параметре use_locks:
use_locks 0
4. Создайте файл с учётными данными для аутентификации:
sudo nano /etc/davfs2/secrets
Добавьте строку в следующем формате (замените <имя_пользователя> и <пароль> на свои данные):
/mnt/webdav <имя_пользователя> <пароль>
Сохраните и закройте файл.
5. Установите права доступа для файла с учётными данными:
sudo chmod 600 /etc/davfs2/secrets
6. Добавьте свойства монтирования в файл /etc/fstab для автоматического монтирования при загрузке системы:
sudo nano /etc/fstab
Добавьте следующую строку в конец файла:
<URL_сервера_WebDAV> /mnt/webdav davfs user,rw,noauto 0 0
где:
<URL_сервера_WebDAV> необходимо заменить на URL вашего сервера WebDAV.
7. Сохраните и закройте файл.
8. Примонтируйте WebDAV-ресурс:
sudo mount /mnt/webdav
Теперь ваш WebDAV-ресурс должен быть успешно подключён и доступен для работы в каталоге /mnt/webdav.
Дата последнего изменения: 31.07.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.