Подробный гайд: Домашний NAS на ALT Linux

Пошаговое руководство по настройке домашнего NAS-хранилища на ALT Linux: RAID, Samba, NFS, безопасность и подключение клиентов.

2026.05.18                  


Подробный гайд: Домашний NAS на ALT LinuxПодробный гайд: Домашний NAS на ALT Linux

Актуально для:

ALT Linux 10 (платформа «п10») и выше. Подходит для редакций Server, Workstation и Regular.


Предварительные требования

Компонент Рекомендация
Оборудование ПК/сервер с 2+ дисками (для RAID), 2+ ГБ ОЗУ, гигабитная сеть
ОС ALT Linux 10 Server (предпочтительно)
Доступ Права суперпользователя (root)
Сеть Статический IP-адрес для сервера

Шаг 1: Подготовка системы

1.1. Обновление пакетов

sudo apt-get update
sudo apt-get upgrade -y

1.2. Настройка статического IP-адреса

Настройки сети в ALT Linux хранятся в /etc/net/ifaces/<интерфейс>/:

# Пример для интерфейса eth0
cd /etc/net/ifaces/eth0/
echo "IPADDR=192.168.1.100" > options
echo "PREFIX=24" >> options
echo "GATEWAY=192.168.1.1" >> options
echo "DNS1=8.8.8.8" >> options
systemctl restart network

Шаг 2: Настройка дисковой подсистемы (RAID)

2.1. Установка инструментов для RAID

sudo apt-get install mdadm

2.2. Создание RAID-массива (пример для RAID1 — зеркалирование)

# Проверка дисков
lsblk

# Создание массива (замените /dev/sdb и /dev/sdc на ваши диски)
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc

# Сохранение конфигурации
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm.conf

# Создание файловой системы
sudo mkfs.ext4 /dev/md0

# Монтирование
sudo mkdir -p /srv/nas
sudo mount /dev/md0 /srv/nas

# Добавление в /etc/fstab для автозагрузки
echo "/dev/md0 /srv/nas ext4 defaults,nofail 0 2" | sudo tee -a /etc/fstab

Шаг 3: Установка протоколов доступа

Вариант А: Samba (SMB/CIFS) — для Windows-клиентов

3.1. Установка пакетов

sudo apt-get install samba samba-client

3.2. Резервное копирование конфигурации

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

3.3. Настройка /etc/samba/smb.conf

Откройте файл:

sudo nano /etc/samba/smb.conf

Секция [global] (базовые параметры):

[global]
    workgroup = WORKGROUP
    server string = ALT NAS Server
    security = user
    map to guest = Bad User
    unix charset = UTF-8
    dos charset = CP866
    log file = /var/log/samba/log.%m
    max log size = 50

Пример общей папки:

[NAS_Share]
    comment = Основное хранилище
    path = /srv/nas/share
    browseable = yes
    writable = yes
    guest ok = no
    valid users = @nasusers
    create mask = 0644
    directory mask = 0755

3.4. Создание директории и настройка прав

# Создание папки
sudo mkdir -p /srv/nas/share

# Создание группы пользователей
sudo groupadd nasusers

# Добавление пользователя в группу
sudo usermod -aG nasusers username

# Назначение прав
sudo chown -R root:nasusers /srv/nas/share
sudo chmod -R 0770 /srv/nas/share

3.5. Добавление пользователя в базу Samba

# Пользователь должен существовать в системе!
sudo smbpasswd -a username
# Введите пароль дважды

3.6. Настройка брандмауэра

# Для firewalld (стандарт в ALT Linux)
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload

3.7. Запуск служб

sudo systemctl enable --now smb
sudo systemctl enable --now nmb

3.8. Проверка конфигурации

testparm                    # Проверка синтаксиса
sudo systemctl restart smb nmb
smbclient -L localhost -U username  # Проверка доступных ресурсов

Вариант Б: NFS — для Linux/macOS-клиентов

3.1. Установка сервера NFS

sudo apt-get install nfs-kernel-server nfs-common

3.2. Настройка экспорта в /etc/exports

# Пример: доступ для всей подсети 192.168.1.0/24
/srv/nas/share  192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
Параметр Описание
rw Чтение и запись
sync Синхронная запись (надёжнее)
no_root_squash Разрешить root-доступ (осторожно!)
no_subtree_check Ускорить проверку доступа

3.3. Применение настроек

sudo exportfs -a
sudo systemctl enable --now nfs-server

3.4. Настройка брандмауэра для NFS

sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --reload

Шаг 4: Безопасность и мониторинг

4.1. Настройка аудита доступа (опционально)

sudo apt-get install auditd
sudo auditctl -w /srv/nas/share -p rwxa -k nas_access

4.2. Регулярное резервное копирование

sudo apt-get install rsync
# Добавить в crontab (crontab -e):
0 2 * * * rsync -av --delete /srv/nas/share /backup/nas_backup

4.3. Мониторинг дисков (SMART)

sudo apt-get install smartmontools
sudo smartctl -a /dev/sdb

Шаг 5: Подключение клиентов

Из Windows

  1. Откройте Проводник → \\192.168.1.100\NAS_Share
  2. Введите логин/пароль пользователя, добавленного через smbpasswd
  3. Для постоянного подключения: «Подключить сетевой диск» → выберите букву

Из Linux (SMB)

# Временное подключение
smbclient //192.168.1.100/NAS_Share -U username

# Постоянное монтирование через /etc/fstab
sudo nano /etc/samba/credentials
# Содержимое:
username=ваш_пользователь
password=ваш_пароль
sudo chmod 600 /etc/samba/credentials

# Добавьте в /etc/fstab:
//192.168.1.100/NAS_Share /mnt/nas cifs credentials=/etc/samba/credentials,iocharset=utf8,uid=1000,gid=1000 0 0
sudo mkdir -p /mnt/nas
sudo mount -a

Из Linux/macOS (NFS)

sudo mkdir -p /mnt/nas
sudo mount -t nfs 192.168.1.100:/srv/nas/share /mnt/nas

# Для автозагрузки в /etc/fstab:
192.168.1.100:/srv/nas/share /mnt/nas nfs defaults,_netdev 0 0

Устранение неполадок

Проблема Решение
Не видны русские имена файлов Убедитесь, что в [global] указаны unix charset = UTF-8 и dos charset = CP866
Ошибка «Permission denied» Проверьте права на папку (ls -l /srv/nas/) и членство пользователя в группе
Сервер не виден в сети Проверьте firewall-cmd --list-all, убедитесь, что службы smb и nmb активны
Медленная передача файлов Проверьте MTU сети, отключите антивирус на клиенте, добавьте socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 в smb.conf
Проблемы с обнаружением в Windows 10/11 Добавьте в [global]: client min protocol = NT1 и client max protocol = SMB3

Полезные команды для диагностики:

systemctl status smb nmb nfs-server      # Проверка служб
tail -f /var/log/samba/log.*             # Логи Samba
exportfs -v                              # Проверка экспортов NFS
smbclient -L //192.168.1.100 -U username # Тест подключения
showmount -e 192.168.1.100              # Проверка NFS-экспортов

Советы

  • Для упрощения управления рассмотрите установку веб-интерфейса Cockpit:
  sudo apt-get install cockpit

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

  • Используйте LVM для гибкого управления дисковым пространством при расширении хранилища.
  • Настройте UPS и скрипт автоматического выключения при отключении питания.