Задача:
Разрешить доступ по FTP
1) для определенного юзера
2) в обход вышестоящего прокси
Всем остальным разрешить только Safe_portsКонфиг:
snmp_port 0
icp_port 0
htcp_port 0
half_closed_clients off
client_lifetime 1 hours
pconn_timeout 120 seconds
http_port 3128
cache_peer 127.0.0.1 parent 8088 0 no-query no-digest default connect-timeout=120ftp_user anonymous@host.ru
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl user1 src 192.168.1.1/255.255.255.255
acl user2 src 192.168.1.2/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80-82 5082 # http
acl FTP_ports port 20-21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 8080 # httpacl CONNECT method CONNECT
acl UNSAFE_ports port 20-21 1025-65535 # unregistered ports
#Разрешаем ФТП напрямую
acl FTP proto FTP
always_direct allow FTP
ftp_passive offcachemgr_passwd disable config shutdown
http_access allow manager localhost
http_access allow manager vl0_8_89
http_access deny manager all#разрешаем набор портов для user1
http_access allow Safe_ports SSL_ports FTP_ports UNSAFE_ports user1#разрешаем порты для всех остальных
http_access allow Safe_ports#разрешаем КОННЕКТ на набор портов для user1
http_access allow CONNECT SSL_ports FTP_ports UNSAFE_ports user#разрешаем КОННЕКТ на порты для всех остальных
http_access allow CONNECT SSL_ports#запрещаем КОННЕКТ на все остальное
http_access deny CONNECT allhttp_access deny to_localhost
never_direct allow all
http_access allow localhost
http_access allow user1
http_access allow user2#запрещаем все, что не разрешено выше
http_access deny allicp_access deny all
miss_access allow all
В итоге с таким конфигом:
1) ФТП все равно заруливается на вышестоящий прокси (видимо тип протокола определяется после того, как происходит коннект). Видимо надо разрешать direct для FTP_ports?
2) Юзеры user2 и localhost имеют возможность запроса GET на все порты (даже UNSAFE_ports), хотя по идее это должно быть запрещено http_access deny all.В конструкции:
http_access deny !Safe_ports
Юзерам запрещен GET на порты кроме Safe_ports, но как сюда вписать разрешение для user?
Конструкция вида
http_access deny !Safe_ports
http_access deny !Safe_ports !FTP_ports !SSL_ports !UNSAFE_ports !user1Не работает.
>Задача:
>Разрешить доступ по FTP
>1) для определенного юзера
>2) в обход вышестоящего прокси
>Всем остальным разрешить только Safe_portsuname -a
squid -v в студию.
Squid Cache: Version 2.6.STABLE22
configure options: --enable-win32-service --enable-storeio='ufs aufs null coss'
--enable-removal-policies='heap lru' --enable-snmp --enable-htcp --disable-wccp
--disable-wccpv2 --enable-useragent-log --enable-referer-log --enable-cache-dige
sts --enable-auth='basic ntlm digest negotiate' --enable-coss-aio-ops --enable-b
asic-auth-helpers='LDAP NCSA mswin_sspi' --enable-negotiate-auth-helpers=mswin_s
spi--enable-ntlm-auth-helpers='mswin_sspi fakeauth' --enable-external-acl-helper
s='mswin_lm_group ldap_group' --enable-large-cache-files --enable-digest-auth-he
lpers='password LDAP'--enable-delay-pools --enable-arp-acl --prefix=c:/squid
Compiled as Windows System Service.
Скажите вы нашли в результате решение проблемы? У меня аналогичная
> Скажите вы нашли в результате решение проблемы? У меня аналогичнаяПомню косяк был с тем, что обращение идет не по DNS, а по IP, остальное уже забыл... вот работающий конфиг (юзер user_XXXX имеет полноценный доступ к фтп 207.5.31.151):
acl Safe_ports port 80-82 5082
acl Safe_ports port 20-21
acl SSL_ports port 443 563acl FTP proto FTP
always_direct allow FTP
ftp_passive off# Need to set IP because FTP client connects to IP not HOST
acl ftp-servers dst 207.5.31.151# ftp miss external filter
always_direct allow ftp-servers#FIRST CHECKING CLIENT THEN CHECKING SERVER
http_access deny !Safe_ports !user_XXXX
http_access deny !Safe_ports !ftp-servers# ALLOW CONNECT TO UNSAFE (FTP AND TRANSFER) PORTS FOR FTP
http_access allow CONNECT UNSAFE_ports user_XXXX ftp-servers
http_access allow CONNECT SSL_ports
http_access deny CONNECT all
http_access deny to_localhost
acl UNSAFE_ports port 20-21 1025-65535