[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