采用Linux Iptables在网络层全面实现封堵QQ解决

前言:QQ即腾讯(tencet.com 或qq.com),是一种实时通讯工具。目前很多公司都想办法对此通讯工具进行限制、控制。由于QQ生命力极强,导致各种方法都有可能漏网,除非你把大多数端口都封掉(tcp 80、433,UDP)。市面上有琳琅满目的网络安全产品、网络行为产品等。都提到能否封堵QQ,但是实际还是有些差距的。方案要解决的问题:实现某些电脑能够畅通无阻上QQ,某些电脑完全上不了QQ。

解决办法:采用基于电脑IP地址的控制方法,本方案采用免费Linux操作系统+Iptables组件实现网络层封堵QQ。基于电脑固定IP地址的管理涉及到MAC地址与IP地址的一一绑定。使得电脑管理控制到物理设备(电脑网卡)。实现MAC地址与IP地址的绑定可以通过交换机实现,路由器设备实现。如果网络比较简单,交换机没有此功能,也可以通过Linux服务器网关实现,实现方法是通过ethers 和arp,详细方法见下面。

实现步骤:1、编写QQ所有服务器IP或主机列表脚本(qqserverlist)如下:tcpconn.tencent.comtcpconn2.tencent.comtcpconn3.tencent.comtcpconn4.tencent.comtcpconn5.tencent.comtcpconn6.tencent.com218.17.217.106219.133.40.0/24218.18.95.153218.17.209.23218.17.217.106218.18.95.153218.17.209.23219.133.49.5219.133.49.20661.144.238.145219.133.63.142sz.tencent.comsz2.tencent.comsz3.tencent.comsz4.tencent.comsz5.tencent.comsz6.tencent.comsz7.tencent.comsz8.tencent.comsz9.tencent.com注:此文件需要不断维护,QQ服务器主机有增加就必须增加到此列表2、编写允许上QQ电脑的IP列表(permitiplist)如:贵公司网络是采用内网192.168.1.x,下面可以作为你的参考。将允许上QQ的IP地址增加在此列表192.168.1.40192.168.1.44192.168.1.48192.168.1.51192.168.1.52192.168.1.54192.168.1.58192.168.1.62192.168.1.69192.168.1.70192.168.1.71192.168.1.72192.168.1.78192.168.1.803、编写启用此功能的shell脚本(qqdeny.sh)# qqdeny.sh/sbin/iptables -I FORWARD -p udp –dport 8000 -j DROP/sbin/iptables -I FORWARD -p udp –sport 4000 -j DROP/sbin/iptables -I FORWARD -p udp –sport 4001 -j DROP/sbin/iptables -I FORWARD -p udp –sport 4002 -j DROPfor i in `cat /opt/qq/qqserverlist`;do /sbin/iptables -I FORWARD -d $i -j DROP;donefor p in `cat /opt/qq/permitiplist`;do /sbin/iptables -I FORWARD -s $p -j ACCEPT;done注意:符合“`”是数字“1”左边字符。另外脚本必须具有执行权限。4、编写取消此功能的shell脚本(qqundeny.sh)# qqundeny.sh/sbin/iptables -D FORWARD -p udp –dport 8000 -j DROP/sbin/iptables -D FORWARD -p udp –sport 4000 -j DROP/sbin/iptables -D FORWARD -p udp –sport 4001 -j DROP/sbin/iptables -D FORWARD -p udp –sport 4002 -j DROPfor i in `cat /opt/qq/qqserverlist`;do /sbin/iptables -D FORWARD -d $i -j DROP;donefor p in `cat /opt/qq/permitiplist`;do /sbin/iptables -D FORWARD -s $p -j ACCEPT;done5、将脚本放在linux服务器上Linux服务器必须安装有Iptables组件。将创建目录在/opt/qq#mkdir /opt/qq将上面四个文件(qqserverlist permitiplist qqdeny.sh qqundeny.sh)放在/opt/qq目录下,让qqdeny.sh qqundeny.sh具有执行权限#chmod 755 qqdeny.sh#chmod 755 qqundeny.sh测试执行:启动封堵QQ#sh qqdeny.sh取消封堵QQ#sh qqundeny.sh6、让服务器启动时,自动启动QQ封堵功能将qqdeny.sh设置为启动时自动启动#vi /etc/rc.d/rc.local增加sh /opt/qq/qqdeny.sh通过上面6步,你将实现在linux服务器下封堵QQ,在日常维护过程中你还是需要定时维护QQ服务器列表qqserverlist。这样将能够实现最简单同时也是最有效封堵与放行QQ的方案。下面是有关在Linux下实现网卡MAC地址与IP地址绑定。在网络交换机二层的情况下,可以通过arp协议得到实现。实现步骤:1、编写ethers文件,然后存放在/etc/目录下文件格式可以是如下:192.168.1.40 00:D0:F8:0F:4B:98192.168.1.44 00:01:37:D2:1A:F2192.168.1.46 00:50:8D:D3:04:FF192.168.1.48 00:C0:4C:38:10:31192.168.1.50 00:E0:4C:E8:55:6C192.168.1.51 00:01:29:F1:9F:CC192.168.1.52 00:D0:F8:0F:45:E5192.168.1.54 00:50:BA:29:D3:7C192.168.1.62 00:D0:F8:0F:4B:7D192.168.1.69 00:50:BA:E4:80:1F192.168.1.70 00:0A:EB:3D:18:20192.168.1.73 00:50:BA:70:71:EC备注:防止使用其它IP,可以将其余IP地址全面设置为00:00:00:00:00:00:00:00,你可以手工追加在上面文件ethers就可以。2、执行arp命令#arp -f3、让系统自动启动可以填加到/etc/rc.d/rc.local#vi /etc/rc.d/rc.local增加命令arp -f

