在 Squid 服务中配置 SSL Bumping
建议在 Squid 服务中配置 SSL Bumping 以处理加密连接。如果未配置 SSL Bumping,则代理服务器无法干预加密连接建立过程。在这种情况下,Kaspersky Web Traffic Security(反病毒和反网络钓鱼)的保护模块无法扫描在加密数据通道内传输的数据。这降低了企业 IT 基础架构的保护级别。
创建一个自签名的 SSL 证书
如要创建一个自签名的 SSL 证书:
转至 Squid 服务文件夹。为此,请执行命令:
cd /etc/squid
创建一个自签名的 SSL 证书。为此,请执行命令:
openssl req -new -newkey rsa:2048 -days -nodes -x509 -keyout bump.key -out bump.crt
您将被提示填写自签名 SSL 证书的字段。
请填写自签名 SSL 证书的字段。
证书文件 bump.crt 和私钥文件 bump.key 将按 PEM 格式进行创建。
私钥文件必须存储在安全位置以防对流量未经授权进行访问。
将证书文件转换为 DER 格式的受信任证书以便它可以被导入浏览器中。为此,请执行命令:
openssl x509 -in bump.crt -outform DER -out bump.der
将 bump.der 文件导入用户计算机上受信任的根认证权威列表。
当使用某些浏览器(诸如 Mozilla Firefox)时,您必须将证书也添加到浏览器存储。
将创建自签名 SSL 证书。
要在 Squid 服务中配置 SSL Bumping:
请确保所用的 Squid 服务支持必需的选项。为此,请执行命令:
squid -v
配置选项参数必须包含 --enable-ssl-crtd and --with-openssl 值。
把 PEM 格式的 SSL 证书复制到文件 /etc/squid/bump.crt 中。
把 PEM 格式的私钥复制到文件 /etc/squid/bump.key 中。
为 Diffie-Hellman 算法生成设置文件。为此,请执行命令:
openssl dhparam -outform PEM -out /etc/squid/bump_dhparam.pem 2048
配置 SSL 证书文件使用权限。为此,请根据所使用的操作系统运行以下命令:
CentOS, Red Hat Enterprise Linux 或 SUSE Linux Enterprise Server:
chown squid:squid /etc/squid/bump*
chmod 400 /etc/squid/bump*
Ubuntu 或 Debian:
chown proxy:proxy /etc/squid/bump*
chmod 400 /etc/squid/bump*
确定您的服务器上使用的 Squid 服务的版本。为此,请执行命令:
squid -v
利用版本的信息显示为格式 Squid Cache: 版本 .
如果 Squid 服务正在运行,将其停止。为此,请执行命令:
service squid stop
如果正在使用版本 3.5.x 的 Squid 服务:
为证书数据库创建目录然后初始化数据库。为此,请根据所使用的操作系统运行以下命令:
CentOS 或 Red Hat Enterprise Linux:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/lib64/squid/ssl_crtd -c -s /var/lib/squid/ssl_db
chown -R squid:squid /var/lib/squid
SUSE Linux Enterprise Server:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/sbin/ssl_crtd -c -s /var/lib/squid/ssl_db
chown -R squid:squid /var/lib/squid
Ubuntu 或 Debian:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/lib/squid/ssl_crtd -c -s /var/lib/squid/ssl_db
chown -R proxy:proxy:<группа> /var/lib/squid
在 /etc/squid/squid.conf 配置文件中进行以下更改:
在文件末尾,根据利用的操作系统添加以下指令:
CentOS 或 Red Hat Enterprise Linux:
sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
SUSE Linux Enterprise Server:
sslcrtd_program /usr/sbin/ssl_crtd -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
Ubuntu 或 Debian:
sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
用以下内容替换 http_port 指令:
http_port 3128 tcpkeepalive=60,30,3 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB cert=/etc/squid/bump.crt key=/etc/squid/bump.key cipher=HIGH:MEDIUM:!LOW:!RC4:!SEED:!IDEA:!3DES:!MD5:!EXP:!PSK:!DSS options=NO_TLSv1,NO_SSLv3,NO_SSLv2,SINGLE_DH_USE,SINGLE_ECDH_USE tls-dh=prime256v1:/etc/squid/bump_dhparam.pem
如果正在使用版本 4.x 的 Squid 服务:
为证书数据库创建目录然后初始化数据库。为此,请根据所使用的操作系统运行以下命令:
CentOS 或 Red Hat Enterprise Linux:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/lib64/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 20MB
chown -R squid:squid /var/lib/squid
SUSE Linux Enterprise Server:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/sbin/security_file_certgen -c -s /var/lib/squid/ssl_db -M 20MB
chown -R squid:squid /var/lib/squid
Ubuntu 或 Debian:
mkdir -p /var/lib/squid
rm -rf /var/lib/squid/ssl_db
/usr/lib/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 20MB
chown -R proxy:proxy /var/lib/squid
在 /etc/squid/squid.conf 配置文件中进行以下更改:
将以下指令添加到文件开始或第一个 http_access 指令前:
acl intermediate_fetching transaction_initiator certificate-fetching
http_access allow intermediate_fetching
根据利用的操作系统将以下指令添加到文件末尾:
CentOS 或 Red Hat Enterprise Linux:
sslcrtd_program /usr/lib64/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
SUSE Linux Enterprise Server:
sslcrtd_program /usr/sbin/security_file_certgen -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
Ubuntu 或 Debian:
sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 20MB
sslproxy_cert_error allow all
ssl_bump stare all
用以下内容替换 http_port 指令:
http_port 3128 tcpkeepalive=60,30,3 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=20MB tls-cert=/etc/squid/bump.crt tls-key=/etc/squid/bump.key cipher=HIGH:MEDIUM:!LOW:!RC4:!SEED:!IDEA:!3DES:!MD5:!EXP:!PSK:!DSS options=NO_TLSv1,NO_SSLv3,SINGLE_DH_USE,SINGLE_ECDH_USE tls-dh=prime256v1:/etc/squid/bump_dhparam.pem
重启 Squid 服务。为此,请执行命令:
service squid restart
配置 Squid 服务中的 SSL Bumping 将完成。