Назад | Перейти на главную страницу

FreeBSD nat через PF: как перейти со случайных портов UDP на инкрементные?

Я тестирую код проникновения NAT, и мне нужен симметричный NAT. Я настроил FreeBSD с PF, очень простое правило:

# rl0 in WAN on DHCP, sk0 is LAN with computers behind this NAT.
nat on rl0 from sk0:network to any -> (rl0)

Это отлично работает, NAT симметричен для пакетов UDP, но, к сожалению, номер исходящего порта является случайным для каждого пакета в другое место назначения. Это способ настроить PF так, чтобы порты были не случайными, а как бы инкрементными? Например, UDP-пакет на хост A получит номер исходящего UDP-порта 50000, UDP-пакет на хост B получит номер порта 50001, на хост C 50002 и т. Д.?

В static-port вариант должен делать то, что вы хотите.

В правилах nat параметр static-port предотвращает изменение pf (4) порта источника для пакетов TCP и UDP.

Таким образом, давая вам правило.

nat on rl0 from sk0:network to any -> (rl0) static-port

Мне любопытно, зачем вам это нужно. Рандомизация портов не такая уж плохая вещь и может в некоторой степени защитить уязвимые протоколы. Как, например, проблемы Каминского DNS в прошлом году.

Просто предположение, но вы можете попробовать

# sysctl net.inet.ip.portrange.randomized=0