Представь, что твой TrueNAS сервер — это цифровая крепость с данными. Удаленный доступ — это мост к этой крепости. Давай построим его правильно, безопасно и надёжно, чтобы ты мог управлять своим хранилищем из любой точки мира, не подвергая данные риску.
Выбор метода удаленного доступа: сравнительная таблица
Перед настройкой определимся со стратегией. Каждый метод имеет свои сильные стороны и сценарии применения.
| Метод | Сложность | Безопасность | Сценарий использования |
|---|---|---|---|
| SSH (Secure Shell) | Низкая | Высокая | Командное управление, передача файлов (SCP/SFTP) |
| VPN (WireGuard/OpenVPN) | Средняя | Очень высокая | Полноценный доступ к локальной сети как из дома |
| Проброс портов | Средняя | Средняя (зависит от настройки) | Доступ к веб-интерфейсу TrueNAS из интернета |
| Cloud Sync | Низкая | Высокая | Синхронизация данных с облаком для доступа с любых устройств |
Настройка SSH для безопасного удаленного доступа
SSH — это твой швейцарский нож для удаленного управления. Настроим его по принципу "минимальных привилегий".
Шаг 1: Активация и базовая конфигурация
Перейди в Сервисы → SSH в веб-интерфейсе TrueNAS:
- Включи сервис (галочка "Включить")
- Порт: оставь 22 для локальной сети, для интернета смени на нестандартный (например, 2222)
- Разрешить вход по паролю: ОТКЛЮЧИ (используем только ключи)
- Разрешить root-логин: ОТКЛЮЧИ
- Нажми "Сохранить", затем "Запустить"
Шаг 2: Генерация SSH-ключей
На своей рабочей машине (не на сервере!) создай пару ключей:
# Генерация ключа Ed25519 (рекомендуется)
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/truenas_key -C "truenas_remote_$(date +%Y%m%d)"
# Или RSA 4096 для совместимости
ssh-keygen -t rsa -b 4096 -o -a 100 -f ~/.ssh/truenas_rsa_key
Шаг 3: Добавление публичного ключа на TrueNAS
Скопируй содержимое публичного ключа и добавь его в учётную запись пользователя:
# Показать публичный ключ для копирования
cat ~/.ssh/truenas_key.pub
# Скопируй вывод и вставь в TrueNAS:
# 1. Перейди в "Учётные записи → Пользователи"
# 2. Выбери или создай пользователя (не root!)
# 3. В разделе "SSH Public Key" вставь ключ
# 4. Сохрани изменения
Шаг 4: Подключение и настройка клиента
Создай конфигурационный файл SSH для удобного подключения:
# ~/.ssh/config
Host truenas-remote
HostName 192.168.1.100 # IP твоего TrueNAS
Port 22
User твой_пользователь
IdentityFile ~/.ssh/truenas_key
IdentitiesOnly yes
ServerAliveInterval 60
ServerAliveCountMax 3
# Для доступа из интернета через проброс портов:
# HostName твой_домен.ру
# Port 2222
Теперь подключайся одной командой: ssh truenas-remote
Организация VPN-доступа через WireGuard
WireGuard — современное, быстрое и простое VPN-решение. Давай настроим его в TrueNAS SCALE (в CORE потребуется ручная установка).
Шаг 1: Установка и настройка приложения WireGuard
- В TrueNAS SCALE перейди в "Приложения"
- Найди "WireGuard" в каталоге (официальное приложение)
- Установи с настройками по умолчанию
- После установки открой конфигурацию приложения
Шаг 2: Конфигурация сервера WireGuard
Создай конфигурацию сервера в интерфейсе приложения:
# Пример конфигурации сервера (генерируется в UI)
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = серверный_приватный_ключ
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# Клиентские конфигурации будут добавляться сюда
[Peer]
# Клиент 1
PublicKey = клиентский_публичный_ключ
AllowedIPs = 10.10.0.2/32
Шаг 3: Создание клиентских конфигураций
Для каждого устройства создай отдельную конфигурацию в интерфейсе WireGuard:
- Нажми "Добавить пира" (Add Peer)
- Укажи имя (например, "iphone-вася")
- Скопируй сгенерированный публичный ключ
- Назначь IP из подсети (10.10.0.2, 10.10.0.3 и т.д.)
- Сохрани и скачай конфиг файл (.conf)
Безопасный проброс портов для веб-доступа
Если тебе действительно необходим доступ к веб-интерфейсу извне, сделай это максимально безопасно.
Шаг 1: Настройка обратного прокси (рекомендуется)
Используй Nginx Proxy Manager или Traefik в Docker/приложении:
version: '3.8'
services:
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: npm
restart: unless-stopped
ports:
- '80:80' # HTTP
- '81:81' # Admin UI
- '443:443' # HTTPS
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
- proxy-network
networks:
proxy-network:
driver: bridge
Шаг 2: Конфигурация прокси-правила
В Nginx Proxy Manager (порт 81) создай хост:
- Domain Names: nas.твой-домен.ру
- Scheme: http
- Forward Hostname/IP: локальный-ip-truenas
- Forward Port: 80 (или 443 если включен HTTPS на TrueNAS)
- Включи SSL с сертификатом Let's Encrypt
- Добавь Basic Auth или ограничь по IP
Шаг 3: Проброс портов на роутере
Настрой проброс только для необходимых портов:
# Какие порты пробрасывать (пример):
# 443 TCP → IP_NPM:443 # HTTPS для веб-интерфейса
# 51820 UDP → IP_TrueNAS:51820 # WireGuard VPN
# 2222 TCP → IP_TrueNAS:22 # SSH (если не используешь VPN)
# НЕ пробрасывай:
# - Порт 80 (используй 443 с SSL)
# - Порт 22 (используй нестандартный или VPN)
# - Порт 445, 139 (SMB/CIFS) - только через VPN!
Настройка Cloud Sync для удаленного доступа к данным
Иногда VPN — это overkill. Для простого доступа к файлам используй синхронизацию с облаком.
Шаг 1: Создание задачи Cloud Sync
Перейди в Задачи данных → Cloud Sync:
- Нажми "Добавить"
- Выбери провайдера (Google Drive, Dropbox, S3-совместимый)
- Авторизуйся через OAuth или введи ключи доступа
- Настрой путь: локальный датасет → облачная папка
- Режим: "Синхронизировать" или "Копировать"
- Расписание: каждые 6 часов или по требованию
Шаг 2: Шифрование данных перед отправкой
Включи шифрование в настройках задачи Cloud Sync:
# Параметры шифрования в Cloud Sync:
☑ Включить шифрование
Тип шифрования: AES-256-CBC
Пароль шифрования: используй менеджер паролей!
Генерировать ключ: да
# Теперь даже если облако скомпрометируют,
# твои данные останутся зашифрованными
Мониторинг и безопасность удаленного доступа
Настроить доступ — полдела. Нужно следить за его безопасностью.
Настройка fail2ban для защиты от брутфорса
Установи fail2ban через Shell или как приложение:
# Установка в TrueNAS SCALE через Shell
apt update
apt install fail2ban -y
# Базовая конфигурация
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# Редактируем конфиг
nano /etc/fail2ban/jail.local
# Добавляем для SSH (если порт 22 открыт):
[sshd]
enabled = true
port = ssh,2222 # укажи свои порты
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
# Для веб-интерфейса (если открыт):
[truenas-web]
enabled = true
port = http,https
filter = truenas-auth
logpath = /var/log/middlewared.log
maxretry = 5
bantime = 86400
# Запускаем и включаем автозагрузку
systemctl enable --now fail2ban
systemctl status fail2ban
Регулярные проверки безопасности
- Проверка логов:
tail -f /var/log/auth.log | grep -i "fail\|invalid" - Активные сессии SSH:
whoиlast - Обновление системы: регулярно обновляй TrueNAS и приложения
- Аудит правил брандмауэра: проверь, что открыты только необходимые порты
Часто задаваемые вопросы (FAQ)
Какой метод удаленного доступа самый безопасный?
WireGuard VPN + доступ только через него. VPN создаёт зашифрованный туннель, и все сервисы (SMB, веб-интерфейс, SSH) доступны только внутри этого туннеля. Это исключает прямое воздействие из интернета на сервисы TrueNAS.
Можно ли использовать DynDNS для динамического IP?
Да, TrueNAS имеет встроенную поддержку DynDNS. Перейди в Сеть → Динамический DNS, выбери провайдера (No-IP, DuckDNS и др.), введи учётные данные. Сервис будет автоматически обновлять IP при его изменении.
Как ограничить доступ по географическому признаку?
На уровне роутера (если поддерживает) или через Cloudflare (бесплатный план). В Cloudflare настрой Firewall Rules с гео-фильтрацией, разреши только свою страну/регион. Это значительно снизит количество атак.
SSH подключение работает локально, но не из интернета
Проверь цепочку: 1) Проброс порта на роутере (внешний порт → IP TrueNAS:22), 2) Брандмауэр TrueNAS разрешает подключения, 3) Провайдер не блокирует входящие подключения (часто блокируют порт 22). Используй нестандартный порт (2222, 8022).
Как организовать доступ для нескольких пользователей?
Для SSH: создай отдельных пользователей в TrueNAS, каждому добавь свой SSH-ключ. Для VPN: в WireGuard создай отдельного пира для каждого устройства/пользователя. Для веб-доступа: используй Basic Auth в обратном прокси или OAuth/SSO если настроен.
Заключение: золотые правила удаленного доступа
Давай резюмируем основные принципы, которые сделают твой удаленный доступ к TrueNAS безопасным и надежным:
- Принцип минимальных привилегий: Давай доступ только к тому, что действительно необходимо
- Многофакторная аутентификация: Ключи для SSH, сертификаты для VPN, 2FA для веб-интерфейса
- Шифрование везде: TLS для веб, WireGuard для VPN, SSH-ключи вместо паролей
- Мониторинг и логирование: Знай, кто и когда подключается к твоей системе
- Регулярные обновления: Безопасность — процесс, а не состояние
Помни: правильная настройка удаленного доступа — это баланс между удобством и безопасностью. Начни с VPN для полного контроля, добавь Cloud Sync для простого доступа к файлам, и никогда не оставляй сервисы открытыми в интернет без защиты.