Ну вот, делаешь, например цепочку icq_packets по аналогии с secured, в нее добавляешь по одному правилу на тех, кому можно юзать аську:
$IPT -A icq_packets -s $User_IP -p tcp --dport $icq -j RETURN
А последним правилом рубишь всех остальных:
$IPT -A icq_packets -p tcp --dport $icq -j DROP
После этого в цепочке FORWARD бросаешь все пакеты с этого порта в свою цепочку:
$IPT -A FORWARD -p tcp --dport $icq -i $Lan_Iface -j icq_packets
Затем (последним правилом в цепочке FORWARD, таблицы filter) принимаешь все пакеты (т.е. те, что до сих пор не сбросились предыдущими правилами):
$IPT -A FORWARD -p ALL -i $Lan_Iface -j ACCEPT
И перехватываешь у squid'а трафик через асечный порт в цепочке PREROUTING таблицы nat:
$IPT -t nat -A PREROUTING -i $Lan_Iface -p tcp --dport $icq -j ACCEPT
И так для каждого порта.
Если тебе не нужно разделять доступ, например всем кому можно аську, можно еще и https - то можно это обрулить одной цепочкой и критерием multiport:
$IPT -A icq_packets -s $User_IP -p tcp -m multiport --destination-port $icq,$https -j RETURN
Если доступ нужно более запрещать, чем разрешать, например из 100 пользователей аськой нельзя пользоваться 3-м, то разумнее построить цепочку icq_packets наоборот:
$IPT -A icq_packets -s $User1_IP -p tcp --dport $icq -j DROP
$IPT -A icq_packets -s $User2_IP -p tcp --dport $icq -j DROP
$IPT -A icq_packets -s $User3_IP -p tcp --dport $icq -j DROP
$IPT -A icq_packets -p tcp --dport $icq -j ACCEPT
Насчет тех, кому доступ нужен вообще до всего и мимо сквида... Это реально нужно?
Просто схема тут изложенная работает следующим образом:
1. http заворачивается на сквид и считается/рулится средствами сквида/сквидгарда/самса.
Это логично, т.к. у меня, к примеру, http трафик составляет 90% всего траффика.
2. Для нескольких специальных адресов (внешних, включая почту) - весь трафик пробрасывается мимо сквида.
3. https фильтруется и тоже пробрасывается мимо сквида.
Если все таки нужно часть пользователей пускать в обход сквида их нужно по одному "перепускать" в таблице nat аналогично внешним адресам:
######################
# Цепочка PREROUTING #
######################
# Принимаем те пакеты, которые всегда разрешены и идут
# мимо сквида до того, как они уйдут в сквид.
# Пропускаем почту.
$IPT -t nat -A PREROUTING -i $Lan_Iface -d $mail_ip -j ACCEPT
# Пропускаем на FTP
$IPT -t nat -A PREROUTING -i $Lan_Iface -d $ftp_ip -j ACCEPT
# Пропускаем на шлюз.
$IPT -t nat -A PREROUTING -i $Lan_Iface -d $Lan_IP -j ACCEPT
# Пропускаем Банк-клиенты.
$IPT -t nat -A PREROUTING -i $Lan_Iface -d $Bank_1 -j ACCEPT
$IPT -t nat -A PREROUTING -i $Lan_Iface -d $Bank_2 -j ACCEPT
# Пропускаем https.
$IPT -t nat -A PREROUTING -i $Lan_Iface -p tcp --dport $https -j ACCEPT
# Пропускаем пользователей
$IPT -t nat -A PREROUTING -i $Lan_Iface -s $User1_IP -j ACCEPT
...
$IPT -t nat -A PREROUTING -i $Lan_Iface -s $UserN_IP -j ACCEPT
# Перенаправляем пакеты на сквид.
$IPT -t nat -A PREROUTING -i $Lan_Iface -p tcp -j REDIRECT --to-ports $squid