pf: Пересылка всех пакетов на порт 80 с любого интерфейса на SOCKS-прокси

pf: Пересылка всех пакетов на порт 80 с любого интерфейса на SOCKS-прокси

Я пытаюсь переслать все пакеты на порт 80 с любого интерфейса на мой SOCKS-прокси (Сервер). Я не уверен, правильно ли я его настроил, но я не могу заставить его пересылать пакеты.

Я создаю SOCKS-прокси и т. д.Машина А:

ssh -D 5948 user@server

Это позволяет мне выходить в Интернет через мой SOCKS-прокси, если я изменю настройки прокси в Chrome.

Все хорошо, за исключением того, что я подключаю устройство (Устройство Б) кМашина Аиспользуя Bluetooth, я хочу получить доступ к Интернету через прокси-сервер SOCKS с этого устройства, проходящего через мой компьютер.

           +---------------+    +---------------+    +--------------+
           |               |    |               |    |              |
           |               |    |               |    |              |
Internet   |    Server     <----+   Machine A   <----+   Device B   |
           |               |    |               |    |              |
           |               |    |               |    |              |
           +---------------+    +---------------+    +--------------+
                                                  Connected via Bluetooth

Подключение и раздача интернета через Bluetooth работают нормально, за исключением того, что вместо прокси-сервера SOCKS используется мой интернет-провайдер.

Вместо этого я хочу pfпересылать любой пакет с любого интерфейса на порту 80 на мой прокси SOCKS.

Я попытался сделать это, создав файл привязки со следующим содержимым:

rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 5948

Я включил якорь pf.confи включил переадресацию на всех интерфейсах следующим образом:

net.inet.ip.forwarding=1
net.inet6.ip6.forwarding=1

Пересылка не происходит, и я могу только предположить, что мое pfправило неверно. Я проверил его с помощью:

sudo pfctl -vnf /etc/pf.anchors/org.jj.forwarding

Есть идеи, где я ошибаюсь?

решение1

Поскольку вы включили переадресацию, добавление следующего правила iptable должно сработать

iptables -t nat -A ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ -i bl1 -p tcp --dport 80 -j DNAT --to 127.0.0.1:5948

bl1 — это ваш интерфейс Bluetooth

Связанный контент