все описания прочитанные на форумах, и тех кто использует squid как прозрачный прокси сервер (важен подсчет кэшируемого трафика как входящий). Тем не менее при моем анализе показали что при использовании данной связки squid + utm 5.1.10 - если клиент имеет минимальный баланс на счете ОН может пользоваться всем интернет трафиком пренудительно отправляя его в локальный трафик.
Как это делается:
Дефолтовые правила: NAT + FWD в IPFW
fwd 127.0.0.1,3128 tcp from 192.168.0.0/24 to any 80 ( правила прозрачной трансляции) - вместо сети клиента можно указать и UIP и вообще лучше данную строку привязывать на блок пользователя из включения инета в UTM, допустим:
05038 fwd 127.0.0.1,3128 tcp from 192.168.0.72 to any 80
05038 fwd 127.0.0.1,3128 tcp from 195.18.19.26 to any 80
05038 allow ip from 192.168.0.72 to any
05038 allow ip from 195.18.19.26 to any
05038 allow ip from any to 192.168.0.72
05038 allow ip from any to 195.178.19.26
ну и вторая строчка:
00010 divert 8668 ip from any to any via fxp1 (внешний ip)
При сканировании закрытого UTM + IPFW естественно по уполчанию, если у клиента не включен интернет доступа к любым портам, кроме прописанных на IPFW ( допустим HTTPS/443 ) доступа не будет.
НО, как только мы включим интернет.
есть угроза бесплатного использования инетрнет. В чем смысл,
что при fwd портов с 80 порта на локальный порт 3128 открывается порт 80 снаружи, который редиректит все данные к squid.
Т.е. 100% проверено, что если взять и прописать в браузере в настройках прокси ip адрес шлюза и порт 80

Решение:
незнаю, может существует множество решений по обходу данной проблемы, но я к сожалению не одного такого не нашел - тестировал на ipnat - уровень ядра, и natd - демон (работает чуть меднеленнее)
На обсуждение предоставляю свою идею. Почему то удалось ее достить импользуя только natd к сожалению (хотелось бы ipnat).
На сервере я поднял apache 80, 443 порт.. вход 80 редиректится на 443. с помощью php
-su-2.05b# more index.php
<?
header("Location: https://192.168.0.3/cgi-bin/utm5/aaa5");
?>
Но тут не все. Все еще будет по прежнему на халяву (для юзеров которые рано или поздно найдут лазейку) с прописыванием прокси в браузеры.
Пока мы не пропишем правило:
00010 fwd 192.168.0.3,443 tcp from 192.168.0.0/24 to 192.168.0.3 80 in recv fxp0 (fxp0 внутреняя сеть.)
данным правилом форвардится 80 порт на 443 локальный.
В результате:
1. при коннекте юзера на 80 порт на адрес шлюза, мы получаем 80 порт апача с редиректом.
2. прозрачные запросы работают через squid
3. прямое прописывание прокси сервера в браузере на шлюз:80 порт будет неработоспособно..
В результате все потенциальные пользовательские дыры мы данным правилом исключаем.
Мой полный конфиг ipfw: с включенным 1 юзером.
00010 fwd 192.168.50.3,443 tcp from 192.168.48.0/20 to 192.168.50.3 80 in recv fxp0
00020 divert 8668 ip from any to any via fxp1
00025 allow ip from me to any
00030 allow ip from any to any via lo0
00056 deny tcp from 192.168.0.0/24 to me 3306 via fxp0
00080 deny icmp from any to any frag
00080 deny ip from any to any frag
00081 allow tcp from any to any via fxp1 established
00110 allow ip from me to any
00120 allow tcp from any to me 443 via fxp0
00500 allow icmp from any to me
00500 allow icmp from me to any
05038 fwd 127.0.0.1,3128 tcp from 192.168.0.72 to any 80
05038 fwd 127.0.0.1,3128 tcp from 195.18.19.26 to any 80
05038 allow ip from 192.168.0.72 to any
05038 allow ip from 195.18.19.26 to any
05038 allow ip from any to 192.168.0.72
05038 allow ip from any to 195.18.19.26
65535 deny ip from any to any
Пожалуйста делитесь своими решениями для FreeBSD. Надеюсь не я один решил данную проблему..