目录​​​​​​​

一,了解Squid代理服务器

注:实验环境 :

1.配置Squid服务器初始化框架

2.配置客户端初始化框架

3.配置web服务器初始化框架

二,搭建传统代理服务器

1.安装Squid服务(可以直接复制安装)

2.创建squid用户和优化路径

3.修改配置文件

4.初始化缓存目录和开启服务

三,搭建透明代理服务器

1.编辑配置文件/etc/squid.conf文件在http_port后面加上transparent

2.重启配置文件

3.开启路由转发添加字段

4.设置防火墙策略,将网站协议HTTP,HTTPS(80,443)请求转发到3128创建两个区域,将ens33加入到external区域,ens36(7)加入internal区域

5.客户机取消手工代理,改为不使用代理

6.在web服务器上查看访问日志(都是来自代理服务器的访问)

四,代理服务器访问策略配置

1.创建网站黑名单文件

2.编辑squid配置文件

3.重启squid服务

4.在web服务器上创建一个大于10MB的文件

5.在客户机验证是否成功

五,squid日志分析

1.在squid本地安装httpd服务

2.安装GD库

3.安装SARG(可以直接复制)

4.配置(直接在sarg配置文件尾部添加内容)

5.运行

6.验证(squid服务器登录本机地址查看)

7.编写脚本(SARG计划任务,定期执行)


一,了解Squid代理服务器 

什么是squid?

squid是一款代理的软件,通过缓存的方式为用户提供Web访问加速对用户的Web访问进行过滤控制,可以很好地实现HTTP和FTP,以及DNS查询、SSL等应用的缓存代理,功能十分强大

squid代理作用:缓存加速、隐藏IP地址、应用层过滤ACL

Squid主要组成部分(默认情况)

服务名:squid

主程序:/usr/sbin/squid

主配置文件位置:/etc/squid/squid.conf

监听tcp端口号:3128

默认访问日志文件:/var/log/squid/access.log

传统代理、反向代理以及透明代理的区别和特点:

传统代理:1.通过另一台主机去访问目的地址,提供一个更加有效的访问路径

2.可以起到一个缓冲的作用,提高网络的使用效率

3.对外有着隐藏作用

反向代理:1.保证内网的安全,通常将反向代理作为公网访问地址

2.负载均衡,通过反向代理服务器来优化网站的负载

透明代理:1.客户端根本不需要知道代理服务器的存在,多用于NAT转发中

2.不用设置代理就可以通过代理服务器转发到其他地址进行访问,多用于网关防火墙服务器中

注:实验环境 :

三台虚拟机为Squid服务器添加第二块网卡,使用同一块网卡类型,关闭防火墙和是Slinux

1.配置Squid服务器初始化框架

重点:记得为虚拟机添加第二块网卡,进入系统之后ifconfig查看第二块网卡的名称(ens36{7})在复制网卡的时候名为查看到的网卡名称,因为系统的不同,会出现不同名称

