Если ты развернул на TrueNAS сервер Nextcloud, медиа-центр или любой другой сетевой сервис, но не можешь получить к нему доступ извне — эта статья для тебя. Давай разберем, как правильно открыть порты в TrueNAS, настроить фаервол и обеспечить безопасность твоих данных. Представь, что это практическое занятие по сетевой безопасности для junior-админа.
Подготовка: что нужно знать перед открытием портов
Перед тем как открывать порты, убедись в следующем:
- Твой роутер поддерживает проброс портов (Port Forwarding)
- У тебя есть статический IP-адрес или настроен DynDNS
- Ты знаешь внутренний IP-адрес своего сервера TrueNAS (например, 192.168.1.100)
- Сервис, для которого открываешь порт, уже установлен и работает локально
Метод 1: Проброс портов через роутер (Port Forwarding)
Это самый распространенный способ доступа к сервисам из интернета. Давай разберем на примере веб-сервера на порту 8080.
Шаг 1: Определи внутренний IP TrueNAS
Зайди в веб-интерфейс TrueNAS → Сеть → Интерфейсы. Запиши IP-адрес:
# Альтернативно, через консоль:
ifconfig | grep inet
# Или для новой версии:
ip addr show
Шаг 2: Настрой проброс в роутере
Каждый роутер имеет свой интерфейс. Общий принцип:
- Зайди в настройки роутера (обычно 192.168.1.1 или 192.168.0.1)
- Найди раздел "Port Forwarding", "Виртуальные серверы" или "Проброс портов"
- Создай новое правило с параметрами:
| Параметр | Значение (пример) | Описание |
|---|---|---|
| Внешний порт | 8080 | Порт, который будет доступен из интернета |
| Внутренний порт | 8080 | Порт на сервере TrueNAS |
| Внутренний IP | 192.168.1.100 | IP-адрес твоего TrueNAS |
| Протокол | TCP (или TCP/UDP) | Зависит от сервиса |
Метод 2: Настройка фаервола TrueNAS (для локальной сети)
Если нужно открыть порты только в локальной сети или настроить межсерверное взаимодействие:
Для TrueNAS CORE (FreeBSD)
Используй IPFW — встроенный фаервол FreeBSD:
# 1. Включи IPFW если отключен
sysrc firewall_enable="YES"
sysrc firewall_type="open" # или "client", "simple"
# 2. Создай файл правил /etc/ipfw.rules
cat > /etc/ipfw.rules << 'EOF'
# Разрешить все исходящие
add 01000 allow ip from any to any out
# Разрешить входящие на порт 9000 (например, для Portainer)
add 02000 allow tcp from any to any 9000 in
# Разрешить входящие на порт 445 (SMB)
add 03000 allow tcp from any to any 445 in
# Запретить все остальное
add 65534 deny ip from any to any in
EOF
# 3. Примени правила
service ipfw restart
Для TrueNAS SCALE (Linux)
В SCALE используется nftables. Настрой через консоль или веб-интерфейс:
# 1. Проверь текущие правила
nft list ruleset
# 2. Добавь правило для открытия порта (например, 8080)
nft add rule inet filter input tcp dport 8080 accept
# 3. Сохрани правила для автозагрузки
nft list ruleset > /etc/nftables.conf
# 4. Включи и запусти службу
systemctl enable nftables
systemctl restart nftables
Популярные сервисы и их порты
Вот таблица портов для распространенных сервисов в TrueNAS:
| Сервис | Порт | Протокол | Примечание |
|---|---|---|---|
| Веб-интерфейс | 80, 443 | TCP | Уже открыт по умолчанию |
| SMB/CIFS | 445, 139 | TCP | Для файловых шаров Windows |
| NFS | 2049 | TCP/UDP | Для Linux-систем |
| SSH | 22 | TCP | Меняй на нестандартный для безопасности |
| Nextcloud | 8080, 443 | TCP | Зависит от контейнера |
| Plex/Jellyfin | 32400, 8096 | TCP | Медиасерверы |
Проверка открытых портов
После настройки убедись, что порты действительно открыты:
# Проверь локально на сервере
netstat -tuln | grep :8080
# Или с помощью ss
ss -tuln | grep 8080
# Проверь извне (с другого компьютера в сети)
nmap -p 8080 192.168.1.100
# Онлайн-проверка (если открыл для интернета)
# Используй сайты типа canyouseeme.org
Безопасность: лучшие практики
- Меняй стандартные порты: SSH с 22 на 2222, веб-интерфейс с 80 на 8080
- Используй VPN: Вместо открытия портов настрой WireGuard или OpenVPN
- Ограничивай доступ по IP: Разрешай подключение только с доверенных адресов
- Регулярно обновляй: И TrueNAS, и все установленные приложения
- Настрой fail2ban: Для автоматической блокировки атак brute-force
Частые проблемы и решения
Проблема: Порт открыт, но сервис недоступен
Решение:
- Проверь, запущен ли сервис:
service servicename status - Убедись, что сервис слушает на правильном интерфейсе:
0.0.0.0а не127.0.0.1 - Проверь логи сервиса на ошибки
Проблема: Роутер не поддерживает проброс портов
Решение:
- Используй Cloudflare Tunnel (бесплатно)
- Настрой ngrok или аналогичный сервис
- Рассмотри возможность смены роутера или прошивки (DD-WRT/OpenWRT)
Проблема: Провайдер блокирует входящие подключения
Решение:
- Используй только стандартные порты (80, 443)
- Обратись к провайдеру за "белым" IP-адресом
- Перенеси сервис на VPS с обратным прокси
FAQ: Ответы на частые вопросы
Как открыть порты для Docker-контейнеров в TrueNAS SCALE?
При развертывании приложения через TrueNAS Apps укажи порты в настройках контейнера. Или используй команду:
docker run -p 8080:80 -d nginx
Нужно ли открывать порты для доступа из локальной сети?
Обычно нет — сервисы доступны по внутреннему IP. Но если используешь фаервол TrueNAS, добавь правило для локальной подсети:
nft add rule inet filter input ip saddr 192.168.1.0/24 tcp dport 8080 accept
Как открыть диапазон портов?
В роутере укажи диапазон (например, 8000-8010). В фаерволе TrueNAS:
# Для nftables
nft add rule inet filter input tcp dport 8000-8010 accept
# Для IPFW
add 1000 allow tcp from any to any 8000-8010 in
1. Использовать только порты 80/443 для всех сервисов
2. Настроить SSL/TLS централизованно
3. Добавить аутентификацию и защиту от DDoS
4. Упростить конфигурацию при множестве сервисов
Заключение
Открытие портов в TrueNAS — важный навык для любого администратора. Помни главное правило: открывай только то, что необходимо, и всегда защищай открытые сервисы. Начни с проброса портов через роутер для одного сервиса, проверь доступность, и только потом переходи к более сложным конфигурациям.
Для глубокого погружения рекомендую:
- Официальная документация TrueNAS по сети
- Руководства по iptables/nftables для тонкой настройки
- Курсы по сетевой безопасности
Статья актуальна для TrueNAS CORE 13.x и TrueNAS SCALE 22.x. Конфигурации могут меняться в новых версиях.