Прозрачный HTTP/HTTPS прокси для фильтрации доменов [закрыто]

Я хочу настроить прозрачный HTTP/HTTPS прокси для фильтрации исходящих запросов на основе имени хоста назначения (домена). Сам прокси должен быть неинтрузивным и просто пересылать трафик, а не расшифровывать/модифицировать его. В случае HTTPS он должен использовать расширение TLS SNI для извлечения имени хоста без расшифровки.

Несколько клиентов будут использовать прокси для доступа к нескольким хостам, поэтому прокси должен проверять, разрешено ли данное имя хоста назначения для клиента, который сделал запрос.

Возможно ли это с помощью squid (желательно версии 3.3.8)? Если да, не могли бы вы предоставить простой пример конфигурации, как это реализовать? Если нет, можете ли вы порекомендовать альтернативные варианты, которые могут это сделать?

Дополнительная информация:

  • сервер, на котором должен работать прокси - Ubuntu 14.04
  • перенаправление трафика осуществляется другим маршрутизатором на фиксированный порт этого сервера
  • прокси должен использовать DNS как обычно для разрешения имени хоста назначения при перенаправлении запросов

Большое спасибо!

4
задан 16 December 2015 в 18:58
1 ответ

То, что вам нужно, возможно с кальмаром, начиная с версии 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

перехват делает прокси прозрачным.

Я не уверен насчет третьего требования (использование DNS имен), squid кажется действительно прозрачным в этом режиме. Но он должен извлекать информацию SNI, если она есть.

Можно использовать эту информацию в ACL:

acl aclname ssl::server_name .foo.com ...
2
ответ дан 3 December 2019 в 03:56

Теги

Похожие вопросы