Писать инструкцию долго. Надо весть трафик на порт 80,8080 отредиректить на порт 3128
$IPTABLES -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-ports 3128
Пример моего скрипта
#!/bin/bash
#
##########################################################
echo 1 > /proc/sys/net/ipv4/ip_forward
# Для защиты от syn флуда
echo 1 > /proc/sys/net/ipv4/tcp_syncookiess
# Число начальных SYN и SYNACK пересылок для TCP соединения
echo 4 > /proc/sys/net/ipv4/tcp_synack_retries
echo 4 > /proc/sys/net/ipv4/tcp_syn_retries
#Какие порты использовать в качестве локальных TCP и UDP портов
#echo "16384 61000" > /proc/sys/net/ipv4/ip_local_port_range
#Сколько секунд ожидать приема FIN до полного закрытия сокета
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Как часто посылать сообщение о поддержании keep alive соединения
#echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
# Сколько пакетов проверки keepalive посылать, прежде чем соединение будет закрыто.
#echo 2 > /proc/sys/net/ipv4/tcp_keepalive_probes
# Зaпрещаем TCP window scaling
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
# Запрещаем selective acknowledgements, RFC2018
echo 0 > /proc/sys/net/ipv4/tcp_sack
# Запрещаем TCP timestamps, RFC1323
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
# Через какое время убивать соединеие закрытое на нашей стороне
#echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries
##################
EXT_IF="eth1"
LAN_IF="eth0"
LOCAL_NET="10.0.0.0/24"
IPT=`which iptables`
EXT_IP=`ifconfig $EXT_IF |grep "inet\ addr:"|awk '{print $2}'|sed -e s/addr://`
LAN_IP=`ifconfig $LAN_IF |grep "inet\ addr:"|awk '{print $2}'|sed -e s/addr://`
#
$IPT -t nat -F
$IPT -X
$IPT -F
#modprobe iptable_nat
#modprobe ip_conntrack_ftp
#modprobe ip_nat_ftp
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT
#localhost rules
$IPT -A INPUT -p ALL -i lo -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s $EXT_IP -j ACCEPT
$IPT -A INPUT -p ALL -i lo -s $LAN_IP -j ACCEPT
#external net rules
# ICMP rules
$IPT -A INPUT -p ICMP -i $EXT_IF --icmp-type echo-request -j ACCEPT
$IPT -A INPUT -p ICMP -i $EXT_IF --icmp-type echo-reply -j ACCEPT
#$IPT -A INPUT -p ICMP -i $EXT_IF -j ACCEPT
#$IPT -A INPUT -p ICMP -j ACCEPT
#
#$IPT -A INPUT -p ALL -i $EXT_IF -s $LOCAL_NET -j DROP
$IPT -A INPUT -p TCP -d $EXT_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --dport 20:21 -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --dport 22 -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --sport 53 -j ACCEPT
$IPT -A INPUT -p UDP -i $EXT_IF --sport 53 -j ACCEPT
$IPT -A INPUT -p TCP -i $EXT_IF --dport 10000:65535 -j ACCEPT
#end external if
#
#internal net rules
#ICMP
$IPT -A INPUT -p ICMP -i $LAN_IF -j ACCEPT
#
$IPT -A INPUT -p ALL -i $LAN_IF -j ACCEPT
#Когда то здесь была самба
#$IPT -A OUTPUT -p TCP -i $EXT_IF --dport 135:139 -j DROP
#$IPT -A OUTPUT -p UDP -i $EXT_IF --dport 135:139 -j DROP
#$IPT -A OUTPUT -p TCP -i $EXT_IF --dport 445 -j DROP
# Forward Rules
$IPT -A FORWARD -p TCP -s 0/0 --dport 135:139 -j DROP
$IPT -A FORWARD -p UDP -s 0/0 --dport 135:139 -j DROP
$IPT -A FORWARD -p TCP -s 0/0 --dport 445 -j DROP
$IPT -A FORWARD -p UDP -s 0/0 --dport 445 -j DROP
###########################################################
$IPT -A FORWARD -j ACCEPT
###########################################################
#NAT
$IPT -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP
# Redirect 80 8080 ports to squid
$IPTABLES -t nat -A PREROUTING -s $LOCAL_NET -i eth1 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-ports 3128
Здесь почти все правильно написано.
http://www.sys-adm.org.ua/www/squid-transparent.php