Перенаправление с помощью флагов natd на FreeBSD

Перенаправление с помощью флагов natd на FreeBSD

Я пытаюсь настроить базовый сервер NAT. Я хочу, чтобы весь трафик, поступающий из внешнего мира на сервер NAT, перенаправлялся на другую машину, где у меня запущена служба lipcap для разбора этого трафика.

Я попробовал -redirect_port и -redirect_address в разделе natd_flags в rc.conf, но ничего не работает... есть мысли?

решение1

natdПотребности пользовательского пространства ipfwвключены. IPFW перехватывает пакеты и перенаправляет их на natdтранслирующие адреса. Но в настоящее время вы можете использовать kernel nat, встроенный в ipfw.

Давайте включим движок IPFW

# /etc/rc.conf
. . . . .
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/rc.ipfw"
. . . . .

И давайте настроим перенаправление ядра:

# /etc/rc.ipfw
. . . . .
oip="1.2.3.4"   # Outer IP looking to the internet
tip="10.0.0.100 # Target host
ipfw nat 1 config redirect_addr ${tip} ${oip}
. . . . . 

Вот и все.

решение2

В брандмауэре PF встроены функции NAT и перенаправления. Добавьте это в /etc/rc.conf:

gateway_enable="YES"
pf_enable="YES"

И настройте брандмауэр. Добавьте эти строки в /etc/pf.conf:

ext_if=em0
ext_addr = N.N.N.N  (your external IP)

int_if=em1
int_net=10.0.0.0/8
int_addr=10.0.0.1
libcap_host=10.0.0.2

nat on $ext_if from $int_net to any -> $ext_addr
rdr on $ext_if from any to $ext_addr -> $libcap_host

Правило NAT сделает то, что вы ожидаете, отправит весь трафик, сгенерированный в вашей интернет-сети, в мир через внешний IP шлюза. Правило rdr направит все входящие соединения на ваш целевой хост.

Связанный контент