Найти в Дзене
Radeo13

Создаем личный файловый сервер: Как настроить WebDAV и SMB для доступа из любой точки мира. ODROID XU4

Оглавление

Это продолжение статьи о настройке одноплатного компьютера. Предыдущую часть вы можете прочитать по ссылке.

Все описанное здесь можно точно так же реализовать и на обычном сервере.

Основной целью было создать доступ к собственному хранилищу из любой точки мира. Для этого обычно требуется выделенный или белый IP-адрес, которого у меня нет. В этом случае на помощь приходит VPN (виртуальная частная сеть), с помощью которой можно получить доступ к хранилищу из любой сети и с любого устройства. В следующей статье я расскажу, как настроить VPN для этой задачи.

Первоначально я планировал использовать Nextcloud, но столкнулся с ошибками в последней версии платформы. К тому же мне нужно было работать с файлами в реальном времени, что лучше всего поддерживается через протокол SMB. Nextcloud, в свою очередь, больше ориентирован на облачное хранилище с удобным интерфейсом, и ограничивает работу с файлами в обход него.

В итоге я решил заменить Nextcloud на комбинацию WebDAV и SMB серверов. Для WebDAV был выбран веб-сервер Apache2, хотя изначально я предпочитал Nginx. Однако, у Nginx есть ограничения при работе с WebDAV, поскольку WebDAV является дополнительным модулем, который еще не совершенен. В Apache2 поддержка WebDAV встроена и работает более стабильно.

Установка WebDAV сервера

1. Установка Apache2:

sudo apt update
sudo apt install apache2 apache2-utils
sudo a2enmod dav
sudo a2enmod dav_fs
sudo a2enmod ssl

2. Создание директории и назначение прав:

sudo mkdir -p /DIR
sudo chown -R www-data:www-data /DIR
sudo chmod -R 755 /DIR

3. Создание конфигурации виртуального хоста (замените `/DIR` и `IP`):

sudo nano /etc/apache2/sites-available/webdav.conf

Вставьте следующее:

<VirtualHost 192.168.1.59:80>
ServerAdmin admin@example.com
DocumentRoot /DIR
<Directory /DIR>
Options Indexes FollowSymLinks
AllowOverride None
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
Alias /webdav /DIR
<Location /webdav>
DAV On
AuthType Basic
AuthName "WebDAV Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

4. Создание пользователя:

sudo htpasswd -c /etc/apache2/.htpasswd yourusername

5. Применение настроек и перезапуск Apache2:

sudo a2ensite webdav.conf
sudo systemctl reload apache2

6. Проверка работы сервера:

Откройте в браузере: `http://IP/webdav`

Установка Samba (SMB) сервера

1. Установка Samba:

sudo apt install samba

2. Создание пользователя:

sudo useradd yourusername
sudo passwd yourusername
sudo smbpasswd -a yourusername
sudo groupadd sambashare
sudo usermod -aG sambashare yourusername

3. Назначение прав на директорию:

sudo chown -R :sambashare /DIR
sudo chmod -R 0775 /DIR

4. Настройка SMB (добавьте в конец файла):

sudo nano /etc/samba/smb.conf

Вставьте следующее:

[data]
comment = Shared Folder for WebDAV and SMB
path = /DIR
browseable = yes
writable = yes
valid users = yourusername
force group = sambashare
create mask = 0664
directory mask = 0775
read only = no

5. Открытие портов в фаерволе:

sudo ufw allow 139/tcp
sudo ufw allow 445/tcp

6. Перезапуск SMB:

sudo systemctl restart smbd

7. Подключение на Windows:

Введите в адресной строке проводника:

\\IP\data

8. Решение проблемы в Windows 11 24h2:

Если возникли проблемы с подключением, выполните следующие команды:

Set-SmbClientConfiguration -RequireSecuritySignature $false
Set-SmbClientConfiguration -EnableInsecureGuestLogons $true

Эти шаги помогут вам настроить WebDAV и SMB серверы для доступа к вашему хранилищу с любого устройства в любой точке мира. В следующей статье я расскажу, как настроить VPN для удаленного доступа к вашему серверу.

―――――――――――――――――――――――――――――――――――――

Читайте также на:

―――――――――――――――――――――――――――――――――――――

Ставьте лайки и если у вас остались вопросы, пишите их в комментариях!