Передача IP-адреса с помощью pf

Я пытаюсь передать внешний IP-адрес другому внешнему IP-адресу с pf. Эквивалентная команда iptables была бы iptables -t nat -A OUTPUT -d [ipaddress1] -j DNAT --to-destination [ipaddress2].

Я попробовал различные формы туземных и rdr в моем pf.conf, примеры которого: ($int_if внутренний интерфейс, $ext_if внешний интерфейс, $out_ad ipaddress1 (адресуйте к перенаправлению), и $res_ad ipaddress2 (адрес для перенаправления к)

nat on $int_if from 127.0.0.1 to $out_ad -> $res_ad
rdr pass on $ext_if proto tcp from $out_ad to $res_ad -> 127.0.0.1
rdr pass on $int_if proto tcp from 127.0.0.1 to $out_ad -> $res_ad
rdr pass log proto tcp from any to $out_ad -> $res_ad
nat from $out_ad to $res_ad -> 127.0.0.1
nat on $ext_if from $out_ad to $res_ad -> $ext_if
rdr on $int_if proto tcp from any to $out_ad -> $res_ad
rdr pass quick on $ext_if proto tcp from any to $out_ad -> $res_ad

Ни один из них, кажется, не добивается цели. Я установил sysctl net.inet.ip.forwarding=1 также. Любая справка значительно ценилась бы.Спасибо

1
задан 26 January 2015 в 15:57
1 ответ
sysctl net.inet.ip.forwarding=1

Это просто включит маршрутизацию на вашем компьютере . Это может сработать, если вы создадите, чтобы разрешить любой IP-адрес назначения на внешнем интерфейсе (по крайней мере, теоретически) (10.20.30.40 - ваш конечный пункт назначения в этом примере)

pass in inet proto tcp from any to 10.20.30.40

(просто идея)

Но ваш Правила rdr не будут работать, потому что они находятся в одном и том же интерфейсе, который (согласно некоторым сообщениям на форуме) не разрешен или просто не работает

С другой стороны, правило общедоступного NAT должно работать, но вы потеряет исходный IP-адрес в конечном пункте назначения. (предназначено?)

nat on $ext_if inet from any to 10.20.30.40 -> ($ext_if:0) port 1024:65535
pass on $ext_if inet from any to 10.20.30.40 keep state 

(или состояние synproxy)

для целей отладки попробуйте включить ведение журнала правил (путем добавления журнала к правилу передачи, включения pflog и следующей команды)

/etc/rc.conf
...
pflog_enable="YES"
pflog_logfile="/var/log/pflog
...


# tcpdump -i pflog0 -n -e -ttt

Ох, и, пожалуйста, предоставьте какая-то простая сетевая структура;)

2
ответ дан 3 December 2019 в 21:00

Теги

Похожие вопросы