Squid应用实例

第1章应用代理概述

1.1概念

应用代理(Application Proxy)技术是指在某一台服务器上运行代理服务器软件,对网络上的信息进行监听和检查,并对访问内网的数据进行过滤,从而起到隔断内网与网外直接通信的作用。

1.2正向代理

用户通过代理服务器去访问Internet(如下图),该服务器在用户视角属于正向代理。
在这里插入图片描述

1.3反向代理

用户要访问Web服务,这些web服务被代理服务器所映射,该代理服务器从用户侧角度就是反向代理。
在这里插入图片描述

1.4代理方案

Squid+Stunnel Server +Stunnel Client+PC,且Squid和Stunnel Server部署在网络同一侧,Stunnel Client和PC在另外一侧。
在这里插入图片描述

第2章 Squid

2.1介绍

Squid是一个开源的高性能的代理缓存服务器,Squid支持HTTP、HTTPS和等FTP协议。Squid 提供丰富的访问控制、授权和日志记录环境来开发 Web 代理和内容服务应用程序。Squid 提供了一组丰富的流量优化选项,其中大部分默认启用,以实现更简单的安装和更高的性能
官方网站:http://www.squid-cache.org/

2.2安装

linux版本:CentOS 7.4

2.2.2自动安装httpd

yum -y install httpd

2.2.3自动安装squid

(1)安装命令:yum -y install squid 或者自行到官网下载。
(2)查看版本:squid -v
(3)默认配置文件:/etc/squid/squid.conf

2.2.4编译安装squid

./configure --prefix=/usr/local/squid --enable-arp-acl --enable-linux-netfilter --enable-linux-tproxy --enable-async-io=100 --enable-underscore --enable-poll --enable-gnuregex
make && makei install

2.3配置

2.3.1生成密钥文件

openssl req -new -keyout ./key.pem -nodes -x509 -days 365 -out ./cert.pem

2.3.2生成访问用户

htpasswd -c /etc/squid/passwd username

2.3.3参考配置文件

acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 “this” network (LAN)
acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

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 # 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

acl hasRequest has request
access_log daemon:/var/log/squid/access.log hasRequest

auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 2
auth_param basic credentialsttl 10 hours
auth_param basic realm welecome to using valen proxy
acl AuthUsers proxy_auth REQUIRED
http_access allow AuthUsers
http_access deny all
htcp_access allow localnet
htcp_access deny all
visible_hostname valen-vm01
dns_nameservers 1.1.1.1
http_port 3128 #自定义端口
https_port 0.0.0.0:31443 #自定义端口
tls-cert=/etc/squid/publickey.pem #自定义密钥文件
tls-key=/etc/squid/privatekey.pem #自定义密钥文件
cache_mem 60 MB

2.4运行

systemctl start squid

第3章 Stunnel

3.1介绍

Stunnel是一个自由的跨平台软件,用于提供全局的TLS/SSL服务。针对本身无法进行TLS或SSL通信的客户端及服务器,Stunnel可提供安全的加密连接。

3.2安装

3.2.1自动安装stunnel

yum install stunnel4

3.2.2编译安装stunnel

wget https://www.stunnel.org/downloads/stunnel-5.60.tar.gz
./configure
make && make install

3.2.3升级openssl

Stunnel 的版本和openssl有匹配关系。
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1k.tar.gz
tar -zxvf openssl-1.1.1k.tar.gz
./config
make && make install
ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

3.3配置

3.3.1生成密钥文件

openssl req -new -x509 -days 3650 -nodes -out stunnel.pem -keyout stunnel.pem

3.3.2服务端配置文件

cert = /etc/stunnel/stunnel.pem
key = /etc/stunnel/stunnel.pem
options = NO_SSLv3
[squid-proxy]
; 服务监听的端口,client要连接这个端口与server通信
accept = 9999
; 服务要连接的端口,连接到squid的3128端口,将数据发给squid
connect = 3128

3.3.3客户端配置文件

[squid-proxy]
accept = 8888
; 要连接到的stunnel server的ip与端口
connect = IP:9999
verify = 2
CAfile = stunnel.pem

3.4运行

./stunnel

第4章 代理测试

4.1 FireFox浏览器设置

代理上网设置:部署stunnel的IP 端口8888
测试成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值