Вопрос или проблема
Я пытаюсь настроить интернет-тюрьму для виртуальной машины с Windows 7, используя Squid 5.9 (OpenSSL 3.0.2).
Гостевая машина защищена фаерволом, и единственной возможной связью с внешним миром является порт Squid; все остальное игнорируется. Squid настроен с редиректором, который отклоняет все, что не входит в ОЧЕНЬ маленький белый список, иначе отвечает OK. Для контроля HTTPS-соединений я также настроил Squid на перехват всех соединений. Был создан самоподписанный корневой сертификат “snake-oil.evil”, и сертификат был импортирован в хранилище доверенных корневых сертификатов как системы, так и Firefox. Squid настроен как явный прокси для HTTP и HTTPS как для Firefox, так и для IE.
Теперь проблема: в Firefox все кажется в порядке, но в той же виртуальной машине, на той же странице, Internet Explorer просто сообщает “Internet Explorer не может отобразить веб-страницу”. Запуск мастера устранения неполадок не дал дополнительных сведений. В логах доступа и редиректора я вижу, что IE пытается получить доступ к сайту 3 раза. Есть идеи, что может быть не так? Спасибо.
В конфигурации Squid:
http_port 3188 ssl-bump \
cert=/etc/squid/ssl_cert/snake-oil-ca.pem \
generate-host-certificates=on dynamic_cert_mem_cache_size=4MB
acl step1 at_step SslBump1
acl step2 at_step SslBump2
acl step3 at_step SslBump3
#ssl_bump peek step1
ssl_bump bump all
Комментирование/раскомментирование peek на step1 не кажется эффективным.
Некоторые данные о сертификате (конфиденциальные значения удалены)
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
xx:xx:...
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = CA, ST = ON, O = SnakeOil, CN = snake-oil.evil
Validity
Not Before: Dec 1 01:00:00 2024 GMT
Not After : Dec 1 01:00:00 2044 GMT
Subject: C = CA, ST = ON, O = SnakeOil, CN = snake-oil.evil
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
xx:xx...
...
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
xx:xx:..
X509v3 Basic Constraints: critical
CA:TRUE
X509v3 Authority Key Identifier:
keyid:xx:xx:...
DirName:/C=CA/ST=ON/O=SnakeOil/CN=snake-oil.evil
serial:xx:xx:...
X509v3 Key Usage: critical
Digital Signature, Certificate Sign, CRL Sign
Signature Algorithm: sha256WithRSAEncryption
Signature Value:
xx:xx:...
Журнал доступа для IE:
1734150297.708 128 192.168.56.107 NONE_NONE/200 0 CONNECT permitted.page:443 - HIER_NONE/- -
1734150297.754 44 192.168.56.107 NONE_NONE/200 0 CONNECT permitted.page:443 - HIER_NONE/- -
1734150297.797 41 192.168.56.107 NONE_NONE/200 0 CONNECT permitted.page:443 - HIER_NONE/- -
1734150297.838 39 192.168.56.107 NONE_NONE_ABORTED/200 0 CONNECT permitted.page:443 - HIER_NONE/- -
cache.log для IE:
2024/12/13 23:40:44.008 kid1| 28,3| Checklist.cc(70) preCheck: 0x60889a3a17a8 checking slow rules
2024/12/13 23:40:44.008 kid1| 28,3| Acl.cc(151) matches: checked: Safe_ports = 1
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: !Safe_ports = 0
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: http_access#1 = 0
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: CONNECT = 1
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: SSL_ports = 1
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: !SSL_ports = 0
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: http_access#2 = 0
2024/12/13 23:40:44.009 kid1| 28,3| Ip.cc(538) match: aclIpMatchIp: '192.168.56.107:49162' NOT found
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: localhost = 0
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: http_access#3 = 0
2024/12/13 23:40:44.009 kid1| 28,3| RegexData.cc(44) match: checking 'permitted.page:443'
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: manager = 0
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: http_access#4 = 0
2024/12/13 23:40:44.009 kid1| 28,3| Ip.cc(538) match: aclIpMatchIp: '192.168.56.107:49162' NOT found
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: localhost = 0
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: http_access#5 = 0
2024/12/13 23:40:44.009 kid1| 28,3| Ip.cc(538) match: aclIpMatchIp: '192.168.56.107:49162' found
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: snakeoil = 1
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: http_access#6 = 1
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: http_access = 1
2024/12/13 23:40:44.009 kid1| 28,3| Checklist.cc(63) markFinished: 0x60889a3a17a8 answer ALLOWED for match
2024/12/13 23:40:44.009 kid1| 28,3| Checklist.cc(163) checkCallback: ACLChecklist::checkCallback: 0x60889a3a17a8 answer=ALLOWED
2024/12/13 23:40:44.009 kid1| 28,3| Checklist.cc(70) preCheck: 0x60889a3a17a8 checking slow rules
2024/12/13 23:40:44.009 kid1| 28,3| Ip.cc(538) match: aclIpMatchIp: '192.168.56.107:49162' found
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: all = 1
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: (ssl_bump rule) = 1
2024/12/13 23:40:44.009 kid1| 28,3| Acl.cc(151) matches: checked: (ssl_bump rules) = 1
2024/12/13 23:40:44.009 kid1| 28,3| Checklist.cc(63) markFinished: 0x60889a3a17a8 answer ALLOWED for match
2024/12/13 23:40:44.009 kid1| 28,3| Checklist.cc(163) checkCallback: ACLChecklist::checkCallback: 0x60889a3a17a8 answer=ALLOWED
2024/12/13 23:40:44.010 kid1| 28,3| Checklist.cc(70) preCheck: 0x7fffc6abe7c0 checking fast ACLs
2024/12/13 23:40:44.010 kid1| 28,3| Acl.cc(151) matches: checked: (access_log daemon:/var/log/squid/access.log line) = 1
2024/12/13 23:40:44.010 kid1| 28,3| Acl.cc(151) matches: checked: access_log daemon:/var/log/squid/access.log = 1
2024/12/13 23:40:44.010 kid1| 28,3| Checklist.cc(63) markFinished: 0x7fffc6abe7c0 answer ALLOWED for match
Ответ или решение
Виртуальная "тюрьма интернета" с помощью Squid на Windows 7
Введение
Ваша задача – настроить Squid 5.9 как прокси-сервер для создания виртуальной "тюрьмы интернета" в Windows 7 с использованием системы управления доступом к интернету. Вы уже настроили высокозащищённое окружение с минимальным доступом. Однако, вы столкнулись с проблемой, что Internet Explorer (IE) не может открыть веб-страницы, в то время как Firefox работает нормально. Рассмотрим возможные причины и решения этой проблемы.
Анализ конфигурации
-
Настройки Squid:
http_port 3188 ssl-bump \ cert=/etc/squid/ssl_cert/snake-oil-ca.pem \ generate-host-certificates=on dynamic_cert_mem_cache_size=4MB acl step1 at_step SslBump1 acl step2 at_step SslBump2 acl step3 at_step SslBump3 #ssl_bump peek step1 ssl_bump bump all
Ваши настройки Squid на первый взгляд выглядят корректно. Вы используете
ssl_bump
для обработки HTTPS-соединений и настроили сертификаты. Однако обратите внимание на параметры генерации сертификатов. Убедитесь, что Squid может корректно работать с SSL-сертификатом, используемым в IE. -
Импорт сертификата:
Вы упомянули, что самоподписанный сертификат был импортирован в систему и в хранилище доверенных сертификатов Firefox. Убедитесь, что сертификат также правильно импортирован в хранилище IE. Часто возникают проблемы из-за недостаточных прав на использование сертификата. -
Логи доступа и кэша:
Логи доступа показывают, что Internet Explorer трижды пытается выполнить совместимый запрос, но в одном из запросов появляется ошибкаNONE_NONE_ABORTED
. Это может указывать на проблемные SSL-соединения или несоответствующий ответ сервера.
Причины и решения
-
Проблемы с сертификатами:
- Убедитесь, что сертификат
snake-oil.evil
корректно установлен в хранилище IE. Попробуйте удалить и заново импортировать сертификат, следя за тем, чтобы он был помещен в раздел "Доверенные корневые центры сертификации".
- Убедитесь, что сертификат
-
Настройки IE:
- Проверьте настройки прокси в Internet Explorer. Убедитесь, что у вас указаны правильный IP и порт (192.168.56.107:3188), а также что IE не настроен на автоматическое определение прокси.
-
Проблемы с SSL:
- Возможно, Internet Explorer менее терпим к стандартам безопасности по сравнению с Firefox. Попробуйте комментировать строку
#ssl_bump peek step1
, чтобы проверить, изменится ли это поведение, или исключить временные сертификаты.
- Возможно, Internet Explorer менее терпим к стандартам безопасности по сравнению с Firefox. Попробуйте комментировать строку
-
Политики безопасности:
- Internet Explorer может блокировать определенные типы контента ввиду своих внутренних политик безопасности. Убедитесь, что у вас включены необходимые параметры для подключения к экспериментальным веб-ресурсам.
-
Обновление и совместимость:
- Убедитесь, что все обновления Windows 7 установлены и нет проблем с совместимостью версии IE с используемым прокси-сервером Squid.
Заключение
Эффективное решение проблемы с доступом через Internet Explorer в вашем окружении "тюрьмы интернета" для Squid требует внимательного анализа конфигураций и настроек безопасности. Убедитесь в правильном установлении и доверии к сертификатам, настройках прокси и учтите возможные ограничения браузера. Если после всех проверок проблема сохраняется, можно рассмотреть возможность тестирования с другой версией IE или использовать другой браузер, что также может дать полезные результаты.