当前位置: 首页 > news >正文

麒麟V11系统中实现基于Squid的内网上网审计系统

实验条件:两台虚拟机,一台作为Squid代理服务器,一台为客户端主机。

实验目的:Squid代理服务器上部署上网审计系统,能够监管客户端主机。

一、Squid 代理基础配置(放行内网、开启日志)

1. 修改 squid 配置放行内网网段,开启完整日志

# 取消内网放行注释 sed -i 's/# http_access allow localnet/http_access allow localnet/' /etc/squid/squid.conf # 写入全局拒绝规则(放在最后) echo 'http_access deny all' >> /etc/squid/squid.conf # 开启完整访问日志(防止日志缺失) echo 'access_log /var/log/squid/access.log combined' >> /etc/squid/squid.conf # 重载配置生效 systemctl reload squid # 验证放行规则 grep 'http_access allow localnet' /etc/squid/squid.conf

2. 放行防火墙 3128 代理端口

firewall-cmd --add-port=3128/tcp --permanent firewall-cmd --reload # 验证端口放行 firewall-cmd --list-ports

二、安装网页服务(用来展示审计页面)

yum install -y httpd # 开机自启并立即运行 systemctl enable --now httpd # 验证网页服务是否启动 systemctl status httpd

三、审计自动生成脚本 web_audit.sh(最终版:有序号、最多 100 条、无状态码、标准数字时间)

1. 清空旧脚本,新建完整脚本

> /root/web_audit.sh vim /root/web_audit.sh

2.写入网页代码

#!/bin/bash LOG="/var/log/squid/access.log" HTML="/var/www/html/audit.html" # 写入页面头部、分页样式 cat > $HTML <<END <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>内网上网审计</title> <style> *{box-sizing: border-box;margin:0;padding:0;font-family:Microsoft Yahei,sans-serif;} body{background:#f5f7fa;padding:30px;max-width:1300px;margin:0 auto;} h1{color:#2d3748;text-align:center;margin-bottom:25px;font-size:28px;} table{width:100%;border-collapse:collapse;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,0.08);border-radius:8px;overflow:hidden;} th{background:#4299e1;color:#fff;padding:14px 12px;font-size:15px;} td{padding:12px 12px;border-bottom:1px solid #e2e8f0;color:#4a5568;font-size:14px;text-align:center;} td:nth-child(3){text-align:left;} tr:nth-child(even){background:#f7fafc;} tr:hover{background:#ebf8ff;} .no-data{text-align:center;padding:60px;color:#a0aec0;font-size:16px;} .footer{margin-top:20px;text-align:right;color:#718096;font-size:13px;} .page-tip{margin-bottom:10px;color:#666;} </style> </head> <body> <h1>内网上网访问记录审计平台</h1> <div class="page-tip">当前页面最多展示最近100条访问记录</div> <table> <tr> <th width="8%">序号</th> <th width="26%">访问时间</th> <th width="20%">客户端IP</th> <th width="46%">访问网址</th> </tr> END # 处理日志:过滤无效error日志、只取最新100条、生成自增序号、转换标准数字时间 if [ -f "$LOG" ];then grep "GET" "$LOG" | grep -v error | tail -n 100 | awk ' BEGIN{num=1} { raw_t = $4 " " $5 ip = $1 url = $7 # 清除时间开头多余的[符号 sub(/^\[/,"",raw_t) split(raw_t, tarr, /[:\/ ]/) day = tarr[1] mon = tarr[2] year = tarr[3] h = tarr[4] mi = tarr[5] s = tarr[6] # 英文月份转数字 if(mon=="Jan") m="01"; else if(mon=="Feb") m="02"; else if(mon=="Mar") m="03"; else if(mon=="Apr") m="04"; else if(mon=="May") m="05"; else if(mon=="Jun") m="06"; else if(mon=="Jul") m="07"; else if(mon=="Aug") m="08"; else if(mon=="Sep") m="09"; else if(mon=="Oct") m="10"; else if(mon=="Nov") m="11"; else if(mon=="Dec") m="12"; new_time = year"-"m"-"day" "h":"mi":"s # 输出4列:序号、时间、客户端IP、访问网址(已删除状态码列) printf "<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n",num,new_time,ip,url num++ }' >> $HTML else echo "<tr><td colspan=4 class=no-data>暂无上网访问日志</td>" >> $HTML fi # 页面底部闭合标签 cat >> $HTML <<END </table> <div class="footer">自动刷新任务:每分钟更新一次 · Squid代理审计系统</div> </body> </html> END echo "[$(date '+%Y-%m-%d %H:%M:%S')] 审计页面更新完成"

