Привет!
Я конечно небольшой спец по Squid, но приблизительно подобная трабла была и меня.
Когда пользователи находятся за брандмауэром они не могут на прямую соединяться с внешним миром, поэтому необходимо использовать родительский кеш. Squid не испоьзует ICP запросы, если он за брандмауэром, или если только один родитель.
Поэтому мы должны выполнить 2 задачи:
1. Отконфигурить squid, работающий за брандмауэром
2. Перенаправить все запросы на прокси провайдера
1. Вы должны использовать never_direct list в squid.conf, говоря о том, что все запросы перенаправляются на родительский кеш за файерволом.
А также always_direct access list уточняя, какие запросы не будут перенаправлены
acl INSIDE dstdomain .mydomain.com
always_direct allow INSIDE
never_direct allow all
Не забывая указать родительский кеш
cache_peer xyz.mydomain.com parent 3128 0 default
2. Мы должны указать родительский кеш и сказать Squid не соединяться непосредственно с удаленными серверами, соответственно все соединения будут осуществляться через кеш провайдера. Это осуществляется следующими строками
cache_peer parentcache.foo.com parent 3128 0 no-query default
acl all src 0.0.0.0/0.0.0.0
never_direct allow all
Все это подробно описано в FAQ Squid. Читай пункты
# 4.8 How do I configure Squid to work behind a firewall?
# 4.9 How do I configure Squid forward all requests to another proxy?
С ув. Горшенков Сергей