注:多网卡要把(UUID=047db67f-6d8c-4894-9ad1-affe5cb13ba6)这行删除!!!

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.1
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp -f ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.2.1
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.1.1  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::6cbe:29cb:63d:b7c5  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:f1:3c:af  txqueuelen 1000  (Ethernet)RX packets 337  bytes 35070 (34.2 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 30  bytes 4097 (4.0 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.2.1  netmask 255.255.255.0  broadcast 192.168.2.255inet6 fe80::9020:f047:8271:982e  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:f1:3c:b9  txqueuelen 1000  (Ethernet)RX packets 214  bytes 15323 (14.9 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 149  bytes 25012 (24.4 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2.配置客户端初始化框架

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=a7543d64-2e33-4269-b873-df6c9a2463ef
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.2
GATEWAY=192.168.1.1
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.1.2  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::df43:cabd:bd1f:b519  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:33:1e:a0  txqueuelen 1000  (Ethernet)RX packets 269  bytes 29062 (28.3 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 30  bytes 3910 (3.8 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3.配置web服务器初始化框架

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=047db67f-6d8c-4894-9ad1-affe5cb13ba6
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.2.2
GATEWAY=192.168.2.1
[root@localhost ~]# systemctl restart network

        搭建yum安装httpd服务

[root@localhost ~]# rm -f /etc/yum.repos.d/*
[root@localhost ~]# vim /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo "www.baidu.com" > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd

初始化配置完成 

二,搭建传统代理服务器

1.安装Squid服务(可以直接复制安装)

注:虚拟机需要挂载打包好镜像光盘(官网下载:squid : Optimising Web Delivery)

tar zxf /mnt/squid-3.5.23.tar.gz -C /usr/src/
cd /usr/src/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 && make && make install

2.创建squid用户和优化路径

ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R 777 /usr/local/squid/var/
chown -R squid:squid /usr/local/squid/var/

3.修改配置文件

vim  /etc/squid.conf
http_port 3128
cache_effective_user squid   #手工添加
cache_effective_group squid  #手工添加
cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 #去掉注释(#)squid -k parse #查看配置文件是否出现错误

4.初始化缓存目录和开启服务

squid -z
squid
netstat -anpt | grep 'squid'

扩充:

squid -k reconfigure  #重启squid服务
killall -9 squid #关闭服务

验证:
 进入客户端:

注:进入火狐浏览器--》找到首选项设置--》高级--》网络--》设置--》手动配置代理

测试成功:

三,搭建透明代理服务器

1.编辑配置文件/etc/squid.conf文件在http_port后面加上transparent

[root@localhost ~]# vim /etc/squid.confhttp_port 192.168.1.1:3128 transparent

2.重启配置文件

[root@localhost ~]# squid -k reconfigure

3.开启路由转发添加字段

[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

4.设置防火墙策略,将网站协议HTTP,HTTPS(80,443)请求转发到3128创建两个区域,将ens33加入到external区域,ens36(7)加入internal区域

重:这里也要注意,如果网卡是ens37的同学记得更改网卡名称

systemctl start firewalld.service
firewall-cmd --zone=external --add-interface=ens33
firewall-cmd --zone=internal --add-interface=ens36
firewall-cmd --zone=external --add-service=http
firewall-cmd --zone=external --add-service=https
firewall-cmd --zone=external --add-port=3128/tcp
firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 80 -j REDIRECT --to-ports 3128
firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 443 -j REDIRECT --to-ports 3128
firewall-cmd  --runtime-to-permanent

5.客户机取消手工代理,改为不使用代理

验证:
 进入客户端:

注:进入火狐浏览器--》找到首选项设置--》高级--》网络--》设置--》不使用代理

6.在web服务器上查看访问日志(都是来自代理服务器的访问)

[root@localhost ~]# tail -f /var/log/httpd/access_log
192.168.2.1 - - [22/Jul/2022:10:06:48 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
::1 - - [22/Jul/2022:10:07:14 +0800] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) (internal dummy connection)"
::1 - - [22/Jul/2022:10:07:14 +0800] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) (internal dummy connection)"
::1 - - [22/Jul/2022:10:07:14 +0800] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) (internal dummy connection)"
::1 - - [22/Jul/2022:10:07:14 +0800] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) (internal dummy connection)"
::1 - - [22/Jul/2022:10:07:14 +0800] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) (internal dummy connection)"
::1 - - [22/Jul/2022:10:07:14 +0800] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.4.6 (CentOS) (internal dummy connection)"
192.168.2.1 - - [22/Jul/2022:10:07:19 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
192.168.2.1 - - [22/Jul/2022:10:07:20 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
192.168.2.1 - - [22/Jul/2022:10:07:20 +0800] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"

四,代理服务器访问策略配置

要求:

1.允许公司192.168.1.0/24网段使用代理服务器

2.禁止下载扩展名为 .3pg、.mp4、.f4v、rmvb、mkv、avi的视频文件

3.设置网站黑名单,禁止访问.qq.com、.msn.com区域下的web站点

4.允许在正常上班时间(周一到周五的8:30~17:30)使用代理服务器

5.默认策略是禁止任何客户机使用代理服务

6.禁止下载超过10MB的文件

1.创建网站黑名单文件

[root@localhost ~]# vim /1.txt
.qq.com
.msn.com

2.编辑squid配置文件

[root@localhost ~]# vim /etc/squid.comf
acl aa src 192.168.1.0/24
acl bb url_regex -i \.mp3$ \.mp4$ \.f4v$ \.rmvb$ \.mkv$ \.avi$
acl cc dstdomain "/1.txt"
acl dd time MTWHF 08:30-17:30
http_access allow aa !bb !cc dd
reply_body_max_size 10 MB

3.重启squid服务

[root@localhost ~]# squid -k reconfigure

4.在web服务器上创建一个大于10MB的文件

dd if=/dev/zero of=/var/www/html/1.txt  bs=1M  count=15

5.在客户机验证是否成功

五,squid日志分析

注:SARG全称是 Squid Analysis Report Generator.是一款 Squid日志分析工具,采用HTML格式,详细列出每位用户访问 Internet的站点信息、时间占用信息、排名、连接次数、访问量等。

1.在squid本地安装httpd服务

注:挂载Cent7系统光盘,搭建本地yun安装httpd服务(忘记可以看上面的安装httpd的教程)

yum  -y install httpd
systemctl  start httpd
systemctl enable httpd

2.安装GD库

[root@localhost ~]# yum -y install gd gd-devel

3.安装SARG(可以直接复制)

注:重新挂载sarg的源码光盘包(阿里源:https://sourceforge.net/projects/sarg/)

tar zxf /mnt/sarg-2.3.7.tar.gz -C /usr/src/
cd //usr/src/sarg-2.3.7/
./configure --prefix=/usr/local/sarg --sysconfdir=/etc/sarg --enable-extraprotection && make && make install

4.配置(直接在sarg配置文件尾部添加内容)

vim /etc/sarg/sarg.conf
access_log /usr/local/squid/var/logs/access.log
title "Squid User Access Reports"
output_dir /var/www/html/sarg
user_ip no
exclude_hosts /usr/local/sarg/noreport
topuser_sort_field connect  reverse
user_sort_field connect reverse
overwrite_report no
mail_utility mailq.postfix
charset UTF-8
weekdays 0-6
hours 9-12,14-16,18-20
www_document_root /var/www/html

5.运行

[root@localhost sarg]# ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
[root@localhost sarg]# touch /usr/local/sarg/noreport
[root@localhost sarg]# sarg

6.验证(squid服务器登录本机地址查看)

7.编写脚本(SARG计划任务,定期执行)

vim /usr/local/sarg/daily.sh
#/bin/bash
#Get current date
TODAY=$(date +%d/%m/%Y)
#Get one week ago today
YESTERDAY=$(date -d "1 day ago" +%d/%m/%Y)
/usr/local/sarg/bin/sarg -l /usr/local/squid/var/logs/access.log -o /var/www/html/sarg -z -d $YESTERDAY-$TODAY &> /dev/null
exit 0

计划任务:

[root@localhost ~]# chmod +x /usr/local/sarg/daily.sh
[root@localhost ~]# crontab –e
00 00 *  *  *  /usr/local/sarg/daily.sh

 注:此章到此结束,如果大家遇到任何问题请留言,我看到会尽快解决

Linux-Squid代理服务器搭建相关推荐

  1. 完整版的squid代理服务器搭建实现(ip,域名,上网时间限制)

    搭建squid代理服务器 注:实验环境Centos7+Windows10,centos7双网卡 一.Centos7添加两个网络适配器分别VMnet1(权主机模式设置子网192.168.0.0)和VMn ...

  2. Linux网络代理服务器搭建及使用

    测试环境: 代理服务器:centos 7 使用代理的客户端:win 10 搭建代理服务器 centos安装代理软件:squid yum install squid -y yum install htt ...

  3. 搭建Linux安全的Squid代理服务器

    本文介绍Linux下非常著名.常用的Squid代理服务器的使用,并着重讲述如何使用其提供的访问控制策略,来保证代理服务器的合法使用. 代理服务器的功能是代理网络用户取得网络信息,它 是网络信息的中转站 ...

  4. CentOS下搭建Squid代理服务器

    "量子扰动超导探测器.战争期间用它搜索潜艇,寻找敌人的赛伯武器系统." "哦?海军的玩意儿?打仗的时候用过?这么说,乌贼能读出你大脑芯片上储存的东西?"她停住脚 ...

  5. 10个关于linux中Squid代理服务器的实用面试问答

    10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到"代理服务器"这个词,我们也经常听到.代理服务器已经成为一种企业常态,而且经常会接 ...

  6. Linux下的squid代理服务器——正向代理、反向代理(cdn加速)

    一.squid代理服务器概述及功能 1. 什么是squid代理服务器? Squid是一个高性能的代理缓存服务器,Squid支持FTP.gopher.HTTPS和HTTP协议. 和一般的代理缓存软件不同 ...

  7. Centos7搭建Squid代理服务器

    Centos7搭建Squid代理服务器 sumu's home 1.无需验证版----http 1.1 安装 yum install squid 1.2 修改配置文件 打开文件: vim /etc/s ...

  8. Squid代理服务器应用(服务搭建详细步骤讲解)

    Squid代理服务器应用(服务搭建详细步骤讲解) 文章目录 一.代理的工作机制 二.Squid 代理的类型 三.Squid部署 (一).安装 Squid 服务 (二).构建传统代理服务器 (三).构建 ...

  9. 如何在linux环境下搭建Tor代理服务器

    如何在linux环境下搭建Tor代理服务器 一.简介 首先, Tor官方提供已不再提供单独的Tor内核下载,只提供集成了Tor内核的Tor-Browser下载.Tor Browser 内置了Tor,f ...

  10. Linux上常用的安全技术iptables与squid代理服务器

    一.iptables 指令语法 iptables [-t table] command [match] [-j target/jump] [-t table] 指定规则表 -t 参数用来,内建的规则表 ...

最新文章

  1. package.json字段全解
  2. matlab中system prt,急!!求救!!MATLAB关于prt报错!
  3. java 基本类型之间的转换
  4. linq语句复杂查询和分开查询的性能对比
  5. 机器学习初学者公众号下载资源汇总(一)
  6. 直播预告:基于动态词表的对话生成研究 | PaperWeekly x 微软亚洲研究院
  7. 【Spring】IOC
  8. 改造MFC程序,使原来不支持winsocket的工程支持winsocket
  9. 打开计算机的方法有哪些,dmg文件怎么打开 常见打开方法有哪些
  10. 多用途手机登录页面模板
  11. Android 安卓动画 补间动画 - 缩放动画
  12. 数据仓库-hive分区表
  13. python selenium+firefox 使用已打开的火狐浏览器进行操作(不需要每次都重新打开火狐)
  14. 天童美语植树节:前人栽树后人乘凉
  15. 银河麒麟服务器系统ip可ping通,但是tongweb的默认端口9060、8088不能访问,访问提示404
  16. dplayer解析源码php调用,从demo分析ijk源码一:视频播放
  17. Oracle数据库安装容易出错问题的解决方案
  18. Linux中用tar包配置samba,Linux建域使用samba(二)——安装Samba
  19. 我的梦想,我的飞翔! 南航天合2013校园招聘火热启动
  20. 银行业务细分,商业银行业务学习(二)

热门文章

  1. ORI-621龙芯3A处理器CPCI刀片计算机
  2. i.MX6ULL开发板终结者资料介绍
  3. 迅雷,qq旋风等下载链接加密算法解析
  4. C#获取QQ旋风的下载记录
  5. optaplanner学习笔记(三)为规划问题建模
  6. 为什么会得肺癌,得了肺癌怎么治?
  7. 教授计算机预测,计算机在预测肺癌等方面的客观与准确远超病理学家
  8. Hadoop详细解析
  9. 2023年PMP考生|考前必练全真模拟题分享,附答案解析
  10. 春天的雨是一副五彩斑斓的画卷