Я реализовал прозрачный прокси-сервер squid3 для ведения журнала.
Я не буду использовать SSL bumping / HTTPS для дешифрования, так как это слишком много для установки сертификата на каждого клиента.
Однако я хотел бы зарегистрировать CONNECT
Данные URL, переданные в squid. По какой-то причине он не регистрирует даже корневой домен на HTTPS-запросах, когда они определенно попадают в squid.
Есть какой-либо способ сделать это?
Мой /squid.conf
:
http_port 192.168.15.225:3128
http_port 127.0.0.1:3128 intercept
icp_port 0
dns_v4_first off
pid_filename /var/run/squid/squid.pid
cache_effective_user squid
cache_effective_group proxy
error_default_language en
icon_directory /usr/local/etc/squid/icons
visible_hostname localhost
cache_mgr admin@localhost
logformat squid %ts.%03tu %tr %>a %>eui %>Hs %<st %rm %ru %un %<A %mt
access_log /var/squid/logs/access.mac.log squid
cache_log /var/squid/logs/cache.log
cache_store_log none
netdb_filename /var/squid/logs/netdb.state
pinger_enable on
pinger_program /usr/local/libexec/squid/pinger
logfile_rotate 0
debug_options rotate=0
shutdown_lifetime 3 seconds
acl localnet src 10.10.10.0/24 192.168.15.0/24
forwarded_for on
uri_whitespace strip
acl dynamic urlpath_regex cgi-bin \?
cache deny dynamic
cache_mem 64 MB
maximum_object_size_in_memory 256 KB
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
minimum_object_size 0 KB
maximum_object_size 4 MB
cache_dir ufs /var/squid/cache 100 16 256
offline_mode off
cache_swap_low 90
cache_swap_high 95
cache allow all
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
acl allsrc src all
acl safeports port 21 70 80 210 280 443 488 563 591 631 777 901 3128 3129 1025-65535
acl sslports port 443 563
acl purge method PURGE
acl connect method CONNECT
acl HTTP proto HTTP
acl HTTPS proto HTTPS
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !safeports
http_access deny CONNECT !sslports
request_body_max_size 0 KB
delay_pools 1
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_initial_bucket_level 100
delay_access 1 allow allsrc
http_access allow localnet
http_access deny allsrc
Вы не можете войти CONNECT
запросы на прозрачный кеш. Запрос на соединение будет отправлен на сервер squid, только если ваш браузер настроен как прокси. Если браузер не настроен на использование squid в качестве прокси, он попытается согласовать TLS-соединение напрямую с местом назначения.
Если вы перенаправили это TLS-соединение, вам либо потребуется SSLBUMP, либо вы получите ошибки в своем браузере.
Но допустим, вы настроили свои браузеры на использование squid. Вы не получите URL. Все, что вы увидите, это полное доменное имя системы, в которой размещен веб-сайт. URL-адрес является частью HTTP-запросов, которые не отправляются до тех пор, пока не будет установлено соединение TLS.
По какой-то причине он не регистрирует даже корневой домен на HTTPS-запросах, когда они определенно попадают в squid.
Они не бьют по кальмарам. Как я уже сказал выше, это просто не работает. CONNECT не используется, если ваши браузеры не настроены на использование прокси-сервера, и вы, похоже, утверждаете, что настроены как прозрачный прокси. Это почти наверняка означает, что ваша операционная система просто направляет запрос, как и любой другой трафик.