[freebsd] Завернуть запросы по номеру порта в туннел.

Eugene Grosbein eugen at grosbein.net
Thu May 7 09:28:19 EEST 2020


07.05.2020 13:16, Eugene Grosbein пишет:

>> Получается, что ipfw fwd нельзя использовать для исходящего трафика, а только для входящего?
> 
> Можно, нужно лишь отключить one_pass. Но транслировать трафик на tap0 нет никакой необходимости.
> Транслировать имеет смысл только на T, чтобы запросы, приходящие из туннеля, уходили на S с подмененным адресом источника.
> Ответные пакеты после обратной трансляции будут уходить в туннель просто по роутингу.

Хотя, в этом случае скорее всего будет проблема с правильным выбором source IP для исходящих запросов
и NAT, действительно, мог бы решить эту проблему. Правила нужны такие:

ipfw nat 1 config if tap0
ipfw add 60    nat 1 ip from any to any in recv tap0
ipfw add 50000 nat 1 tcp from any to $serverip $serverport out
ipfw add 50010 fwd $tap0gw ip from $tap0ip to any out xmit $realif

Тут $realif - имя физического (реального) интерфейса, в который показывает default route,
так как до срабатывания ipfw fwd исходящие пакеты назначены в этот интерфейс и никакие правила,
кроме fwd, этого не меняют, поэтому матчить их нужно именно так.

$serverip и $serverport тут соответственно IP-адрес и порт назначения, трафик до которых
нужно форвардить в туннель.

$tap0ip это собственный IP-адрес ноутбука на туннеле, а $tap0gw это адрес сервера T, удалённой стороны туннеля.

Не забыть включить gateway_enable="YES" на ноутбуке и отключить one_pass.





More information about the freebsd mailing list