Подробный гайд: Настройка NFS/NAS в ALT Server V
Примечание:
В терминологии Linux NAS (Network Attached Storage) — это архитектурная роль сервера, а не отдельный пакет. В ALT Server V она реализуется через связку NFS (для Linux/Unix), Samba (для Windows/macOS) и управление дисковым массивом. В данном гайде рассматривается настройка NFS-сервера как основы NAS-решения.
Система:
ALT Server V (база p10/p11, systemd, apt-get + RPM, firewalld по умолчанию)
Протокол:
NFSv4 (по умолчанию), NFSv3 (для обратной совместимости)
Требования:
root или sudo, статический IP, подготовленный диск/раздел, доверенная сеть
1. Установка необходимых пакетов
ALT Linux использует apt-get несмотря на RPM-базу.
Установите пакеты NFS и зависимости:
sudo apt-get update
sudo apt-get install nfs-utils rpcbind
nfs-utils— содержитnfs-server,mountd,exportfs,showmountrpcbind— необходим для NFSv3 и работы RPC-сервисов
Проверьте установку:
rpm -q nfs-utils rpcbind
2. Подготовка хранилища (NAS-роль)
Создайте точку экспорта и примонтируйте физическое хранилище:
sudo mkdir -p /srv/nfs/share
sudo chown -R nobody:nobody /srv/nfs/share
sudo chmod 777 /srv/nfs/share
Если используете отдельный диск/раздел:
sudo mkfs.ext4 /dev/sdb1
sudo mount /dev/sdb1 /srv/nfs/share
Добавьте в /etc/fstab для автозагрузки:
/dev/sdb1 /srv/nfs/share ext4 defaults,nofail 0 2
Рекомендация:
Для production используйте LVM или mdadm RAID. В ALT Server V инструменты lvm2 и mdadm устанавливаются отдельно.
3. Настройка экспорта /etc/exports
Отредактируйте файл экспорта:
sudo nano /etc/exports
Пример конфигурации:
/srv/nfs/share 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)
/srv/nfs/share 10.0.0.5(ro,sync,sec=sys)
Разбор опций:
| Опция | Значение |
|---|---|
rw / ro |
Чтение-запись / только чтение |
sync |
Гарантирует запись на диск до ответа клиенту (безопасно) |
async |
Выше производительность, риск потери данных при обрыве |
no_subtree_check |
Отключает проверку поддеревьев (ускоряет, рекомендуется) |
no_root_squash |
Клиентский root сохраняет права root на сервере (только для доверенных сетей) |
all_squash / anonuid=1000,anongid=1000 |
Все клиенты мапятся на указанного пользователя |
sec=sys / sec=krb5 |
Метод аутентификации (sys = без шифрования, krb5 = Kerberos) |
Примените изменения:
sudo exportfs -rav
-r— перечитать/etc/exports-a— экспортировать/размонтировать все-v— подробный вывод
Проверьте активные экспорты:
exportfs -v
4. Запуск и включение служб
sudo systemctl enable --now rpcbind nfs-server nfs-mountd
sudo systemctl status nfs-server
В ALT Server V nfs-mountd и nfs-idmapd запускаются автоматически как зависимости nfs-server. Убедитесь, что все статусы active (exited) или active (running).
Проверка видимости экспортов локально:
showmount -e localhost
5. Настройка firewall (firewalld)
ALT Server V по умолчанию использует firewalld.
Откройте необходимые сервисы:
sudo firewall-cmd --permanent --add-service=nfs
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=mountd
sudo firewall-cmd --reload
Проверка:
firewall-cmd --list-services
Для повышенной безопасности ограничьте доступ по IP-адресам в зонах firewalld или используйте iptables/nftables правила, если firewalld не подходит.
6. Настройка клиента
На клиентской машине (Linux):
sudo apt-get install nfs-utils
showmount -e <IP_СЕРВЕРА>
Ручное монтирование:
sudo mkdir -p /mnt/nfs
sudo mount -t nfs <IP_СЕРВЕРА>:/srv/nfs/share /mnt/nfs
Автозагрузка через /etc/fstab:
<IP_СЕРВЕРА>:/srv/nfs/share /mnt/nfs nfs defaults,nofail,x-systemd.automount 0 0
x-systemd.automount позволяет монтировать NFS только при первом обращении, ускоряя загрузку.
Для принудительного использования NFSv3:
<IP_СЕРВЕРА>:/srv/nfs/share /mnt/nfs nfs nfsvers=3,defaults 0 0
7. Безопасность и оптимизация
7.1. SELinux
В ALT Server V SELinux отключен по умолчанию.
Если включён:
sudo setsebool -P nfs_export_all_rw on
sudo setsebool -P nfsd_anon_write on
7.2. Kerberos (шифрование)
Для sec=krb5 настройте интеграцию с Active Directory/Kerberos:
- Установите
krb5-workstation,sssd - Получите keytab:
kadmin -p admin -q "addprinc -randkey nfs/server.domain" - Настройте
/etc/exports:.../srv/nfs/share *(rw,sec=krb5)
7.3. Производительность
- Увеличьте размер буферов на клиенте:
rsize=1048576,wsize=1048576 - Используйте TCP (по умолчанию в NFSv4)
- В
/etc/nfs.confможно настроитьnfsd.threads=16(для многопоточности)
7.4. Ограничение доступа
- Никогда не используйте
*в production - Избегайте
no_root_squashбез строгой фильтрации по IP - Разделите экспорт на разные директории с разными правами
8. Диагностика и устранение неполадок
| Проблема | Решение |
|---|---|
mount: access denied |
Проверьте /etc/exports, firewall-cmd --list-services, rpcinfo -p |
Stale file handle |
Перемонтируйте, проверьте, не изменился ли inode на сервере |
Permission denied |
Проверьте права chmod/chown, SELinux, root_squash |
| Служба не стартует | journalctl -u nfs-server -e, проверьте синтаксис /etc/exports |
| Низкая скорость | Увеличьте rsize/wsize, отключите sync (с осторожностью), проверьте сеть |
Полезные команды:
sudo exportfs -v
sudo rpcinfo -p
sudo systemctl status nfs-server rpcbind nfs-mountd
journalctl -u nfs-server -f
showmount -e <IP>
9. Особенности ALT Server V
| Аспект | Примечание |
|---|---|
| Пакетный менеджер | apt-get (RPM-бэкенд, репозитории p10/p11) |
| Система инициализации | systemd (все службы управляются через systemctl) |
| Firewall | firewalld по умолчанию, поддержка зон |
| SELinux | Отключен в стандартной поставке серверного профиля |
| Обновления | sudo apt-get update && sudo apt-get dist-upgrade |
Итог
- Установите
nfs-utilsиrpcbind - Подготовьте хранилище и точку монтирования
- Настройте
/etc/exportsс учётом безопасности - Запустите и включите
rpcbind,nfs-server - Откройте порты в
firewalld - Протестируйте с клиента, добавьте в
fstab - При необходимости настройте Kerberos, LVM, Samba (для Windows)
Для полноценного NAS-решения добавьте samba (sudo apt-get install samba samba-client), настройте /etc/samba/smb.conf и объедините с NFS через единое хранилище /srv/nfs.