实验拓扑图讲解
配置Squid透明模式
//安装环境依赖包
yum install gcc gcc-c++ -y
//解压缩包
tar zxvf squid-3.4.6.tar.gz -C /opt/
//配置
cd /opt/squid-3.4.6
./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese " \
--enable-underscore \
--enable-poll \
--enable-gnuregex
//安装与配置
make && make install
//便于系统识别squid服务命令
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
//创建用户,无家目录,不可登录系统
useradd -M -s /sbin/nologin squid
//更改属主属组
chown -R squid.squid /usr/local/squid/var
//修改主配置文件
vim /etc/squid.conf
http_access allow all //注释掉deny,添加此,允许所有访问该终端
cache_effective_user squid //添加 指定程序用户
cache_effective_group squid //添加 指定账户基本组
coredupm_dir /usr/local/squid/var/cache/squid
//检查配置文件语法
squid -k parse
//初始化缓存目录
squid -z
//启动服务
squid
//创建脚本,便于service管理服务
cd /etc/init.d
vim squid
#!/bin/bash
#chkconfig: 2345 90 25
PID="/usr/local/squid/var/run/squid. pid"
CONF="/etc/squid. conf"
CMD="/usr/local/squid/sbin/squid"
case "$1" in
start)
netstat -natp | grep squid &> /dev/null
if [ $? -eq 0 ]
then
echo "squid is running"
else
echo "正在启动squid.."
$CMD
fi
;;
stop)
$CMD -k kill &> /dev/null
rm -rf $PID &> /dev/null
;;
status)
[ -f $PID ] &> /dev/null
if [ $? -eq 0 ]
then
netstat -natp | grep squid
else
echo "squid is not running"
fi
;;
restart)
$0 stop &> /dev/null
echo "正在关闭 squid..."
$0 start &> /dev/null
echo "正在启动 squid..."
;;
reload)
$CMD -k reconfigure
;;
check)
$CMD -k parse
;;
*)
echo "用法:$0{start|stop|status|reload|check|restart}"
;;
esac
chmod +x squid
chkconfig --add squid
配置Squid透明模式
配置双网卡
ens33:内网卡 ens36:外网卡
配置路由转发功能
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
//配置静态路由
route add -net 192.168.100.0/24 gw 192.168.179.243
//修改squid配置文件
vim /etc/squid.conf
http_port 192.168.100.10:3128 transparent //添加到访问端口中
service squid reloda
添加防火墙规则
iptables -t nat -F
iptables -F
iptables -t nat -I PREROUTING -i ens36 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
iptables -t nat -I PREROUTING -i ens36 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
安装配置WEB服务
yum install httpd -y
route add -net 192.168.100.0/24 gw 192.168.179.243 //添加静态路由
systemctl stop firewalld.service
setenforce 0
客户端网卡仅主机模式,访问WEB服务
ACL访问控制
acl localhost src 192.168.179.132/32 //基于源地址
acl MYLAN src 192.168.179.0/24 //基于网段
acl destionhost dst 192.168.179.130/32 //基于目标地址
acl MC20 maxconn 20 //设置访问数量
acl BURL url_regex -i ^rtsp:// ^emule://
acl PURL urlpath_regex -i \.mp3$ \.mp4$ \.rmvb$
acl work time MTWHF 08:30-17:30
- Squid代理服务中设置ACL访问控制列表
vim /etc/squid.conf
//添加
acl hostlocal src 192.168.100.10
http_access deny hostlocal
- 重启Squid服务,客户端访问WEB服务
Sarg日志分析
- Sarg(Squid Analysis Report Generator),是一款squid日志分析工具,采用HTML的格式,详细列出每一位用户访问Internet的站点信息、时间占用信息、排名、连接次数、访问量等
在squid代理服务器上配置sarg服务
//图像处理
yum install -y gd gd-devel gcc gcc-c++
//创建目录
mkdir /usr/local/sarg
//解压缩包
tar zxvf sarg-2.3.7.tar.gz -C /opt/
//配置
cd /opt/sarg-2.3.7
./configure --prefix=/usr/local/sarg \
--sysconfdir=/etc/sarg \
--enable-extraprotection //额外安全防护
//编译与安装
make && make install
//修改主配置文件
cd /etc/sarg
vim sarg.conf
7行 access_log /usr/local/squid/var/logs/access.log //指定访问口志文件
25行 title "Squid User Access Reports" //网页标题
120行 output_dir /var/www/html/squid-reports //报告输出目录
178行 user_ip no //使用用户名显示
206行 exclude_hosts /usr/local/sarg/noreport //不计入排序的站点列表文件
184行 topuser_sort_field connect reverse // top排序中有连接次数、访阿字节、降序排列升序是normal
190行 #user_sort_field reverse //用户访问记录连接次数、访间字节按降序排序
257行 overwrite_report no //同名口志是否覆盖
289行 mail_utility mailq.postfix //发送邮件报告俞令
434行 charset UTF-8 //使用字符集
518行 weekdays 0-6 //top排行的星期周期
525行 hours 0-23 //top排行的时间周期
633行 www_document_root /var/www/html //网页根目录
//添加不计入站点文件,添加的域名将不被显示在排序中
touch /usr/local/sarg/noreport
ln -s /usr/local/sarg/bin/sarg /usr/local/bin/
//使用命令
sarg
安装WEB服务
yum install httpd -y
//开启服务
systemctl start httpd
//关闭防火墙
systemctl stop firewalld.service
setenforce 0
- 客户端访问192.168.179.251squid-reports