← Почта · Все разделы

Безопасность NAS и права

> Исходные требования, сохранённые по темам. Рабочие команды и отличия реализации — в руководстве. Концептуальные примеры ниже не являются готовыми конфигурационными файлами.

7.1 Никогда не использовать


chmod -R 777 /mnt/omv/work/SMTP

или:


chmod 777

Это запрещено.

---

7.2 Сначала проверить NFS

До запуска Docker:


findmnt -T /mnt/omv/work/SMTP -o TARGET,SOURCE,FSTYPE,OPTIONS

Также:


mountpoint /mnt/omv/work/SMTP

Ожидается:


/mnt/omv/work/SMTP is a mountpoint

Для NFS обязательно проверить наличие:


hard

Если присутствует soft, PostgreSQL туда запускать нельзя.

На OMV/NFS-сервере export должен использовать синхронную запись (sync). Это особенно важно для PostgreSQL.

Желательные клиентские ограничения:


hard

_netdev

nosuid

nodev

noexec также можно использовать, если в этой директории не предполагается запускать бинарники.

---

7.3 Stalwart

Официальный контейнер использует:


UID 2000

Поэтому:


data/stalwart-etc

data/blobs

должны принадлежать UID/GID, под которым работает Stalwart.

Например:


chown 2000:2000 data/stalwart-etc

chown 2000:2000 data/blobs



chmod 750 data/stalwart-etc

chmod 750 data/blobs

Если NFS использует root_squash и chown с kotik-serv не проходит, владельца нужно выставлять на самом OMV, по реальному пути NFS export.

---

7.4 PostgreSQL

Не нужно угадывать UID контейнера.

После выбора конкретного образа выполнить:


docker run --rm postgres:17-alpine id postgres

Полученный numeric UID/GID назначить каталогу:


/mnt/omv/work/SMTP/data/postgres

на стороне NAS.

Права:


0700

Только PostgreSQL должен иметь доступ к своему PGDATA.

---

7.5 Secrets

Директория:


/mnt/omv/work/SMTP/secrets

Права:


chmod 700 secrets

chmod 600 secrets/*

Секреты не добавлять непосредственно в docker-compose.yml.

Также:


.env

должен иметь:


0600