Centos7.6下使用Squid快速搭建带认证的HTTP代理服务器

一、材料

1.腾讯云20IP服务器

2.CentOS 7.6 64位

二、准备工作

腾讯云上配置好两块网卡和20个弹性IP,这些网上很多,不再赘述。

三、安装Squid

1.安装

yum install squid -y
yum install httpd-tools -y

2.生成密码文件

mkdir /etc/squid3/
# liangchen 是用户名
htpasswd -cd /etc/squid3/passwords liangchen
# 提示输入密码,liangchen
# 注意密码不要超过8位

3.测试密码文件

/usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
# 输入 用户名 密码
liangchen liangchen
# 提示OK说明成功,ERR是有问题,请检查一下之前步骤
OK
 
# 测试完成,crtl + c 打断

四、Squid配置文件

vim /etc/squid/squid.conf

1.配置用户名密码授权

# 在最后添加
 
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
 
# 这里是端口号,可以按需修改
http_port 3128

2.注意下面的配置项,我给注掉了,要不然怎么密码都不对

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all

3.高匿配置

request_header_access X-Forwarded-For deny all
request_header_access From deny all
request_header_access Via deny all

4.多IP出口配置

      默认都是从主IP走的,这样就达不到20个代理的需求了

# set out - ip 配置出口IP
acl ip10 myip 172.27.0.10
acl ip11 myip 172.27.0.11
acl ip12 myip 172.27.0.12

#set out-ip 多公网IP关键配置;下面的配置是指
#若使用代理IP14.29.10.118则走ip118的ip(14.29.10.118);
#若使用代理IP14.29.10.119则走ip119的ip(14.29.10.119);
#若使用代理IP14.29.10.120则走ip120的ip(14.29.10.120)
tcp_outgoing_address 172.27.0.10 ip10
tcp_outgoing_address 172.27.0.11 ip11
tcp_outgoing_address 172.27.0.12 ip12

5.下面是squid.conf全部的配置

#
# Recommended minimum configuration:
#

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8	# RFC1918 possible internal network
acl localnet src 172.16.0.0/12	# RFC1918 possible internal network
acl localnet src 192.168.0.0/16	# RFC1918 possible internal network
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

#
# Recommended minimum Access Permission configuration:
#
# Deny requests to certain unsafe ports
#http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
#http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost
#http_access allow localhost manager
#http_access deny manager

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
#http_access allow localhost

# And finally deny all other access to this proxy
#http_access deny all

# Squid normally listens to port 3128
http_port 3128

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern -i (/cgi-bin/|\?) 0	0%	0
refresh_pattern .		0	20%	4320


auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy

acl authenticated proxy_auth REQUIRED
http_access allow authenticated

acl auth_user proxy_auth REQUIRED
http_access allow auth_user

request_header_access X-Forwarded-For deny all
request_header_access From deny all
request_header_access Via deny all

# set out - ip 配置出口IP
acl ip10 myip 172.27.0.10
acl ip11 myip 172.27.0.11
acl ip12 myip 172.27.0.12

#set out-ip 多公网IP关键配置;下面的配置是指
#若使用代理IP14.29.10.118则走ip118的ip(14.29.10.118);
#若使用代理IP14.29.10.119则走ip119的ip(14.29.10.119);
#若使用代理IP14.29.10.120则走ip120的ip(14.29.10.120)
tcp_outgoing_address 172.27.0.10 ip10
tcp_outgoing_address 172.27.0.11 ip11
tcp_outgoing_address 172.27.0.12 ip12

五、Squid启停

# 启动
systemctl start squid.service
# 停止
systemctl stop squid.service
# 重启
systemctl restart squid.service

六、Squid开机启动

很简单的办法在/etc/rc.local中加入squid启动命令

vim /etc/rc.local
#最后一行添加
systemctl start squid.service

 

你可能感兴趣的:(技术记录)