deny заведены. Но смущает то, что ipchains раскрывает доступ по 80 порту для всех машин локальной сети, а в конце правил ipchains стоит редирект на порт squid 80 порта.
Мне кажется самый простой способ проверить сквида это указать в броузере клиентской машины настройки прокси явный адрес и порт, обычно 3128. Сразу будет видно пускает или не пускает. И еще Вы говорите, что у вас через ipchains открыт 80 порт, а редирект стоит в конце правил. ПРАВИЛА В ipchains ВЫПОЛНЯЮТСЯ В ПОРЯДКЕ ИХ ОБЪЯВЛЕНИЯ. Судя по всему, Ваши пользователи запросто могут ходить прямо в инет, и Ваш редирект вообще не работает.
В том-то и дело, что прямо ходить не могут. А в броузере все явно и стоит как вы описываете. ipchains -A output -i $EXTERNAL_INTERFACE -p tcp \ -s $IPADDR $UNPRIVPORTS \ -d $ANYWHERE 80 -j ACCEPT ipchains -A input -i $EXTERNAL_INTERFACE -p tcp ! -y \ -s $ANYWHERE 80 \ -d $IPADDR $UNPRIVPORTS -j ACCEPT Вот как выглядит у меня кусок firewalla. Если это убираю, то никто не ходит в инет.
Естественно, это внешний интерфейс и ему разрешено видеть хосты на 80 порту, если это убрать, то конечно все отвалится и даже сквид не сможет обратится наружу. У Вас наверняка включен роутинг. Но ведь редирект должен быть на внутреннем интерфейсе, когда броузер пользователя ломится на какой-нибудь хост по 80 порту этот пакет нужно перехватить и направить на порт сквида 3128 на этом-же интерфейсе. Кстати загляните сюда squid.opennet.ru там есть описание прозрачного прокси. А в данной ситуации (если конечно включен роутинг) получается, что если указать конкретный адрес прокси, то пойдет через сквид, а если убрать пойдет напрямую и будет работать минуя ваш прокси.
Когда убираю прокси с броузера, перестает пускать. Что тогда нужно указать в брандмауэре, чтобы получилось так, как вы советуете. Кстати статистику squid дает полную по каждому ip.
Когда убираю прокси с броузера, перестает пускать. Что тогда нужно указать в брандмауэре, чтобы получилось так, как вы советуете. Кстати статистику squid дает полную по каждому ip.
>стоит вот так: ipchains -A forward -i $EXTERNAL_INTERFACE -s $LAN_1 -j MASQ
Наверное, и будут все ходить. Правило-то одно для всей локальной подсетки без разграничения для клиентов. Попробуй, пропиши набор правил для каждого клиентского IP, кому нужен доступ, как предлагалось выше - посмотришь.
И еще посмотрите http://squid.opennet.ru в разделе Транспарент прокси там все на русском и очень хорошо описаны настройки squid для этого в частности и вообще разные разности для сквида.