免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2191 | 回复: 6
打印 上一主题 下一主题

Iptable里有没有办法通过日志记录来记录下请求的URL地址? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-25 23:45 |只看该作者 |倒序浏览
Iptable里有没有办法通过日志记录来记录下请求的URL地址?



iptables -A FORWARD -p tcp -j LOG --log-level debug

#比如这个
iptables -I FORWARD -j DROP -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe"   -j LOG --log-level debug

#有没有可能记录下来正在访问这个的URL,比如他可能是 abc.com/abc/cmd.exe ?


#比如这个有没有可能记录下来正在访问80端口的所有URL?

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j LOG --log-level debug

#当前只记录下类似这样的
Nov 25 18:18:26 localhost kernel: IN=br0 OUT= PHYSIN=eth0 MAC=00:15:17:b5:bc:b4:00:1d:0f:0e:02:95:08:00 SRC=192.168.2.5 DST=192.168.2.9 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=38736 DF PROTO=TCP SPT=63284 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0

#没法知道请求的URL。

比如L7-filter等有没有可能实现这个?

不知那位兄弟知道如何解决这个?

非常感谢您的帮助。

论坛徽章:
0
2 [报告]
发表于 2009-11-26 08:14 |只看该作者
这个恐怕是无望了,为什么不用个squid?,这可是他的强项!

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
3 [报告]
发表于 2009-11-26 08:17 |只看该作者
iptables日志太大了,不好分析,
安装squid实现好点

论坛徽章:
0
4 [报告]
发表于 2009-11-26 10:17 |只看该作者
我想实现透明的网桥模式, 用squid等就是透明代理了,同时又需要监控

iptables -I FORWARD -j DROP -p tcp -s 0.0.0.0/0 -m string --string "qq.com"

像这样的是可以工作的,但就是不知如何能把这样的string 给记录下来。


谢谢

论坛徽章:
0
5 [报告]
发表于 2009-11-26 11:58 |只看该作者
iptables -I FORWARD -p tcp -s 0.0.0.0/0 -m string --string "qq.com" -j LOG --log-prefix"name"
如果这样只是记录匹配qq.com的log而且不是url ,建议还是用squid

论坛徽章:
0
6 [报告]
发表于 2009-11-26 13:34 |只看该作者
原帖由 feiyi 于 2009-11-25 23:45 发表
Iptable里有没有办法通过日志记录来记录下请求的URL地址?



iptables -A FORWARD -p tcp -j LOG --log-level debug

#比如这个
iptables -I FORWARD -j DROP -p tcp -s 0.0.0.0/0 -m string --string ...



L7-filter 如果楼主不担心你的速度受影响,那到可以考虑。


L7 filter 简介
在Linux的防火墙体系Netfilter下有一个独立的模块L7 filter 。从字面上看Netfilter是对网络数据的过滤,L7 filter是基于数据流应用层内容的过滤。不过实际上 L7 filter的本职工作不是对数据流进行过滤而是对数据流进行分类。它使用模式匹配算法把进入设备的数据包应用层内容与事先定义好的协议规则进行比对,如果匹配成功就说明这个数据包属于某种协议。
  
L7 filter是基于数据流工作的,建立在Netfilter connstrack功能之上。因为一个数据流或者说一个连接的所有数据都是属于同一个应用的,所以L7 filter没有必要对所以的数据包进行模式匹配,而只匹配一个流的前面几个数据包 (比如10个数据包)。当一个流的前面几个数据包包含了某种应用层协议的特征码时 (比如QQ),则这个数据流被L7 filter识别;当前面几个数据包的内容没有包含某种应用层协议的特征码时,则L7 filter放弃继续做模式匹配,这个数据流也就没有办法被识别。
  
做模式识别是一个很消耗计算资源的操作,特别是在网络应用下因为数据量很多所以更体现出对资源的占用上。在Linux内核,L7 filter其实非常影响网络处理的效率。所以在没有十分必要的时候尽量不要采用L7 filter做流量分类。现在出现了一个运行在Linux用户空间的版本 L7 filter-userspace ,这个软件运行时不会影响内核,但是处理效率会更低。实际上L7 filter-userspace 调用了netlink协议族的功能,整个处理过程至少进行了两次的数据包拷贝操作,能不影响效率吗?
  
不过话说回来,在对性能要求不高的应用上,L7 filter确实给我们提供了一个功能强大的网络流量管理工具。使用这个工具的操作也非常简单,只要会 Iptables配置Linux防火墙,就会配置L7 filter规则。一个配置封杀QQ应用的例子如下:
Iptables -t mangle -A POSTROUTING -d x.x.x.x -p udp -m layer7 --l7proto qq -j DROP

论坛徽章:
0
7 [报告]
发表于 2009-11-26 14:06 |只看该作者
其实我也想用squid,dansguardian 等工具, 主要的问题有两个方面,对于 后端的服务器其实他能知道我们这个监控机器的IP, 比如通过 REMOTE_ADDR 就可以得到了, 二是我担心后端几百M的大流量过来后一般的机器能不能接受得了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP