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服务上完箭筒状态
tcp600 :::3128:::*LISTEN45389/(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服务器,添加两块网卡。
【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、验证访问控制效果
推荐阅读
- Mac安装Chromedriver
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- MAC安装Mongo
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- 探索免费开源服务器tomcat的魅力
- react|react 安装
- VueX--VUE核心插件
- python-安装sublime遇到异常
- typeScript入门基础介绍
- [源码解析]|[源码解析] NVIDIA HugeCTR,GPU版本参数服务器---(3)