Squid Proxy Chain HTTPS условно - PullRequest
       24

Squid Proxy Chain HTTPS условно

0 голосов
/ 04 октября 2019

Я пытаюсь использовать Squid в качестве прокси для пересылки HTTPS-запросов в AWS другому прокси-серверу Squid в определенном регионе, чтобы использовать конечные точки VPC. В основном это

Клиент -> Регион локального прокси -> Удаленный прокси

Однако локальный прокси-сервер может отправлять запросы как для доменов, не являющихся доменами .amazonaws.com, так и непосредственно к источнику, а также для запросов, которыеместные в этом регионе. Мне не нужно MiTM трафика, просто условно перенаправить его на основе региона, содержащегося в доменном имени. Это мой файл squid.conf

cache_effective_user squid
## Define acls for local networks that are forwarding here
acl rfc_1918 src 10.0.0.0/8        # RFC1918 possible internal network
acl rfc_1918 src 172.16.0.0/12     # RFC1918 possible internal network
acl rfc_1918 src 192.168.0.0/16    # RFC1918 possible internal network
acl localnet src fc00::/7          # RFC 4193 local private network range
acl localnet src fe80::/10         # RFC 4291 link-local (directly plugged) machines
acl localnet src 127.0.0.1         # localhost loopback

## Additional ACLs
acl ssl_ports port 443             # ssl
acl safe_ports port 80             # http
acl safe_ports port 21             # ftp
acl safe_ports port 443            # https
acl safe_ports port 70             # gopher
acl safe_ports port 210            # wais
acl safe_ports port 1025-65535     # unregistered ports
acl safe_ports port 280            # http-mgmt
acl safe_ports port 488            # gss-http
acl safe_ports port 591            # filemaker
acl safe_ports port 777            # multiling http
acl CONNECT method CONNECT

## Define acls for amazonaws.com
acl aws_domain dstdomain .amazonaws.com
acl us_east_1 dstdomain .s3.amazonaws.com
acl us_east_1 dstdomain .sts.amazonaws.com
acl us_east_1 dstdomain .cloudfront.amazonaws.com
acl us_west_2 dstdomain .globalaccelerator.amazonaws.com
acl us_east_1 dstdomain .iam.amazonaws.com
acl us_east_1 dstdomain .route53.amazonaws.com
acl us_east_1 dstdomain .queue.amazonaws.com
acl us_east_1 dstdomain .sdb.amazonaws.com
acl us_east_1 dstdomain .waf.amazonaws.com
acl us_east_1 dstdomain .us-east-1.amazonaws.com
acl us_east_2 dstdomain .us-east-2.amazonaws.com
acl us_west_2 dstdomain .us-west-2.amazonaws.com
acl us_east_1_alt dstdom_regex \.us-east-1\..*?\.amazonaws.com
acl us_east_2_alt dstdom_regex \.us-east-2\..*?\.amazonaws.com
acl us_west_2_alt dstdom_regex \.us-west-2\..*?\.amazonaws.com

## Deny access to anything other than SSL
http_access deny !safe_ports
http_access deny CONNECT !ssl_ports

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

## Allow access from the source proxies and allowing
## non amazonaws.com to pass seamlessly
http_access allow rfc_1918 !aws_domain
http_access allow localnet !aws_domain

## Now specify the cache peer for each region
http_access allow rfc_1918 us_east_1
http_access allow rfc_1918 us_east_1_alt
cache_peer us-east-2.proxy.local parent 3128 0 no-query proxy-only
cache_peer_access us-east-2.proxy.local allow us_east_2
cache_peer_access us-east-2.proxy.local allow us_east_2_alt
cache_peer_access us-east-2.proxy.local deny all

## Finally deny all other access to the proxy
http_access deny all

## Listen on 3128
http_port 3128

## Logging
access_log stdio:/var/log/squid/access.log
strip_query_terms off
logfile_rotate 1

## Turn off caching
cache deny all

## Enable the X-Forwarded-For header
forwarded_for on

## Suppress sending squid version information
httpd_suppress_version_string on

## How long to wait when shutting down squid
shutdown_lifetime 30 seconds

## Hostname
visible_hostname aws_proxy

## Prefer ipv4 over v6
dns_v4_first on

Все, что находится в локальном регионе (us-east-1) или в домене non-aws, работает нормально. Однако, когда я пытаюсь выйти из региона, запрос отклоняется и не пересылается на одноранговый узел: 1570151698.021 0 172.27.0.1 TCP_DENIED/403 3819 CONNECT s3.us-east-2.amazonaws.com:443 - HIER_NONE/- text/html

Я чувствую, что исчерпал каждый поиск в Google, который я могу выдать по этой проблеме. Чего мне не хватает?

...