как я вынуждаю Apache использовать http_proxy на Localhost для исходящего трафика без iptables?

Связанный ADSL - то, что Вы ищете.

1
задан 15 August 2013 в 14:07
1 ответ

Вы можете перенаправить весь исходящий HTTP-трафик на squid. Сквид должен работать в прозрачном режиме

# iptables -t nat -I OUTPUT -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128

Но вы не можете определить, от какого пользователя был трафик. Но вы можете попробовать запустить squid на нескольких портах, каждый для определенного пользователя

http_port 127.0.0.1:3128 transparent
http_port 127.0.0.1:3129 transparent
http_port 127.0.0.1:3130 transparent

, а затем перенаправить исходящий трафик на конкретный порт

# iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner --uid-owner apache -j DNAT --to-destination 127.0.0.1:3128

# iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner --uid-owner joe -j DNAT --to-destination 127.0.0.1:3129

# iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner --uid-owner jack -j DNAT --to-destination 127.0.0.1:3130

и использовать lp в формате журнала squid

logformat uniq_user %lp %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh

. Я получаю сообщение много 403 ошибок в файле журнала. Я добавил IP-адрес сервера к звонку, но это не сработало. Я думаю, что запрос в любом случае закончится бесконечным циклом

вам нужно обойти все запросы от самого squid

# iptables -t nat -I OUTPUT -p tcp --dport 80 -m owner --uid-owner squid -j ACCEPT

Я предположил, что ваш экземпляр squid работает под squid: squid,

1
ответ дан 4 December 2019 в 00:37

Теги

Похожие вопросы