Если требуется, чтобы кальмар умел работать как в обычном, так и в прозрачном режиме, то придется для сквида задействовать 2 порта.
В моих конфигах директива http_port выглядит примерно так:
http_port 192.168.0.1:3128
http_port 192.168.0.1:3129 intercept
Ну в списках ACL, разумеется, не забываем разрешить работу для сети 192.168.0.0.24, если ранее это не было сделано.
Ну как бы все. Теперь заворачиваем транзитный траффик адресованный на удаленные http на свой прокси.
Строчка типовая, тыщщу раз на форуме мелькала, и гуглится с первого раза:
iptables -t nat -A PREROUTING -i $LAN_IF ! -d $LAN_NET -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3129
где $LAN_IF - это псевдоним сетевки, смотрящий собственно в сеть 192.168.0.1, а $LAN_NET = 192.168.0.0/24
Также, если у Вас NetFilter ограничивает траффик со стороны $LAN_IF, то не забудьте для $LAN_IF прописать разрешающее правило на доступ к портам TCP\3128 и TCP\3129 в цепочке INPUT, а то ведь правило в таблице nat честно отработает, а затем пакет упрется рогами в запрещалки из таблицы filter и ничего не заработает.
Если Вы делаете все это, и у Вас не работает - значит причина не здесь, а где-то в другом: запрещающие правила NetFilter, криворукая настройка ACL и т.д.