Компьютер, на котором размещен прокси-сервер, можно настроить параллельно с вашими постоянными клиентами в локальной сети. Маршрутизатор будет направлять весь HTTP-трафик (кроме прокси-машины) на вашу прокси-машину. Это делается путем объединения IPTables (чтобы выбрать, какой трафик для переадресации) и Policy Routing (выполняет переадресацию).
Я протестировал следующие шаги на OpenWrt Chaos Calmer (15.05.1, r48532) в VMware. Они основаны на этом руководстве.
Во-первых, чтобы настроить политику маршрутизации, вам нужен iproute2. Установите это:
opkg update # If you haven't done it since rebooting
opkg install ip
Затем откройте /etc/firewall.user
вашем любимом редакторе и вставьте следующие команды:
PROXYIP4=192.168.1.10
PROXYIP6=fe80:dead:beef::10
CLIENTIFACE=br-lan
FWMARK=2
# Permit Squid box out to the Internet
iptables -t mangle -A PREROUTING -p tcp --dport 80 -s $PROXYIP4 -j ACCEPT
ip6tables -t mangle -A PREROUTING -p tcp --dport 80 -s $PROXYIP6 -j ACCEPT
# Mark everything else on port 80 to be routed to the Squid box
iptables -t mangle -A PREROUTING -i $CLIENTIFACE -p tcp --dport 80 -j MARK --set-mark $FWMARK
iptables -t mangle -A PREROUTING -m mark --mark $FWMARK -j ACCEPT
ip6tables -t mangle -A PREROUTING -i $CLIENTIFACE -p tcp --dport 80 -j MARK --set-mark $FWMARK
ip6tables -t mangle -A PREROUTING -m mark --mark $FWMARK -j ACCEPT
# NP: Ensure that traffic from inside the network is allowed to loop back inside again.
iptables -t filter -A FORWARD -i $CLIENTIFACE -o $CLIENTIFACE -p tcp --dport 80 -j ACCEPT
ip6tables -t filter -A FORWARD -i $CLIENTIFACE -o $CLIENTIFACE -p tcp --dport 80 -j ACCEPT
# Fill 'proxy' routing table
ip route flush table proxy
ip route add default via $PROXYIP4 table proxy dev $CLIENTIFACE
ip -6 route add default via $PROXYIP6 table proxy dev $CLIENTIFACE
Обязательно настройте переменные по мере необходимости!
Затем отредактируйте /etc/iproute2/rt_tables
, добавив строку для proxy
таблицы, используя любой свободный идентификатор:
...
201 proxy
Последний кусок - это политика для трафика, помеченного $FWMARK
. Откройте /etc/config/network
и создайте запись правила:
config rule
option mark 0x2
option in lan
option lookup proxy
Убедитесь in
правильности имени в сети и т.д.
На этом завершается часть установки OpenWrt. Прокси-машина теперь (эффективно) стала шлюзом по умолчанию для трафика HTTP. Если эта машина работает под управлением Linux, вы можете продолжить это руководство по TPROXY.
Накладные расходы на маршрутизацию должны быть минимальными. Остальное зависит от прокси-хоста.
Если вы нарушили доступ к Интернету, вы можете легко восстановить его, удалив правило маршрутизации:
ip rule del fwmark 2
Правило также может быть легко добавлено снова:
ip rule add fwmark 2 table proxy
ТЛ; др
Прокси-хост действительно должен быть между клиентами и Интернетом. Тем не менее, при умной маршрутизации любая машина с прямым доступом может стать «человеком посередине».
Вот так: