Squid Conf
- 参考
警告
- ssl_bump 不能指定 cache_peer
- 可以配置全部转发
基础配置
# 监听端口
http_port 7777
# 定义本地网络
acl localnet src 127.0.0.0/24
acl localnet src 192.168.0.0/16
acl localnet src 10.0.0.0/8
http_access allow localnet
# 缓存目录 - 500MB - 第一级 16 - 第二级 256
cache_dir ufs .caache 500 16 256
上级转发配置
# 上级缓存
cache_peer 127.0.0.1 parent 7777 7 no-query
# FTP 不转发 - 直接访问
acl ftp proto FTP
always_direct allow ftp
# 全部走 cache_peer
never_direct allow all
推荐配置
# 最小缓存对象
maximum_object_size 1 MB
# 不发送版本信息
httpd_suppress_version_string on
# 定义本地网络
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
# acl localnet src all
# 定义安全端口
acl SSL_ports port 443
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 # waiss
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
# 识别 CONNECT 方法
acl CONNECT method CONNECT
# 识别查询参数
acl QUERY urlpath_regex cgi-bin \? asp aspx jsp
# 带参数不缓存
cache deny QUERY
# 只允许安全端口
http_access deny !Safe_ports
# 只允许 CONNECT SSL 端口
http_access deny CONNECT !SSL_ports
# 只允许本地访问 cachemgr
http_access allow localhost manager
http_access deny manager
# 不允许访问本地
http_access deny to_localhost
# 允许本地访问
http_access allow localnet
http_access allow localhost
http_access deny all
网络配置
http_port port [mode] [options]
http_port hostname:port [mode] [options]
http_port 1.2.3.4:port [mode] [options]
- mode - 默认为转发模式
- intercept - IP-Layer NAT interception
- tproxy - Linux TPROXY
- accel - Accelerator / reverse proxy
- ssl-bump
- generate-host-certificates - on/off
- dynamic_cert_mem_cache_size=SIZE - 默认 4MB
- options
- TLS/SSL
- cipher=
- options=
- TLS/SSL
SSL
ssl_bump <action> [!]acl ...
- action
- splice - 默认 - 转为 TCP 通道,不解密代理流量
- bump
- SslBump1 和客户端建立安全链接,然后连接到服务端
- SslBump2 - 服务端建立连接
- SslBump3 - 模仿 服务端 证书
- peek
- SslBump1 接收到客户端证书
- SslBump2 接收到服务端证书
- 根据获取的证书信息判断是否 bump 进入 step 3
- stare
- 类似 peed,控制 splice
- terminate
- 终止连接
# 不做特殊处理 - 可用于记录 SNI 信息
ssl_bump peek all
ssl_bump splice all
# 处理所有
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
ssl_bump splice all