接下来随便介绍将Linux服务器作为NAT网关通过上面介绍,,我还觉得有些朋友还想知道怎么把服务器当为网关,做NAT路由功能的网关。当然很多朋友已经掌握了此方法。我这里做简单的介绍。实现步骤1、配置路由功能IP转发,编辑/etc/sysctl.conf#vi /etc/sysctl.conf修改参数net.ipv4.ip_forward = 1下面是此文件的配置# Kernel sysctl configuration file for Red Hat Linux## For binary values, 0 is disabled, 1 is enabled. See sysctl(8) for# more details.# Controls IP packet forwardingnet.ipv4.ip_forward = 1# Controls source route verificationnet.ipv4.conf.default.rp_filter = 1# Controls the System Request debugging functionality of the kernelkernel.sysrq = 0# Controls whether core dumps will append the PID to the core filename.# Useful for debugging multi-threaded applications.kernel.core_uses_pid = 12、编写一个NAT脚本,然后运行就可以下面是有关NAT脚本,如文件名为nat.sh 存放在/opt/# work pc/sbin/iptables -t nat -D POSTROUTING -o eth0 -s 192.168.1.40 -j MASQUERADE/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.40 -j MASQUERADE/sbin/iptables -t nat -D POSTROUTING -o eth0 -s 192.168.1.42 -j MASQUERADE/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.42 -j MASQUERADE/sbin/iptables -t nat -D POSTROUTING -o eth0 -s 192.168.1.44 -j MASQUERADE/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.44 -j MASQUERADE/sbin/iptables -t nat -D POSTROUTING -o eth0 -s 192.168.1.46 -j MASQUERADE/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.46 -j MASQUERADE/sbin/iptables -t nat -D POSTROUTING -o eth0 -s 192.168.1.48 -j MASQUERADE/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.48 -j MASQUERADE/sbin/iptables -t nat -D POSTROUTING -o eth0 -s 192.168.1.50 -j MASQUERADE/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.50 -j MASQUERADE注:里面一行就删除规则,一行是增加规则,将相关要上让上外网的IP增加上就可以。3、让系统自动启动#vi /etc/rc.d/rc.local增加命令sh /opt/nat.sh

小结:通过上面的实现,你将能够配置出一台免费的网络网关,具有封堵、放行某台电脑上外网、限制QQ上网等。本系统在linux RedHat 7.3配置并使用过。电脑的要求不高,一般稳定的兼容机就可以信任。以上信息部分来自互联网做过相关参考。作者自己使用配置,效果也不错。整理后与大家分享与交流。

成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成。

采用Linux Iptables在网络层全面实现封堵QQ解决

相关文章:

你感兴趣的文章:

标签云: