环境准备:服务端centos7海外服务器1台安装squid,客户端centos内网服务器一台安装stunnel,可以是你的工作网络
服务端安装squid
1.安装squid
yum install squid openssl openssl-devel
cd /etc/squid
openssl req -new > tank.csr //要求输入密码和确认密码
openssl rsa -in privkey.pem -out tank.key //输入上面输入的密码
openssl x509 -in tank.csr -out tank.crt -req -signkey tank.key -days 3650
2.配置squid
vi /etc/squid/squid.conf
#####增加如下内容
acl OverConnLimit maxconn 10 //限制每个IP最大允许10个连接,防止攻击
cache_swap_low 10 //最小允许使用swap 10%
cache_swap_high 25 //最大允许使用swap 25%
cache_mem 300 MB //可使用内存
#####修改内容
cache_dir ufs /var/spool/squid 2048 16 256 //2048存储空间大小,一级目录16个,二级256个
https_port 4430 cert=/etc/squid/tank.crt key=/etc/squid/tank.key //端口可自定义
#http_access allow all
# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager
# 允许来自本地的请求
http_access allow localhost
# 拒绝所有请求,最后兜底的规则
http_access deny all
3.启动squid
squid -z
squid start
3.1安装stunnel服务端
apt-get install stunnel
cd /etc/stunnel
openssl req -new -x509 -key key.pem -out cert.pem -days 3650
pid = /var/stunnel/stunnel.pid
debug = 7
output = /var/stunnel/stunnel.log
setuid = stunnel4
setgid = stunnel4
[openvpn]
cert=/etc/stunnel/cert.pem
key=/etc/stunnel/key.pem
accept = 0.0.0.0:14430
connect = 127.0.0.1:4430
4.客户端安装stunnel
yum install stunnel
vi /etc/stunnel/stunnel.conf
client = yes
fips = no
[https]
accept = 30898
connect = squid的IP:14430
verify = 2
#用来进行证书验证的文件(里面有stunnel server的证书)
CAfile = /etc/stunnel/ss.pem
5.启动stunnel
stunnel //启动,默认配置文件路径 /etc/stunnel/stunnel.conf
5.添加认证用户yang19
htpasswd -c /etc/squid/passwd yang19
# vim /etc/squid/squid.conf //添加以下内容
auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/passwd //认证方式为basic,认证程序路径和密码文件路径
auth_param basic children 5 //认证程序的进程数
auth_param basic credentialsttl 1 hours //认证有效时间
auth_param basic realm my test prosy //浏览器显示输入用户/密码对话框时,显示的内容
acl test123 proxy_auth REQUIRED
http_access allow test123 //普通用户需要通过认证才能访问
http_access deny all //最下面,匹配是从上到下的
安装之后在浏览器设置代理即可:内网客户端ip:30898
shell代理上网配置:
在 ~/.bashrc里添加如下语句则有代理,取消之,则无。
proxy有密码方式:
export http_proxy=http://username:passwd@proxyip:port
export https_proxy=http://username:passwd@proxyip:port
proxy无密码方式
export http_proxy=http://proxyip:port
export https_proxy=http://proxyip:port
编辑之后注意需要打开新的终端设置才会生效!!!
添加认证
auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/passwd
# children 设置后台启动几个认证程序进程
auth_param basic children 3
# credentialsttl 设置认证失效时间,过期后需重新认证
auth_param basic credentialsttl 24 hours
# realm 设置认证时返回头里夹带的信息“wlecome to using my proxy”
auth_param basic realm welecome to using my proxy
# 添加名为AuthUsers访问列表,表示通过认证的用户
acl AuthUsers proxy_auth REQUIRED
# 允许AuthUsers的代理请求
http_access allow AuthUsers