Быстро, доступно, безопасно!
Магазин готовых сайтов

Сетевой диск

Настройка сервера на AlmaLinux 8.10 -> Сетевой диск

Сетевой диск обеспечивает централизованное хранение данных с возможностью совместного доступа с разных устройств и платформ, упрощает совместную работу, позволяет настраивать права доступа, автоматизировать резервное копирование, экономить локальное дисковое пространство, а также обеспечивает удалённый доступ через VPN и упрощает администрирование и контроль безопасности данных.


Подключение диска

Подсоединяем новый диск к системе. В примере используем диск на 8 Тб.

Определяем имя устройства (диска): lsblk -o NAME,SIZE,TYPE,MODEL

Создаем таблицу разделов GPT, которая нужна для дисков >2 Тб: parted /dev/sda --script mklabel gpt

Создаём первый раздел на 4 Тб: parted /dev/sda --script mkpart primary 0% 4000GB

Создаём второй раздел на 2 ТБ (чуть больше)parted /dev/sda --script mkpart primary 4000GB 6001GBЭто создаст /dev/sda2 объёмом 2001 ГБ.

Создаём третий раздел на 2 ТБ (чуть меньше): parted /dev/sda --script mkpart primary 6001GB 8002GB

Проверяем, что все три раздела правильно определились: lsblk /dev/sda

Шифруем первый раздел (/dev/sda1): cryptsetup luksFormat /dev/sda1после ввода команды потребуется подтвердить действие и задать пароль: WARNING!
========
This will overwrite data on /dev/sda1 irrevocably.

Are you sure? (Type 'yes' in capital letters): YES
Enter passphrase for /dev/sda1:
Verify passphrase:

Открываем зашифрованный том и задаем ему имя (например, luks1)cryptsetup open /dev/sda1 luks1После этого потребуется ввести пароль, заданный ранее: Enter passphrase for /dev/sda1:

Далее форматируем раздел как ext4: mkfs.ext4 /dev/mapper/luks1

Создаём точку монтирования: mkdir -p /mnt/share1И монтируем раздел: mount /dev/mapper/luks1 /mnt/share1

Важно!

После перезагрузки сервера LUKS-диск будет закрыт, и его нужно будет:

  1. Расшифровать вручную (ввести пароль);
  2. Смонтировать заново.

Присоединяем диск: cryptsetup open /dev/sda1 luks1
mount /dev/mapper/luks1 /mnt/share1

Если разделов несколько, присоединяем их все: cryptsetup open /dev/sda2 luks2
mount /dev/mapper/luks2 /mnt/share2


WireGuard

WireGuard — это современный VPN-протокол и реализация, разработанная с упором на простоту, безопасность и высокую производительность; используется для создания защищённых туннелей между устройствами, обеспечивая шифрование трафика с использованием современных криптографических алгоритмов (Curve25519, ChaCha20, Poly1305 и др.).

На сервере AlmaLinux генерируем приватный и публичный ключи сервера:wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pubСоздаем приватный и публичный ключи для 2-х пользователей: wg genkey | tee user1.key | wg pubkey > user1.pubwg genkey | tee user2.key | wg pubkey > user2.pub

По этой схеме можно создать любое количество пользователей. При этом при редактировании конфигурационного файла придется просто создать дополнительные блоки [Peer] с разными "AllowedIPs" по аналогии с примером.

