Перенаправление локального трафика
-
@konstanti
Если бы все так было просто) Я это уже пробовал. Во первых выбор LAN интерфейса вообще ничего не дает. Пакеты на 192.168.200.200 просто уходят с интернет интерфейса. Если же мы там укажем вместо LAN интернет интерфейс, то мы не назначение меняем, а адрес отправителя. На языке iptables мы не DNAT делаем, а SNAT.
В tcpdump это выглядит вот так14:10:28.019980 IP 4.2.2.2 > 192.168.200.200: ICMP echo request, id 35330, seq 0, length 64
вместо 1.2.3.4 я взял 4.2.2.2 для примера.
-
@a7lan
Секунду
Еще раз по пунктам- Адрес 192.168.200.200 - он живой ????
- На каком интерфейсе должна произойти подмена назначения ?
DNAT - в iptables используется для проброса портов ( насколько я понимаю ) с заменой адреса получателя
-
@konstanti Нет. Я просто его придумал. Но пусть даже будет живой. Думаю это не суть важно. Мне надо просто исходящий в интернет адрес назначения подменять. Получается на интерфейсе интернета. С транзитным трафиком это работает. Я пингую тот же 192.168.200.200 с компа в сети, и он перенаправляется на 4.2.2.2. А вот если тоже самое делать на самом шлюзе, то имеющееся правило не работает. То что я добавил видимо аналог PREROUTING в iptables. Куда естественно трафик локальных процессов не попадает.
-
@a7lan
Теперь все стало понятно
Боюсь , что такой "финт ушами" с базовым функционалом PF , не провернуть ( мб и есть такое решение , но мне оно не известно )
У Freebsd есть такая подсистема , называется Netgraph . Вот с ее помощью такое сделать можноТак , на вскидку
Нужны будут модули
ng_ether
ng_bpf
ng_patch
это для модификации пакетов в обоих направлениях
Те идея такая - подключаемся в разрыв между ядром и сетевым адаптером (ng_ether) , отлавливаем все пакеты с назначением , к примеру 192.168.200.200 ( ng_bpf) и меняем поле назначение ip пакета (ng_patch) ( к примеру на 2.2.2.2)
В обратном направлении - отлавливаем все пакеты от 2.2.2.2 и меняем назначение на 192.168.200.200- нужно будет не забыть пересчитать контрольные суммы ip пакетов
все это работает на уровне ядра ( те очень быстро )
трудность в том , что ng_ether и ng_bpf уже есть в ядре pf
а ng_patch нет . Те нужно качать версию Freebsd , соответствующую Вашей версии PF и компилировать этот модуль и вручную переносить его на PF -
@konstanti Понял. Жаль. Спасибо. Будем думать что делать.
-
@a7lan
если что , пишите мне в личку , думаю , что с моим вариантом смогу помочь ( если не найдете другого решения )Iptables в этом отношении более гибкая подсистема , чем PF
-
Дело в том, что при обращении к ресурсам ВНУТРИ сети трафик НЕ ИДЕТ через пф.
-
@werter
То есть мы не может даже блокировать исходящий трафик к локальным ресурсам? -
@a7lan said in Перенаправление локального трафика:
То есть мы не может даже блокировать исходящий трафик к локальным ресурсам?
Если работа сети в одном L2 сегменте, то ни pfSense, ни любой другой роутер не управляют этим трафиком. Если вы даже отключите pfSense вообще, хосты внутри сети продолжат общаться.
pfSense рулил бы трафиком, если бы сеть была поделена на подсети, а pfSense был бы между этими сетями маршрутизатором. -
@pigbrother Я не про обмен пакетами между устройствами в одной сети. Вопрос был Pfsens не умеет свой локальный трафик исходящий обрабатывать? блокировать например. Просто из комментария @werter звучит так, что исходящих трафик локальных процессов не идет через pf.
Говоря терминалогией iptables, тут нет iptables -t filter -A OUTPUT ... -j DROP ? -
@a7lan
Вопрос был Pfsens не умеет свой локальный трафик исходящий обрабатывать? - можетГоворя терминалогией iptables, тут нет iptables -t filter -A OUTPUT ... -j DROP ? - есть
-
@konstanti Жаль значит нет ната для локального трафика
-
@a7lan
я Вам об этом уже писал ранее . Блокировать исходящие пакеты PF умеет . То что вы хотите - нет . Решение существует . Но не из коробки . -
@a7lan
Это может Proxmox VE со своим 3-х уровневым Firewall-ом ) -
@werter В проксмокс тот же iptables) только я не совсем понял причем тут proxmox.
-
@a7lan
Вы хотите решить задачу?
Из коробки пф ТАК не умеет (Konstanti написал, что может помочь).
Но так умеет Прокс. И если вы его пользуете, то можно ограничиться Проксом.Зы. Возможно, что в Проксе уже nftables )
Зы2. Вариант покупки L3-свитча тоже вам подойдет. -
@werter
Просто почему именно гипервизор? Я этого не совсем понял. Я понял что pf не может. Но почему не просто какой нибудь Linux дистр. Пытаюсь причинно-следственную связь найти. =)Сейчас у меня в планах либо перевесить на Ubuntu server (так как с ним больше всего опыта работы). Либо готовое на основе него программное решение. Главное чтоб можно было в консоли в случае чего что-то поправить, так как бывает так, что не хватает функционала настроек из вебки
-
@a7lan
Здравствуйте
Ставьте Linux и не мучайтесь. Да, не будет красивой вебки, но будет полностью функциональная машина. У меня есть и PF и сервера на CentOs и FreeBSD . И все прекрасно администрируется из консоли -
Но так умеет Прокс. И если вы его пользуете, то можно ограничиться Проксом.
Перечитайте выше еще раз, а? Даже выделил специально для вас.