CentOS下搭建Squid代理服务器

“量子扰动超导探测器。战争期间用它搜索潜艇,寻找敌人的赛伯武器系统.”

“哦?海军的玩意儿?打仗的时候用过?这么说,乌贼能读出你大脑芯片上储存的东西?”她停住脚步。我觉得她藏在那两片镜面后面的一双眼睛正死死盯着我。

“要说探测磁场,哪怕最低级的乌贼都比过去的磁力探测器强十亿倍,就跟在体育场的一片欢呼声中听清谁说的一句悄悄话似的。

‍‍“squid”一般是指“量子扰动超导探测器(当然今天要讲的是开源系统中的代理服务器啦)”‍‍

‍Squid代理服务器

Squid

Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Linux一类系统运行。

对于Web用户来说,Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率。Squid不仅支持HTTP协议,还支持FTP、gopher、SSL和WAIS等协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

Squid的另一个优越性在于它使用访问控制清单(ACL)访问权限清单(ARL)。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。

Squid对硬件的要求是内存一定要大,不应小于128M,硬盘转速越快越好,最好使用服务器专用SCSI硬盘,处理器要求不高,400MH以上既可。

通过模拟配置代理服务器,实现以下目标:

1.代理服务器可以将远程的Web服务器页面缓存在本地

2.代理服务器端口设置为80端口

3.用户通过访问代理服务器即可获得远程Web服务器上的页面内容

4.远程Web服务器对客户端用户是透明的

5.利用缓存机制提高网站的响应速度

CentOS下搭建Squid代理服务器_第1张图片

‍如图,分别在web服务器、代理服务器和客户端进行配置:‍

1

‍web服务器配置‍

1)装包

# yum -y install httpd

#systemctl start httpd

#systemctl enable httpd

2)为Web访问建立测试文件

#cat /var/www/html/index.html

2

‍部署Squid代理服务器‍

1)装包:

# yum -y install squid

2)修改配置文件:

# vim /etc/squid/squid.conf.. ..http_port 80 vhost

#设置反向代理visible_hostname www.wuke.com #设置主机名,默认没有该语句

cache_peer 192.168.2.100 parent 80 0 originserver #定义后端真实服务器信息

cache_dir ufs /var/spool/squid 200 16 256 #硬盘缓存,缓存容量为200M,自动创建16个一级子目录和256个二级子目录

http_access allow all #允许本机所有主机使用代理服务器

3)启服务

# systemctl start squid

#systemctl enable squid

4)squid服务通过TCP 80端口监听客户端请求:

# netstat -anptu | grep 80

tcp 0 0 :::80 :::* LISTEN 3213/(squid)

3

‍客户端测试‍

客户端开启浏览器访问

# curl http://192.168.4.5 #返回的是192.168.2.100服务的页面

 

搭建服务器:

1、yum 安装 squid 和httpd-tools  (-y 全自动安装)

#更新yum
yum update
 
yum install squid -y
yum install httpd-tools -y
2.生成密码文件

mkdir /etc/squid3/
#username 是用户名
htpasswd -cd /etc/squid3/passwords username
#提示输入密码,输入即可 注意密码不要超过 8 位
 
#测试密码文件
/usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
# 输入 用户名 密码
username password
# 提示 OK 说明成功,ERR 是有问题,请检查一下之前步骤
OK
# 测试完成,crtl + c 打断
 

3.配置squid.conf文件

vi /etc/squid/squid.conf
配置文件加入:

#ncsa_auth的路径要找到自己安装的地方。一般在/usr/lib/squid/或者/usr/lib/squid3/视版本而定。
 
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
acl ncsa_users  proxy_auth REQUIRED
http_access allow ncsa_users
 
#把http_access allow localnet , http_access allos localhost屏蔽掉。
 
# 设置来源IP白名单,增加的这两行要在 http_access deny all 前面,因为squid配置文件是从上往下读的
 
acl localnet src 222.93.8.140
http_access allow client
# And finally deny all other access to this proxy
http_access deny all
4.修改完配置文件后启动

# 先初始化一下
squid -z
# 启动
systemctl start squid.service
# 停止
systemctl stop squid.service
# 重启
#配置开机自启动
systemctl enable squid.service
附录:  /etc/squid/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
 
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid3/passwords
acl ncsa_users  proxy_auth REQUIRED
http_access allow ncsa_users
 
acl localnet src 222.93.8.140
# And finally deny all other access to this proxy
http_access deny all
 
# Squid normally listens to port 3128
lhttp_port 3888
 
# 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
 

参考其他文档:https://blog.csdn.net/wlwlomo/article/details/89679004

https://blog.csdn.net/Qwertyuiop2016/article/details/90183014

你可能感兴趣的:(安全防护,教程全集)