Добрый день... 
поставили передо мной такую банальную задачу организации интернета: 
1. любые приложения не ходящие по http должны коннектица прозрачно(без маппинга портов и соксификации через прокси) 
2. рулить доступом пользователей http, и считать трафик по каждому 
 
В распоряжении имелось: 
1. ADLS-интернет 
2. локальная сеть 
3. интернет-маршрутизатор на базе AltLinux 4 Desctop с 2мя сетевыми интерфейсами 
eth0 - в ADSL, и eth1 - в сеть 
 
Решил сделать так: 
для прозрачного доступа пользователей в интернет NATить адреса в IPTables, и поднять PPPoE для коннекта пользователей. Для контролирования HTTP - заворачивать в IPTables запросы с 80 порта на прозрачный прокси-сервер Squid. 
 
Поднял NAT+PPPoE, поднял squid...по отдельности все работает, но как только я делаю squid прозрачным и заворачиваю запросы с 80 порта на squid - http работать отказывается... 
 
скрипт для Iptables 
------------------------------------- 
#!/bin/sh  
function get_addr()  
{  
   IFCONFIG='/sbin/ifconfig';  
   HEAD='head -2';  
   TAIL='tail -1';  
   CUT='cut -d: -f2';  
   IP=`$IFCONFIG $1 | $HEAD | $TAIL | awk '{print $2}' | $CUT`;  
   echo $IP; 
 
}  
### Внешний интерфейс 
EXTDEV="eth0"  
### внутренний интерфейс 
PPPOEDEV="eth1"  
### сеть для PPPOE клиентов.  
INETWORKIP="192.168.100.0/255.255.255.0"  
 
EXTERNALIP=`get_addr $EXTDEV` 
ENETWORKIP=$EXTERNALIP+"/255.255.255.255"  
INTERNALIP=`get_addr $INTDEV`  
LOOPBACK="127.0.0.1"  
ANYWHERE="0.0.0.0/0"  
PORTS="1024:65535"  
INTDEV="ppp+" 
/sbin/depmod -a 
/sbin/modprobe ip_conntrack 
/sbin/modprobe ip_tables 
/sbin/modprobe iptable_filter  
/sbin/modprobe iptable_mangle  
/sbin/modprobe iptable_nat  
/sbin/modprobe ipt_LOG  
/sbin/modprobe ipt_limit  
/sbin/modprobe ipt_MASQUERADE  
/sbin/modprobe ipt_owner  
/sbin/modprobe ipt_REJECT  
/sbin/modprobe ip_conntrack_ftp  
/sbin/modprobe ip_conntrack_irc  
/sbin/modprobe ip_nat_ftp  
/sbin/modprobe ip_nat_irc  
echo 1 > /proc/sys/net/ipv4/ip_forward  
echo 1 > /proc/sys/net/ipv4/tcp_syncookies  
for file in /proc/sys/net/ipv4/conf/*/rp_filter; do  
  echo 1 > $file  
done  
      
for file in /proc/sys/net/ipv4/conf/*/accept_redirects; do  
  echo 0 > $file  
done  
    
for file in /proc/sys/net/ipv4/conf/*/accept_source_route; do  
  echo 0 > $file  
done  
                      
/sbin/iptables -F  
/sbin/iptables -F -t nat  
/sbin/iptables -N ALLOW_ICMP  
/sbin/iptables -N ALLOW_PORTS  
/sbin/iptables -N CHECK_FLAGS  
/sbin/iptables -N DENY_PORTS  
/sbin/iptables -N DST_EGRESS  
/sbin/iptables -N KEEP_STATE  
/sbin/iptables -N SRC_EGRESS  
 
# По умолчанию все входящие пакеты сбрасываем  
/sbin/iptables -P INPUT DROP 
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP  
/sbin/iptables -A INPUT -j ACCEPT -s $EXTERNALIP -d $ANYWHERE  
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $INTDEV  
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i lo  
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $EXTDEV -m state --state RELATED,ESTABLISHED  
/sbin/iptables -A INPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE  
/sbin/iptables -A INPUT -j ACCEPT -p udp -s $INETWORKIP --sport 53 -d $ANYWHERE  
 
# По умолчанию все исходящие пакеты сбрасываем  
/sbin/iptables -P OUTPUT DROP  
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $INTDEV  
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $EXTERNALIP  
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o lo  
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV -m state --state RELATED,ESTABLISHED  
/sbin/iptables -A OUTPUT -j ACCEPT -p udp -s $EXTERNALIP -d $ANYWHERE --dport 53  
/sbin/iptables -A OUTPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE  
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $EXTDEV -m state --state RELATED,ESTABLISHED  
 
/sbin/iptables -P FORWARD ACCEPT 
/sbin/iptables -A FORWARD -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $INTDEV  
/sbin/iptables -A FORWARD -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE -i $INTDEV  
 
### редирект HTTP запросов на прокси сервер Squid.  
/sbin/iptables -t nat -A PREROUTING -i $INTDEV -p tcp --dport 80 -j REDIRECT --to-port 3128 
## Маскарадинг клиентов  
/sbin/iptables -t nat -A POSTROUTING -j SNAT -s $INETWORKIP -d $ANYWHERE -o $EXTDEV --to $EXTERNALIP  
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE -s $INETWORKIP -d $ANYWHERE -o $EXTDEV  
## Запуск PPPOE-SERVER  
killall -w -9 pppoe-server  
/usr/sbin/pppoe-server -I $PPPOEDEV -L $INTERNALIP 
----------------------------------------- 
 
squid.conf 
--------------------------- 
http_port 3128 transparent  
hierarchy_stoplist cgi-bin ? 
acl QUERY urlpath_regex cgi-bin \? 
no_cache deny QUERY 
 
cache_mem 20 MB 
maximum_object_size 16192 KB 
cache_dir ufs /home/slaven/squid/cache 1000 16 256 
emulate_httpd_log on 
access_log /home/slaven/squid/logs/access.log squid 
cache_log /dev/null 
cache_store_log none 
 
acl office src 192.168.100.0/255.255.255.0 
acl all src 0.0.0.0/0.0.0.0 
acl localhost src 127.0.0.1/255.255.255.255 
acl CONNECT method CONNECT 
 
http_access deny all !office 
icp_access allow all 
--------------------------- 
Браузер по таймауту говорит, что невозможно отобразить страницу. 
а access.log сквидовский ловит подобное: 
----------------------------------------- 
1198840773.503 179912 192.168.100.1 TCP_MISS/504 1461 GET http://www.google.ru/complete/search? - DIRECT/216.239.59.104 text/html 
------------------------------------------ 
 
Если делаю squid непрозрачным, то он валит в браузер сообщение о неправильно переданном запросе, и аналогичную запись делает в access.log. 
 
На момент написания поста перерыл просторы инета в поисках решения, но поа безрезультатно. Буду признателен за любую помощь