squid服务器安装与配置

1、获得源代码进行编译安装
[root@localhost ~]# tar -zxf squid-3.5.23.tar.gz 			//解包
[root@localhost ~]# cd squid-3.5.23/						//进入安装包目录
[root@localhost squid-3.5.23]# mkdir /usr/local/squid		//创建安装目录
[root@localhost squid-3.5.23]# ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-async-io=240 --enable-default-err-language=Simplify_Chinese --disable-poll --enable-epoll --enable-gnuregex
	--prefix=/usr/local/squid					##指定安装路径
	--sysconfdir=/etc							##单独将配置文件修改到/etc
	--enable-linux-netfilter					##使用内核过滤
	--enable-async-io=240					##设置异步I/0,提升存储性能
	--enable-default-err-language=Simplify_Chinese		##错误信息的显示语言
	--disable-poll							##禁用默认的poll模式
	--enable-epoll							##开启epoll模式,提升性能
	--enable-gnuregex						##使用GNU正则表达式

echo $? //返回上一条命令的执行结果。0成功,否则失败
&& //前一条命令执行成功后执行后一条命令
[root@localhost squid-3.5.23]#make && make install //编译安装,大概20分钟

[root@localhost ~]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/ 		//创建链接文件
[root@localhost ~]# useradd -M -s /sbin/nologin squid 			//创建程序用户
[root@localhost ~]# chown -R squid:squid /usr/local/squid/var/ 		//修改属主属组
2、squid的主配置文件位于:/etc/squid.conf
[root@localhost ~]#vim /etc/squid.conf
61行手动添加  cache_effective_user squid
62行手动添加  cache_effective_group squid					//指定squid的程序用户
:wq!														//保存退出

3、squid服务的运行控制

[root@localhost ~]# squid -k parse						//检查配置文件语法是否正确
[root@localhost ~]# squid –z							//初始化缓存目录
[root@localhost ~]# squid								//启动squid服务
[root@localhost ~]# netstat -anpt | grep "squid"			//检查squid服务上完箭筒状态
tcp6       0      0 :::3128                 :::*                    LISTEN      45389/(squid-1) 

4、asd
5、asd
配置传统代理
传统代理的特点在于客户机的相关程序必须指定正确的代理服务器的地址和端口号
环境
linux server 1 192.168.100.101/24 http服务
linux server 2 192.168.100.100/24 squid代理
win7 192.168.100.10/24 客户端
在这里插入图片描述
1、squid服务器配置
修改squid配置文件。
http_access allow all 允许所有所有主机使用代理服务器放在“http_access deny all”之前 56行
http_port 3128 //设置http服务的端口号。59行
reply_body_max_size 10 MB //设置下载的最大文件大小为10MB。手写
:wq!
[root@localhost ~]# systemctl restart squid //重启squid服务

2、客户端代理配置
浏览器菜单栏工具internet选项连接局域网设置勾选“为LAN使用代理服务器”,填写代理服务器的ip和端口号确定

3、代理服务器的验证
[root@localhost ~]# tail -f /usr/local/squid/var/logs/access.log //查看代理服务器上的日志文件
web服务器查看日志

[root@localhost ~]# tail /usr/local/httpd/logs/access_log	
	//查看web服务器的访问日志

透明代理

配置透明代理
透明代理提供的服务功能与传统代理是一致的。但透明代理的实现是依赖于默认网关和防火墙的重定向策略,因此更适用于为局域网主机提供服务,而不适合给internet中的客户机提供服务
环境
linux server 1搭建web服务器 vm1 192.168.200.2/24
linux server 2 搭建squid服务 vm1 192.168.200.1/24
vm2 192.168.100.102/24
win7 客户端 vm 2 192.168.100.33/24 网关192.168.100.102
在这里插入图片描述
修改环境
linux server 1,修改vm为vmnet8,ip地址为192.168.200.1/24

linux server 2,添加网卡2,设置vm为vmnet8,ip地址为192.168.200.2/24
	[root@localhost ~] ifconfig ens37 192.168.200.2/24
			 网卡1保持不变
win7客户端添加网关,去除之前的设置的浏览器代理
squid服务器,添加两块网卡。

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@localhost network-scripts]# vim ifcfg-ens37
在这里插入图片描述
[root@localhost network-scripts]# systemctl restart network
1、配置squid支持透明代理
[root@localhost ~]# vim /etc/squid.conf
http_port 192.168.100.102:3128 //只在192.168.100.102地址上提供squid服务。60行
:wq!
[root@localhost ~]# systemctl restart squid //重启squid服务
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 //开启路由转发,实现不同网段的地址转发
:wq!
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
2、设置firewalld防火墙重定向
[root@localhost ~]# systemctl start firewalld //启动防火墙
[root@localhost ~]# firewall-cmd --zone=external --add-interface=ens37 //将ens37设置为外部接口
[root@localhost ~]# firewall-cmd --zone=internal --add-interface=ens33 //将ens33设置为内部接口
[root@localhost ~]# firewall-cmd --zone=external --add-service=http //添加外部服务ttp
[root@localhost ~]# firewall-cmd --zone=external --add-service=https //添加外部服务https
[root@localhost ~]# firewall-cmd --zone=external --add-port=3128/tcp //添加外部端口tcp协议3128口
[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens37 -p tcp --dport 80 -j REDIRECT --to-ports 3128 //添加预路由规则。http80
[root@localhost ~]# firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens37 -p tcp --dport 443 -j REDIRECT --to-ports 3128 //添加预路由规则.https443
[root@localhost ~]# firewall-cmd --runtime-to-permanent //将临时配置保存为永久就配置
httpd服务器
配置ip地址,启动apache服务
3、验证透明代理的使用
win7客户端访问linux server 1的网站
在这里插入图片描述
ACL访问控制
squid提供了强大的代理控制机制,通过合理的设置acl并行限制,可以针对源地址、目的地址、访问的url路径、访问的时间等各种条件进行过滤。
在squid.conf配置文件中,acl访问控制通过以下两个步骤来实现:
1、使用acl配置项定义需要控制的条件
2、通过http_access配置项对已定义的列表做“允许”或“拒绝”访问的控制
具体配置
1、定义访问控制列表
每行acl配置可以定义一条访问控制列表,格式如下
acl 列表名称 列表类型 列表内容…
列表名称:管理员自定义
列表类型:使用squid提前预定义的值,对应不同的控制条件
src 源ip地址、网段、ip地址范围
dst 目标ip地址、网段、ip地址范围
port 目标端口号
dstdomain 目标域,匹配域内所有的站点
time 使用代理服务器的时间段
maxconn 每个客户机的并发连接数
url_regex 目标资源的url连接数
urlpath_regex 网络中主机名后面的部分
列表内容:要控制的具体对象,不同类型的列表对应的内容不同,可以有多个值,以空格隔开
2、设置访问权限
3、验证访问控制效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值