2. 赋予脚本执行权限并手动测试生成页面

chmod +x /root/web_audit.sh # 手动执行一次,生成审计网页 /root/web_audit.sh

四、配置定时自动刷新(无需手动执行脚本,每分钟自动更新页面)

# 编辑定时任务 crontab -e

写入一行定时规则,保存退出:

五、客户端配置代理访问外网(这里在新建一台虚拟机)

临时生效(当前终端)访问百度

export HTTP_PROXY=http://192.168.3.71:3128 export HTTPS_PROXY=http://192.168.3.71:3128 # 强制测试访问,确保走代理 curl -v --proxy http://192.168.3.71:3128 http://baidu.com

六、访问审计网页

浏览器打开地址(替换为你的 Squid 服务器 IP,我的是3.71):

http://192.168.3.71/audit.html

序号为22、23的是最新测试结果,能看到最新测试结果显示了客户机访问外网的时间,IP地址,以及访问网站的地址。

http://www.cnnetsun.cn/news/3007070.html

相关文章:

  • Ollama 对比 LM Studio,AMD 新本选哪个工具更顺手
  • Triton+KServe构建高可用模型服务实战
  • 航空仿生超材料正向设计智能推演系统已融合人工智能AI模型
  • OPENCV——at函数遍历图像像素
  • 高规格仪式化空间动线设计:从神经科学到落地参数的全流程指南
  • Translumo终极指南:3步掌握Windows最强实时屏幕翻译工具
  • Phi-4-Mini与Phi-4-Multimodal:轻量级本地多模态AI实战指南
  • 手写梯度可视化沙盒:让神经网络学习过程看得见
  • AI落地七道关卡:从能跑到敢用的工程化实践指南
  • 如何用一款免费插件告别网盘限速?三大核心功能让你下载飞起来!
  • Vertex Energy宣布6000桶/日III类基础油扩产项目
  • Python全栈项目--校园在线考试平台
  • Fastjson 1.2.24反序列化漏洞深度剖析:从JNDI注入到RCE复现
  • Django毕设选题推荐:基于 Django 的在线网络设备租赁交易系统设计与实现 基于 Django 的 IT 网络设备租赁运维系统设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】
  • Claude Managed Agents:智能体运行时的基础设施革命
  • 2026年萌宠视频背景音乐网站TOP5盘点:避开版权坑的实用选择指南
  • 基于Playwright与MCP协议构建AI驱动的浏览器自动化服务
  • 近 10 年考研数学「无穷小量与无穷大量」真题精讲(一)
  • Kubescape:Kubernetes 集群安全扫描,一个工具搞定
  • 6款实用降AI率网站 合规程度拉满
  • 经典遗传算法实操指南:选择、交叉、变异的工程化实现
  • 从 Copilot 到 Agent 集群:我的开发工作流正在被重塑
  • Android应用抓包实战:绕过反代理与SSL证书绑定检测
  • 极致CMS 1.7插件机制安全审计:远程ZIP下载与任意目录打包漏洞深度剖析
  • 从协议层到调度层:AI API中转站架构深度拆解
  • SWEET32漏洞实战:TLS/SSL中64位分组密码的生日攻击与修复指南
  • 2026年AI模型接口中转站权威测评推荐榜单 全场景适配优质平台选购指南
  • 3分钟搞定缠论分析:ChanlunX开源插件让通达信自动画出中枢笔段
  • Unreal Engine 5.8 全部新增功能总结
  • 夹缝中的企业投融资部