Полученные данные вставляем в конфигурационный файл WireGuard: vim /etc/wireguard/wg0.conf[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
# Приватный ключ сервера
PrivateKey = 1wsjqN4YlNyEGXgP6wZp8rL1f5xrLySG90Y81opzOvU=

[Peer]
# содержимое user1.pub
PublicKey = YVCJizNvvZSZq8dYny4blcQ3hVXIlKmeEo70TCZ3Rye=
AllowedIPs = 10.8.0.2/32

[Peer]
# содержимое user2.pub
PublicKey = cQ3hVXIlKmeEo70TCZ3RyeYVCJizNvvZSZq8dYny4bl=
AllowedIPs = 10.8.0.3/32

Применяем изменения после внесения изменений в конфигурацию: wg-quick down wg0 && wg-quick up wg0

Когда нам необходимо подключить сетевой диск к iPhone сделать это проще всего с помощью QR-кода. Для создания изображения QR-кода сначала потребуется создать обычный текстовой файл в котором будут указаны данные конфигурации пользователя. Сделаем это для user2 на сервере AlmaLinux 8.10.

Редактируем файл для iPhone: vim /etc/wireguard/user2.conf[Interface]
# содержимое user2.key
PrivateKey = QJmHsNYHOEHQglNEitMGtWfGwo8IDQSJ69StPQISqq6=
Address = 10.8.0.3/32
DNS = 1.1.1.1

[Peer]
# содержание публичного ключа сервера
PublicKey = iJPW6KZBOr7I6BzZ9nKex0nabhhUExtRotAstHFdqAm=
Endpoint = 1.2.3.4:51820
AllowedIPs = 10.8.0.0/24
PersistentKeepalive = 25
Преобразуем конфиг в QR-код: qrencode -o iphone.png < user2.conf

Для того, чтобы iOS могла не только читать данные с сетевого диска, но и записывать на него, необходимо добавить дополнительные настройки.

Включаем поддержку расширенных атрибутов (Extended Attributes) на файловой системе: ea support = yesЗагружаем модули VFS Samba: vfs objects = catia fruit streams_xattr

  • catia — преобразует несовместимые символы в именах файлов между Windows и macOS;
  • fruit — активирует поддержку Apple SMB-расширений (AAPL), включая превью, resource forks, Finder info, улучшенное копирование;
  • streams_xattr — сохраняет альтернативные потоки (например, ресурсы macOS) как расширенные атрибуты в файловой системе Linux.

Активируем AAPL-расширения протокола SMB2/3, используемые macOS/iOS: fruit:aapl = yes


Настройка Samba

Samba — это служба, позволяющая Linux-серверу обмениваться файлами с компьютерами Windows по протоколу SMB.

Устанавливаем Samba: dnf install -y samba

Редактируем конфигурационный файл: vim /etc/samba/smb.conf

Начинаем с секции, в которой задаются общие параметры Samba: [global]
  workgroup = SAMBA
  interfaces = lo wg0 192.168.1.0/24 10.8.0.0/24
  log file = /var/log/samba/log.%m
  max log size = 500
  security = user
  passdb backend = tdbsam
  store dos attributes = yes

После внесения изменений в конфигурацию перезагружаем службу: systemctl restart smb

Создаём Samba-пользователя "smbuser1", не давая ему shell-доступ: useradd -M -s /sbin/nologin smbuser1smbpasswd -a smbuser1

  • -M — не создаёт домашний каталог
  • -s /sbin/nologin — запрещает вход в систему
  • smbpasswd — создаёт пароль только для доступа по Samba

Открываем доступ в firewall: firewall-cmd --permanent --add-service=sambafirewall-cmd --reload

Разрешаем доступ Samba к нужной папке в SELinux: chcon -R -t samba_share_t /mnt/share1


Синхронизация с Windows 7

Для того, чтобы иметь на сетевом диске копию необходимых данных, которые хранятся на компьютере под управлением Windows 7 надо сделать синхронизацию.

Перед синхронизацией проверить нет ли на диске зашифрованных папок и файлов (обычно выделены зеленым цветом): cipher /U /N /S:D:\и если таковые будут найдены (в примере на диске D) - снять соответствующие атрибуты, чтобы не мешали синхронизации.

После этого запустить синхронизацию. Следующий пример запускает зеркальное копирование (синхронизацию) данных с диска "D" на сетевой диск "Z": robocopy D:\ Z:\ /MIR /COPY:DAT /DCOPY:T /Z /W:5 /R:10 /FFT /MT:8 /V /TEE /LOG+:"C:\robocopy.log" /XD "$RECYCLE.BIN" "System Volume Information"

Когда надо скопировать (синхронизировать) одну папку: robocopy Z:\folder1 E:\folder1 /MIR /COPY:DAT /DCOPY:T /Z /W:5 /R:3 /FFT /MT:8 /V /LOG+:"C:\robocopy.log"


Метки: сетевой диск

Опрос

В каком году был сделан ваш сайт? (голосов: 24)

  • до 2015 года - 23 (96%)
  • в 2015 - 0 (0%)
  • в 2016 - 0 (0%)
  • в 2017 - 0 (0%)
  • в 2018 - 1 (4%)
  • в 2019 - 0 (0%)