如何在Linux上配置基于Web的网络流量监控系统

如何在Linux上配置基于Web的网络流量监控系统,第1张

没有现成的软件,你可以使用iptables的TEE对象,把数据镜像到一台windows主机。然后在该windows电脑上安装”WFilter上网行为管理软件“,就可以监控全网流量了,还可以做上网行为管理。

双网卡的linux串联在网络中,并且用tc命令进行限速。

不过实在是没必要自己搞啦,那么多现成的软路由系统都可以用。推荐使用”WFilter上网行为管理系统“,和一般的软路由器相比,有很多优势:

1. 超级强大的上网行为管理功能,支持网址库过滤,应用过滤,聊天过滤等。

2. 上网记录和统计功能:网页和邮件的内容记录和审计。各种统计报表。

3. 域账号集成,可以和微软AD域集成。

4. 多种扩展插件:局域网扫描,DHCP扫描,私接路由和随身Wifi扫描等。

5. 全中文界面,提供在线QQ技术支持。

6. 当然,软路由的其他功能都有。

不是木马,是设置问题,下面是流量的控制方法

一、Linux 流量控制过程分二种:

1、队列控制 即 QOS, 瓶颈处的发送队列的规则控制,常见的有 SFQ PRIO

2、流量控制 即带宽控制 , 队列的排队整形, 一般为 TBF HTB

二、Linux 流量控制算法分二种:

1、无类算法 用于树叶级无分支的队列,例如:SFQ

2、分类算法 用于多分支的队列,例如:PRIO TBF HTB

三、具体实现:

1. 在网卡上建立 以SFQ算法的限流

#tc qdisc add dev eth0 root handle 1: sfq

SFQ 参数有 perturb( 重新调整算法间隔 ) quantum 基本上不需要手工调整 :

handle 1: 规定算法编号 .. 可以不用设置由系统指定 ..

#tc qdisc sh dev eth0 显示算法

#tc qd del dev eth0 root 删除 注 : 默认 eht0 支持 TOS

2. 在网卡建立以 TBF算法的限流

#tc qd add dev eth1 root handle 1: tbf rate 256kbit burst 10000 latency 50ms

速率 256kbit 突发传输 10k 最大延迟 50ms

#tc -s qd sh dev eth1 统计

#tc qd del dev eth1 root 删除

3. 在网卡建立 PRIO

#tc qdisc add dev eth0 root handle 1: prio

# 此命令立即创建了类 : 1:1, 1:2, 1:3 ( 缺省三个子类 )

#tc qdisc add dev eth0 parent 1:1 handle 10: sfq

#tc qdisc add dev eth0 parent 1:2 handle 20: tbf rate 20kbit buffer 1600 limit 3000

注 : 此为 TBF 限速的另一写法 , 前文有讲解 .

#tc qdisc add dev eth0 parent 1:3 handle 30: sfq

4. WEB 服务器的流量控制为 5Mbps,SMTP 流量控制在 3Mbps 上 . 而且二者一共不得超过 6Mbps, 互相之间允许借用带宽

#tc qdisc add dev eth0 root handle 1:0 cbq bandwidth 100Mbit avpkt 1000 cell 8

#tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 100Mbit rate 6Mbit weight

0.6Mbit prio 8 allot 1514 cell 8 maxburst 20 avpkt 1000 bounded

这部分按惯例设置了根为 1:0, 并且绑定了类 1:1. 也就是说整个带宽不能超过 6Mbps.

#tc class add dev eth0 parent 1:1 classid 1:3 cbq bandwidth 100Mbit rate 5Mbit weight

0.5Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000

#tc class add dev eth0 parent 1:1 classid 1:4 cbq bandwidth 100Mbit rate 3Mbit weight

0.3Mbit prio 5 allot 1514 cell 8 maxburst 20 avpkt 1000

建立了 2 个类 . 注意我们如何根据带宽来调整 weight 参数的 . 两个类都没有配置成"bounded", 但它们都连

接到了类 1:1 上 , 而 1:1 设置了"bounded". 所以两个类的总带宽不会超过 6Mbps. 别忘了 , 同一个 CBQ 下面的子

类的主号码都必须与 CBQ 自己的号码相一致 !

#tc qdisc add dev eth0 parent 1:3 handle 30: sfq

#tc qdisc add dev eth0 parent 1:4 handle 40: sfq

缺省情况下 , 两个类都有一个 FIFO 队列规定 . 但是我们把它换成 SFQ 队列 , 以保证每个数据流都公平对待 .

#tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 80 0xffff flowid

1:3

#tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip sport 25 0xffff flowid

1:4

6. 过滤器过滤示例

#tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip dport 22 0xffff flowid 10:1

在 10: 节点添加一个过滤规则 , 优先权 1: 凡是去往 22 口 ( 精确匹配 ) 的 IP 数据包 , 发送到频道 10:1..

#tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip sport 80 0xffff flowid 10:1

在 10: 节点添加一个过滤规则 , 优先权 1: 凡是来自 80 口 ( 精确匹配 ) 的 IP 数据包 , 发送到频道 10:1..

#tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2

在 eth0 上的 10: 节点添加一个过滤规则 , 它的优先权是 2: 凡是上二句未匹配的 IP 数据包 , 发送到频道 10:2..

#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip dst 4.3.2.1/32 flowid 10:1

去往 4.3.2.1 的包发送到频道 10:1 其它参数同上例

#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 1.2.3.4/32 flowid 10:1

来自 1.2.3.4 的包发到频道 10:1

#tc filter add dev eth0 protocol ip parent 10: prio 2 flowid 10:2

凡上二句未匹配的包送往 10:2

#tc filter add dev eth0 parent 10:0 protocol ip prio 1 u32 match ip src 4.3.2.1/32 match

ip sport 80 0xffff flowid 10:1

可连续使用 match, 匹配来自 1.2.3.4 的 80 口的数据包


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8929508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存