>>Как заставить работать сабж? веб проксит, фтп нет.
>>никак, сквид - это чистый http прокси и ftp у него over http.

У меня по-моему такой же трабл...
Итак, на NATовом роутере(FreeBSD 4.7) стоит прозрачная прокся(Squid/2.4.STABLE7).
В настройках IE ничего нет... - ни на один ftp зайти не могу...
Прописываю в IE прокси... - захожу везде спокойно и без проблем...
Беру Total Commander...
В настройках ничего... - соответственно и не войти никуда...
Прописываю (HTTP-прокси с поддержкой FTP / прозрачный /  и т.д, и т.п. ) - результат тот же... НИКУДА ВОЙТИ НЕ МОГУ...
В squid.conf
ftp_user
ftp_list_width 64
ftp_passive off

В IPFW всё как здесь

Или всё так и должно быть???

В lftp есть ftp:proxy и ftp:use-hftp. Возможно это то что нужно.

Как зайти на ftp через прокси которое работает только для http?

Если прокси работает только для HTTP и запрещён метод CONNECT на произвольные порты, то никак по определению. И никакой total commander тут не поможет.

Невозможно чихнуть с открытыми глазами.

FTP не передает заголовок Host: или чего-то аналогичного, поэтому иметь на одном IP/порту несколько виртуальных FTP-серверов невозможно, надо их разносить по IP или портам или передавать имя хоста в имени пользователя.
В остальном проблем с проксированием FTP нет, например в 3proxy
allow * * internal_host1 20-21,1024-65535
ftppr -hinternal_host1:21 -iexternal_ip -p2101
flush
allow * * internal_host2 20-21,1024-65535
ftppr -hinternal_host2:21 -iexternal_ip -p2102
flush
allow * * internal_host3 20-21,1024-65535
ftppr -hinternal_host3:21 -iexternal_ip -p2103
flush
...
проксирует FTP с порта external_ip:2021 на internal_host1, 2022 на internal_host2, 2023 на internal_host3
либо там же можно проксировать по имени пользователя:
allow * * internal_host1,internal_host2,internal_host3 20-21,1024-65535
ftppr -iexternal_ip -p21
будет проксировать пользователя с именем user@internal_host1 на internal_host1, user@internal_host2 на internal_host2 и т.д.