允许非标准 http 端口上的 squid 透明代理

允许非标准 http 端口上的 squid 透明代理

请耐心等待,因为我对鱿鱼还很陌生。

我需要设置一个 Squid 透明代理来进行 NAT,并允许在 AWS 中进行 URL 过滤。我按照这个AWS 链接AWS 链接,一切按预期运行。但是,代理仅适用于监听 80 或 443 的站点。现在我需要允许一些非标准端口(如 8080),因为一些客户端需要与监听它们的服务器通信。

以下是当前的 squid 配置。

visible_hostname squid
cache deny all

# Log format and rotation
logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %ssl::>sni %Sh/%<a %mt
logfile_rotate 10
debug_options rotate=10

# Handling HTTP requests
http_port 3128
http_port 3129 intercept
acl allowed_http_sites dstdomain "/etc/squid/whitelist.txt"
http_access allow allowed_http_sites

# Handling HTTPS requests
https_port 3130 cert=/etc/squid/ssl/squid.pem ssl-bump intercept
acl SSL_port port 443
http_access allow SSL_port
acl allowed_https_sites ssl::server_name "/etc/squid/whitelist.txt"
acl step1 at_step SslBump1
acl step2 at_step SslBump2
acl step3 at_step SslBump3
ssl_bump peek step1 all
ssl_bump peek step2 allowed_https_sites
ssl_bump splice step3 allowed_https_sites
ssl_bump terminate step2 all
#below line is custom- not from aws. This is to allow self signed certs on trusted sites
sslproxy_cert_error allow allowed_https_sites
http_access deny all

我如何在这里也允许 8080?请注意,这是一个透明代理,因此我不想在客户端更改任何设置。

我在配置文件中添加了以下几行,但是似乎不起作用。

acl SSL_ports port 8080
acl Safe_ports port 8080

答案1

好的,我刚刚知道该怎么做了。不需要更改 conf 文件中的任何内容。只需添加如下 iptables 规则即可。

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 3129

AWS 文档本身给出了 80 和 443 所需的规则。

相关内容