Интернет-тюрьма с Squid для Windows 7

Вопрос или проблема

Я пытаюсь настроить интернет-тюрьму для виртуальной машины с 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 работает нормально. Рассмотрим возможные причины и решения этой проблемы.

Анализ конфигурации

  1. Настройки 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.

  2. Импорт сертификата:
    Вы упомянули, что самоподписанный сертификат был импортирован в систему и в хранилище доверенных сертификатов Firefox. Убедитесь, что сертификат также правильно импортирован в хранилище IE. Часто возникают проблемы из-за недостаточных прав на использование сертификата.

  3. Логи доступа и кэша:
    Логи доступа показывают, что Internet Explorer трижды пытается выполнить совместимый запрос, но в одном из запросов появляется ошибка NONE_NONE_ABORTED. Это может указывать на проблемные SSL-соединения или несоответствующий ответ сервера.

Причины и решения

  1. Проблемы с сертификатами:

    • Убедитесь, что сертификат snake-oil.evil корректно установлен в хранилище IE. Попробуйте удалить и заново импортировать сертификат, следя за тем, чтобы он был помещен в раздел "Доверенные корневые центры сертификации".
  2. Настройки IE:

    • Проверьте настройки прокси в Internet Explorer. Убедитесь, что у вас указаны правильный IP и порт (192.168.56.107:3188), а также что IE не настроен на автоматическое определение прокси.
  3. Проблемы с SSL:

    • Возможно, Internet Explorer менее терпим к стандартам безопасности по сравнению с Firefox. Попробуйте комментировать строку #ssl_bump peek step1, чтобы проверить, изменится ли это поведение, или исключить временные сертификаты.
  4. Политики безопасности:

    • Internet Explorer может блокировать определенные типы контента ввиду своих внутренних политик безопасности. Убедитесь, что у вас включены необходимые параметры для подключения к экспериментальным веб-ресурсам.
  5. Обновление и совместимость:

    • Убедитесь, что все обновления Windows 7 установлены и нет проблем с совместимостью версии IE с используемым прокси-сервером Squid.

Заключение

Эффективное решение проблемы с доступом через Internet Explorer в вашем окружении "тюрьмы интернета" для Squid требует внимательного анализа конфигураций и настроек безопасности. Убедитесь в правильном установлении и доверии к сертификатам, настройках прокси и учтите возможные ограничения браузера. Если после всех проверок проблема сохраняется, можно рассмотреть возможность тестирования с другой версией IE или использовать другой браузер, что также может дать полезные результаты.

Оцените материал
Добавить комментарий

Капча загружается...