LINUX.ORG.RU
ФорумAdmin

Не срабатывают ACL в Squid3

 


0

1

Есть сервант с Debian 7.0, на нем крутится Postfix и Squid.

Возникла проблема со срабатыванием ACL в сквиде.

Вот конфиг.

acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 10.5.1.0/24 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl SMTP_relay port 25
acl myip src 10.5.1.17/32
acl vk dstdomain .vk.com
acl CONNECT method CONNECT
acl SS url_regex "/etc/squid3/ss.acl"
#запрет опен-релея SMTP
http_access deny SMTP_relay
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#custom rules here
http_access allow myip
http_access allow vk myip
httt_access deny SS
httt_access deny vk
http_access allow localnet
http_access allow localhost
http_access deny all
debug_options ALL, 1
http_port 3128 transparent
cache_dir ufs /var/cache/squid3 1024 16 256
coredump_dir /var/spool/squid3
cache_mgr cns@cns.ru
visible_hostname squid
log_fqdn on
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320 

задача была типовая - запретить доступ к сайтам, содержащимся в SS.acl и vk.acl и дать доступ некоторым клиентам к vk.acl.

вот в таком и других (через регэкспы) исполнениях оно не работает.

более того, сквид не срабатывает даже на строчку

http_access allow myip

т.е. сайты в, содержащиеся в SS.acl и vk.acl машина с ip 1.17 видеть не может несмотря на параметр allow.

есть предположение, что это проблема доступа к кешу, но я не могу понять, какая именно.

Доступа к кешу? Сверь права:

root@gate:~# ls -la /var/spool/squid3/
итого 59896
drwxr-xr-x  18 proxy proxy     4096 Авг 29 07:35 .
drwxr-xr-x   9 root  root      4096 Окт 23  2012 ..
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 00
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 01
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 02
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 03
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 04
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 05
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 06
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 07
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 08
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 09
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 0A
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 0B
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 0C
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 0D
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 0E
drwxr-x--- 258 proxy proxy     4096 Мар 20 15:14 0F
-rw-r-----   1 proxy proxy 61256160 Авг 29 13:54 swap.state
-rw-r-----   1 proxy proxy        0 Авг 29 07:35 swap.state.last-clean

Acceptor ★★ ()

Мда, и может попробовать сделать так?

#custom rules here
http_access allow myip !vk
http_access allow localnet
http_access allow localhost
httt_access deny vk
httt_access deny SS
http_access deny all
Acceptor ★★ ()
Последнее исправление: Acceptor (всего исправлений: 1)
Ответ на: комментарий от Acceptor

как-то подозрительно мало.

ls -la /var/spool/squid3/
итого 8
drwxr-xr-x  2 proxy proxy 4096 Фев 23  2013 .
drwxr-xr-x 10 root  root  4096 Авг  9 14:38 ..
nebraska_edu ()
Ответ на: комментарий от Acceptor

Мда, и может попробовать сделать так?

а смысл?

доступ к vk.acl должен остаться у myip.

дело в том, что доступа нет ни к каким сайтам в SS.acl, несмотря на allow.

nebraska_edu ()
Ответ на: комментарий от nebraska_edu

Это потомучто у тебя в конфиге написано:

cache_dir ufs /var/cache/squid3 1024 16 256
coredump_dir /var/spool/squid3

Сверяй либо с директорией /var/cache/squid3 или, лучше, укажи так как должно быть по-умолчанию:

cache_dir ufs /var/spool/squid3 1024 16 256
coredump_dir /var/spool/squid3

Acceptor ★★ ()
Ответ на: комментарий от Acceptor

туплю, да, точно.

denis@debianmail:~$ ls -la /var/cache/squid3
итого 4644
drwxrwxrwx  18 root  root     4096 Авг 29 12:30 .
drwxr-xr-x  14 root  root     4096 Авг 14 17:27 ..
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 00
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 01
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 02
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 03
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 04
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 05
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 06
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 07
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 08
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 09
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 0A
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 0B
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 0C
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 0D
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 0E
drwxr-x--- 258 proxy proxy    4096 Авг 27 16:45 0F
-rw-r-----   1 proxy proxy 4679928 Авг 29 14:13 swap.state 

разница только в первой строчке, у меня права рута.

nebraska_edu ()
Ответ на: комментарий от nebraska_edu

Мда... вспомнил... у нас же vk.com - https

а в transparent моде https не проксируется... Ради интереса можешь у конкретного юзера в браузере прописать прокси сервер и проверить это...

Acceptor ★★ ()
Ответ на: комментарий от Acceptor

вообщем, проблему решил открыв 443 порт на гейте для тех, кому доступ нужен и закрыл для всех остальных.

в конфиге сквида запретил ACL ss.acl

однако это страшный костыль, сквид должен сам разграничивать доступ, а он этого не делает.

но спасибо, https натолкнуло на мысль.

nebraska_edu ()
Ответ на: комментарий от nebraska_edu
http_access allow myip
http_access allow vk myip

вторая строка не имеет смысла. Срабатывает первое полностью совпавшее правило.

vel ★★★★★ ()
Ответ на: комментарий от vel

Он-то и не срабатывает. Ни в одном из варантов.

Yustas ★★★★ ()
Ответ на: комментарий от vel

Первое правило НЕ срабатывает, как уже ниже проконстатировал коллега.

т.е. правило

http_access deny SS

срабатывает ДО правила

http_access allow myip
nebraska_edu ()
Ответ на: комментарий от nebraska_edu

вопрос остается открытым.

как заставить срабатывать правило

http_access allow myip

ДО правила

http_access deny SS

потому что работа прокси через такой страшный костыль - это не правильно.

nebraska_edu ()
Ответ на: комментарий от Yustas

дык включить отладку ACL/access секция 28 и понять причину.

vel ★★★★★ ()
Ответ на: комментарий от vel

провел дебаг, в лог высыпалось вот такое

2013/08/30 20:56:23.155| ACLChecklist::preCheck: 0x7fb1b6b1bac8 checking 'http_access allow myip'
2013/08/30 20:56:23.156| ACLList::matches: checking myip
2013/08/30 20:56:23.156| ACL::checklistMatches: checking 'myip'
2013/08/30 20:56:23.156| aclIpAddrNetworkCompare: compare: 10.5.1.1:2889/[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff] (10.5.1.1:2889)  vs 10.5.1.16-[::]/[ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff]
2013/08/30 20:56:23.156| aclIpMatchIp: '10.5.1.1:2889' NOT found
2013/08/30 20:56:23.156| ACL::ChecklistMatches: result for 'myip' is 0
2013/08/30 20:56:23.156| ACLList::matches: result is false

вопрос зачем он сопоставляет ip-адреса 1.1 и 1.16? (1.1 это гейт, 1.16. - клиент)

в итоге, значения разные и он возвращает результат для myip равный 0.

т.е. по идее, надо чтобы он искал машину 1.16, находил ее и давай allow согласно правилу, но сквид этого не делает.

почему?

nebraska_edu ()
Ответ на: комментарий от nebraska_edu

acl myip в сквиде встроенный. Выберите другое имя для вашего acl

vel ★★★★★ ()
Ответ на: комментарий от vel

не помогло.

тут проблема, скорее всего, не в сквиде, а в NAT-e на гейте.

nebraska_edu ()
Ответ на: комментарий от nebraska_edu

Все перепутал! Есть тип acl myip :(

А а что «iptables -t nat -nvxL» ?

vel ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.