Я хочу настроить прозрачный прокси HTTP / HTTPS для фильтрации исходящих запросов на основе имени хоста (домена) назначения. Сам прокси должен быть ненавязчивым и просто пересылать трафик, а не расшифровывать / изменять его. В случае HTTPS следует использовать расширение TLS SNI для извлечения имени хоста без дешифрования.
Несколько клиентов будут использовать прокси для доступа к нескольким хостам, поэтому прокси должен проверять, разрешено ли заданное имя хоста назначения для клиента, который сделал запрос.
Возможно ли такое с помощью squid (желательно версии 3.3.8)? Если да, не могли бы вы предоставить простой пример конфигурации, как это реализовать? Если нет, можете ли вы порекомендовать альтернативы, которые могут это сделать?
Дополнительная информация:
Большое спасибо!
То, что вам нужно, возможно с помощью squid, начиная с версии 3.5, потому что вам требуется функция «peek-and-splice», представленная в этой версии. Ваше действие называется «заглянуть»: http://wiki.squid-cache.org/Features/SslPeekAndSplice .
Используйте что-то вроде:
https_port 3130 intercept ssl-bump
ssl_bump peek all
ssl_bump splice all
intercept
делает прокси прозрачным.
Я не уверен в третьем требовании (использование DNS-имен), в этом режиме squid кажется действительно прозрачным. Но он должен извлекать информацию SNI, если она есть.
Вы можете использовать эту информацию в ACL:
acl aclname ssl::server_name .foo.com ...