Назад | Перейти на главную страницу

Squid работает, но страницу не выдает

у меня есть кальмар (v4.8) установлен на виртуальной машине, назовем ее маршрутизатор, эта машина может подключаться как к Интернету, так и к внутренней сети, которая ведет к другой виртуальной машине, место хранения.

я хочу Кальмар кому:

Я не читал никого, кто делал бы то же самое, но я видел несколько конфигураций squid, в которых для прослушивания указано более одного порта, и по крайней мере один из них может иметь перехватить переключатель. Я должен сказать, что у меня также есть другой интерфейс (только хост) который соединяет маршрутизатор к хозяин (фактическая машина), этот интерфейс предназначен только для тестирования некоторых функций.

факты:

  1. С помощью веб-браузера от хозяин:
    • Меня просят ввести учетные данные
    • Если я введу неправильные учетные данные, меня снова спросят
    • Если я наберу правильный, это продолжится.
      • Если я пытаюсь перейти на веб-страницу, которой нет в белом списке, я вижу баннер кальмара
      • Если я пытаюсь перейти на разрешенную веб-страницу ... она просто продолжает загружаться, ничего не показывая
  2. С помощью приложения командной строки изнутри место хранения:
    • Если я попытаюсь получить черная страница (не в белом списке) Я получаю:
      • Веб-страница HTML с ERR_ACCESS_DENIED (curl <webpage> -o <file>)
      • Текстовый файл с ОШИБКА 403: запрещено (wget <webpage> -o <file>)
      • В обоих случаях я получаю от access.log: TCP_DENIED / 403 размер ПОЛУЧИТЬ http: //Blackurl - HIER_NONE / - И в cache.log: ВНИМАНИЕ: аутентификация не применяется к перехваченным запросам.
    • Если я попытаюсь получить белая страница (в белом списке) Он продолжает «загружаться». Когда я ухожу (^C) Я вижу из access.log: NONE_ABORTED / 000 0 ПОЛУЧИТЬ http: //whiteurl - HIER_NONE / - - и вообще ничего в cache.log.
    • Выдача curl -x "http://user:pass@domain:8080" <url>:
      • Если учетные данные неверны, я получаю HTML-файл с ERR_CACHE_ACCESS_DENIED. файл access.log: TCP_DENIED / 407 размер ПОЛУЧИТЬ http: //url пользователь HIER_NONE / - текст / html и ничего на cache.log.
      • Если учетные данные верны:
        • Страница черного списка: я действительно понял. файл access.log: TCP_MISS / 200 размер ПОЛУЧИТЬ http: //Blackurl пользователь HIER_DIRECT /ipurl (Или TCP_REFRESH_MODIFIED) и ничего в cache.log
        • Страница белого списка: мне ничего не удается получить, и когда я прерываю, я получаю access.log: TCP_MISS_ABORTED / 000 0 ПОЛУЧИТЬ http: //whiteurl - HIER_NONE / - -, ничего в cache.log.
        • ПРИМЕЧАНИЕ. Я по ошибке попытался получить страницу, которая привела меня к перенаправлению, поэтому я получил 301 перемещен навсегда. файл access.log: TCP_MISS / 301 размер ПОЛУЧИТЬ http: //белая страница - HIER_DIRECT /ipurl и ничего в cache.log.
        • ПРИМЕЧАНИЕ: предыдущая страница была в моем белый список.
        • ПРИМЕЧАНИЕ. Если я запрашиваю запрещенную страницу с учетными данными, она всегда появляется в конце URL-адреса.

Конфигурационный файл моего сквида (/etc/squid/squid.conf):

http_port 8080
http_port 3128 intercept
dns_nameservers 127.0.0.1 1.1.1.1 # Sometimes squid doesn't load the nameserver from /etc/resolv.conf
# Storage
cache_dir ufs /var/cache/squid 3000 16 256
maximum_object_size 250 MB
refresh_pattern -i ".+\.(mp4|mkv|webm|iso)$" 0 20% 2880
# Authentication
auth_param basic program /usr/lib/squid/basic_db_auth \
  --user "user" --password "pass" \
  --table "table" --usercol "userinsomelang" --passwdcol "passinsomelang" --md5 \
  --persist
auth_param basic children 10
auth_param basic realm "Squid proxy"
auth_param basic credentialsttl 1 hour
auth param basic casesensitive on
# ACL lists
acl whitedomain srcdomain .mydomain.com
acl whitehosts src "/etc/squid/files/whitehosts.list"
acl whitesites dstdomain "/etc/squid/files/whitesites.list"
acl blocksites dstdomain "/etc/squid/files/blacksites.list"
acl blockurl url_regex -i "/etc/squid/files/block_url.list"
acl worktime time M-F 8:00-17:00
acl worktime time HF 18:00-23:00
acl safeports port 80
acl safeports port 443
acl safeports port 1025-65535
acl db_auth proxy_auth REQUIRED
acl CONNECT method CONNECT  # I have no idea what this is for
# Actions
http_access deny blockurl
http_access allow whitesites
http_access allow wortime
http_access deny !safeports
http_access allow db_auth whitehosts
http_access deny all

Я думаю мой iptables конфигурация в маршрутизатор не требуется, вы можете понять, что он хорошо работает с этими журналами. И я использую минимум, чтобы проверить, что это не из-за этого.

Я также провел анализ пакетов, я могу видеть пакеты, поступающие из внутренней сети, пакеты, исходящие и входящие от моего внешнего сетевого адаптера (разрешение имени, связанное с запрашиваемыми страницами), и все.

Итак, я вижу две основные проблемы, их может быть больше:

  1. Я не могу получить страницы из белого списка (прозрачный или прямой режим).
  2. Я могу получать страницы черного списка с правильными учетными данными, но только из командной строки, я не могу этого добиться с помощью своего веб-браузера.

Как я могу это исправить? Почему это так работает?