LINUX.ORG.RU
решено ФорумAdmin

Прозрачный прокси. Помогите сделать

 ,


0

1

Есть VPS, на ней поднят squid. Как силами iptables сделать так, чтобы весь http-трафик шёл через squid (а остальной напрямую)?

UPD.: Проблему решил.

★★★★

Последнее исправление: xdimquax (всего исправлений: 1)

iptables -t nat -A PREROUTING -p tcp -s $SOURCE-NET --dports 80 -j DNAT --to-destination $IP-SQUID:SQUID-PORT
Но что-то мне подсказывает, не именно этого вы хотите.

anc ★★★★★
()

На сколько мне не изменяет память, там надо в самом сквиде включить прозрачный режим и завернуть на его порт http трафик средствами iptables

samson ★★
()
Ответ на: комментарий от samson

Только разницы от моего правила ровно ноль.

anc ★★★★★
()
Ответ на: комментарий от samson

Вы внимательно топик читали? ТС поднял на VPS squid, сами как думаете откуда трафик идет? С самой vps ? Это рядли. Скорее от клиентов локалки. Задача в целом понятна. Только есть нюанс в виде http которого не так уж и много.

anc ★★★★★
()
Ответ на: комментарий от samson

samson, anc

На VPS со squid3 проброшен ssh-туннель, и трафик, в основном,поступает через него.

С PREROUTING у меня не работает: http-трафик идет мимо сквида. Работает в прозрачном режиме вот так:

iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination SQUIDIP:3129
С REDIRECT тоже работает.

Но у меня сейчас не работают кэш-пиры, например, I2P-прокси. Вот конфиг сквида:

http_port 3128
http_port 3129 intercept
acl i2phost dstdomain .i2p
cache_peer 127.0.0.1 parent 4444 0 no-query proxy-only
cache_peer_access 127.0.0.1 allow i2phost
cache_peer_access 127.0.0.1 deny all
http_access allow all

При этом, если использовать непрозрачный 3128 порт, то .i2p-сайты открываются. А при прямом обращении, эти запросы идут мимо сквида (ошибка could not resolve host).

xdimquax ★★★★
() автор топика
Последнее исправление: xdimquax (всего исправлений: 3)
Ответ на: комментарий от xdimquax

Работает в прозрачном режиме вот так.

Так у вас не для локалки (как я подумал) а только для себя любимого? Тогда зачем вам прозрачный? Для себя любимого можно ручками прокси прописать.

ошибка could not resolve host

Это потому что используется ваш локальный(выданный провом) dns сервер. Пропишите тот же который и на vps. Но не факт что сработает.

anc ★★★★★
()
Ответ на: комментарий от xdimquax

Стоп.

С REDIRECT тоже работает.

Это вы где делаете? На самой vps ?

anc ★★★★★
()
Ответ на: комментарий от anc

Тогда зачем вам прозрачный?

Squid — это http-прокси, а мне хотелось бы socks5 (ssh-туннель), но чтобы сайты кэшировались сквидом. В т.ч. и сайты в Tor/I2P, но сейчас обращения к ним идут мимо сквида.

Это потому что используется ваш локальный(выданный провом) dns сервер.

Они не работают даже на самой VPS. А вот так открываются:

curl -x http://localhost:3128 identiguy.i2p

Это вы где делаете? На самой vps ?

Да.

xdimquax ★★★★
() автор топика
Ответ на: комментарий от xdimquax

Вам сам сквид надо настроить в прозрачном режиме. Кажется там что то такое раньше было transparent_чета там...

samson ★★
()

в squid.conf

http_port 127.0.0.1:3128 transparent # Squid работает в прозрачном режиме

samson ★★
()
Ответ на: комментарий от xdimquax

Если «клиент-squid-socks5», то можно после squid privoxy поставить или 3proxy. Пробовал polipo, но там вроде webdav не работал.

Radjah ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.