URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID12
Нить номер: 6415
[ Назад ]

Исходное сообщение
"Доступ к FTP через SQUID с оговорками"

Отправлено superfly , 05-Июн-10 13:27 
Задача:
Разрешить доступ по 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=120

ftp_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        # http

acl CONNECT method CONNECT

acl UNSAFE_ports port 20-21 1025-65535    # unregistered ports

#Разрешаем ФТП напрямую
acl FTP proto FTP
always_direct allow FTP
ftp_passive off

cachemgr_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 all

http_access deny to_localhost

never_direct allow all

http_access allow localhost
http_access allow user1
http_access allow user2

#запрещаем все, что не разрешено выше
http_access deny all

icp_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 через SQUID с оговорками"
Отправлено universite , 06-Июн-10 00:33 
>Задача:
>Разрешить доступ по FTP
>1) для определенного юзера
>2) в обход вышестоящего прокси
>Всем остальным разрешить только Safe_ports

uname -a
squid -v в студию.


"Доступ к FTP через SQUID с оговорками"
Отправлено superfly , 06-Июн-10 00:45 
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.

"Доступ к FTP через SQUID с оговорками"
Отправлено flo , 12-Янв-11 11:27 
Скажите вы нашли в результате решение проблемы? У меня аналогичная


"Доступ к FTP через SQUID с оговорками"
Отправлено superfly , 12-Янв-11 11:58 
> Скажите вы нашли в результате решение проблемы? У меня аналогичная

Помню косяк был с тем, что обращение идет не по 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 563

acl 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


"Доступ к FTP через SQUID с оговорками"
Отправлено superfly , 12-Янв-11 12:00 
acl UNSAFE_ports port 20-21 1025-65535