Рейтинг:1

Невозможно получить доступ к HTTP-сайтам через HTTPS-прокси Squid

флаг bm

У меня есть рабочая конфигурация для поддержки SSL на Squid 4.4 и RHEL8. Однако я обнаружил, что несколько сайтов, на которых не настроен SSL (например, http://squidguard.org) не работают.

Мне пришлось собрать свою конфигурацию, используя несколько разных источников, поскольку ни один из них не предлагает окончательного подхода к настройке SSL-бампинга. Возможно, я упустил что-то, что позволило бы Squid обрабатывать как HTTP, так и HTTPS-трафик?

Вот что я вижу в журнале:

1624658033.150 59887 10.108.0.18 TCP_MISS/503 4300 ПОЛУЧИТЬ http://squidguard.com/favicon.ico - HIER_DIRECT/3.223.115.185 text/html
1624658042.966 60608 10.108.0.18 TCP_MISS/503 4392 ПОЛУЧИТЬ http://squidguard.com/ - HIER_DIRECT/3.223.115.185 text/html

Ошибка на странице браузера говорит

При попытке получить URL произошла следующая ошибка: http://squidguard.com/
Не удалось подключиться к 3.223.115.185.
Система вернула: (110) Время ожидания соединения истекло.
Удаленный хост или сеть могут быть отключены. Пожалуйста, повторите запрос.

Однако удаленный хост или сеть не отключены. Я могу связаться с ним, когда не прохожу через прокси.

Мой squid.conf:

acl vdi источник 10.108.0.0/20

acl SSL_ports порт 443
acl Safe_ports порт 80 # http
acl Safe_ports порт 21 # ftp
acl Safe_ports порт 443 # https
acl Safe_ports порт 70 # суслик
acl Safe_ports порт 210 # wais
acl Safe_ports port 1025-65535 # незарегистрированные порты
acl Safe_ports порт 280 # http-mgmt
acl Safe_ports порт 488 # gss-http
acl Safe_ports порт 591 # файлмейкер
acl Safe_ports порт 777 # мультилинк http
acl метод CONNECT CONNECT

acl middle_fetching transaction_initiator выборка сертификата
http_access разрешить промежуточную_выборку

http_access запретить !Safe_ports

http_access разрешить диспетчеру локального хоста
http_access менеджер запрета доступа

http_access разрешить vdi

http_access запретить всем

http_порт 0.0.0.0:3128
http_port 0.0.0.0:3129 ssl-bump cert=/etc/squid/ssl_cert/myCA.pem generate-host-certificates=on
https_port 0.0.0.0:3130 перехват ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB cert=/etc/squid/ssl_cert/myCA.pem

sslcrtd_program /usr/lib64/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 20 МБ
ssl_bump смотреть всем
ssl_bump поднять все

cache_dir ufs /var/spool/squid 100 16 256

coredump_dir /var/spool/squid

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^ суслик: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
шаблон_обновления . 0 20% 4320

shutdown_lifetime 1 секунда

У меня не работает iptables, поэтому у меня нет правил REDIRECT. Подозреваю, что проблема в этом.

roelvanmeer avatar
флаг ie
Если у вас нет правил REDIRECT, как вы получаете доступ к прокси? Если вы настроили прокси-сервер в своем браузере, прокси-сервер не прозрачен, и тогда вам вообще не нужен SSL-бампинг.
mandza avatar
флаг rs
Можете ли вы добавить свою конфигурацию iptables? Вы можете проверить это с помощью: sudo iptables -S
флаг cn
Я думал, что SSL-бампинг предназначен для MITM доступа к сайтам HTTPS, чтобы иметь возможность проверять трафик. HTTP-сайты уже не зашифрованы, поэтому переключение SSL не имеет значения.
флаг bm
@roelvanmeer Это было недоразумение с моей стороны; Я думал, что «SSL Bumping» и «Transparent Proxy» взаимозаменяемы.Я предполагаю, что ручная настройка прокси-сервера на клиентах делает правила REDIRECT ненужными, поскольку он работает без них. В конечном счете, проблема была вне прокси, сервера и клиентов. Как ни странно, брандмауэр, который я не контролирую, был настроен так, чтобы разрешать порт 443, но не порт 80. Это было исправлено, и теперь весь трафик идет как положено.
флаг bm
@chutz Проблема заключалась в том (см. мой комментарий выше), что я не мог получить доступ к веб-сайтам, настроенным только для HTTP; например, http://www.squidguard.org. Когда я пытался получить доступ к этим сайтам, время ожидания соединения истекало. На первый взгляд это может показаться несерьезной проблемой, поскольку большая часть Интернета перешла на HTTPS. Однако есть случаи, вызывающие проблемы. В частности, CRL обычно обслуживаются по протоколу HTTP. Эти были заблокированы.
Рейтинг:0
флаг bm

Вопрос спорный. Источник проблемы находился за пределами возможностей Squid или даже сервера, на котором он запущен. Порт 80 был заблокирован брандмауэром.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.