Задача: из Интернета попасть на видеорегистратор внутренней сети.
Решение: добавить правило redirect_port описанию конфигурации NAT. Прежнее правило никак не заводилось, получилось так:
Рабочий вариант:
ipfw nat 1 config if tun0 deny_in same_ports unreg_only reset redirect_port tcp 192.168.37.80:8000 8000
Не рабочий вариант:
ipfw nat 2 config if tun0 log same_ports reset redirect_port tcp 192.168.37.80:8000 8000
Пример рабочих правил IPFW:
#!/bin/sh
# Очищаем список правил IPFW
ipfw -q -f flush
# Команда добавления правила, -q — режим без вывода сообщений
cmd="ipfw -q add"
# Сетевые карты заносим в переменные
net="em0" # сетевая карта интернета
lan="em1" # сетевая карта локальной сети
# Разрешить любой трафик внутри loopback интерфейса
$cmd 00010 allow all from any to any via lo0
# Запретить любой трафик извне до локальных адресов
$cmd 00011 deny ip from any to 127.0.0.0/8
$cmd 00012 deny ip from 127.0.0.0/8 to any
# Разрешить любые пакеты внутри локальной сети
$cmd 00050 allow ip from any to any via $lan
# Разрешить доступ к SSH серверу по 22 порту
$cmd 00510 allow tcp from any to me 22 in via $net
# Разрешить доступ к веб-серверу по 80 и 443 портам (HTTP/HTTPS)
$cmd 00520 allow tcp from any to me 80,443 in via $net
# Настройка маршрутизации IPFW + NAT
# Создаем экземпляр NAT с номером 1 и перенаправляем TCP 5530 порт на компьютер локальной сети с адресом 192.168.0.5
ipfw -q nat 1 config if $net same_ports unreg_only deny_in reset redirect_port tcp 192.168.0.5:5530 5530
# Разрешить проходить TCP и UDP пакетам, ping через NAT на сетевую карту интернета
$cmd nat 1 tcp from any to any via ${net}
$cmd nat 1 udp from any to any via ${net}
$cmd nat 1 icmp from any to any via ${net}
Спасибо за подсказку: https://notby.net/nastroyka-ipfw-nat-v-freebsd
Довольны?
[Оценок: 0 средняя: 0]