iptables模块添加--七层过滤、防CC、DDOS

简介:
#!/bin/bash
# BY kerryhu
# QQ:263205768
# MAIL:king_819@163.com
# BLOG:http://kerry.blog.51cto.com
IPT=/sbin/iptables
/*
当前系统版本centos5.3,内核版本2.6.18-128.el5,对现有系统内核进行升级、优化,并添加L7-filter模块,使iptables支持L7filter,对七层应用进行过滤
*/

#============================= 内核编译 ===========================================
cd /opt
tar jxvf iptables-1.4.3.tar.bz2 
tar zxvf ipp2p-0.99.16.tar.gz
tar zxvf netfilter-layer7-v2.22.tar.gz
tar jxvf linux-2.6.28.10.tar.bz2
mv linux-2.6.28.10 /usr/src/
 
#
#给内核打L7-filter补丁,将以上各软件包都解压到 /usr/src 目录
cd /usr/src/linux-2.6.28.10
patch -p1 < /opt/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch
#检查有无不正确的.o文件和依赖关系,使用刚下载的完整的源程序包进行编译,所以本步可以省略。而如果你多次使用了这些源程序编译内核,那么最好要先运行一下这个命令
#make mrproper
#使用make oldconfig可以继承老的kernel的配置,为自己的配置省去很多麻烦 
make oldconfig
#make menuconfig是文字界面下推荐一种方式,在这里可以选择你需要编译到核心的模块
make menuconfig
/*
空格键用于选择配置类型
对不同功能的配置选择
[   ]:空选时表示不需要在新内核中使用该功能
[ M ]:表示将此项功能编译为模块,以便在需要时加载  Module
[ * ]:将此项功能直接编入新内核,作为新内核的一部分需要配置哪些内核编译参数
*/
#Networking support  --->  
# Networking options  ---> 
#  Network packet filtering framework (Netfilter)  --->
#   iP:netfilter configuraton --->
<M> IPv4 connection tracking support (required for NAT)
#     Full NAT 
   
#Networking support  --->  
# Networking options  ---> 
#  Network packet filtering framework (Netfilter)  --->   
#   core netfilter configuration --->
 <M> Netfilter connection tracking support
#    "connlimit" match support"  
#    "time" match support
#    "string" match support  
#    "layer7" match support
#     [*] Layer 7 debugging output 
 
#升级内核
make
make modules
make modules_install
make install
#修改默认以新的内核启动。
vi /boot/grub/grub.conf 
default=0
#将新的内核配置文件复制到/boot目录。 
cp /usr/src/linux-2.6.28.10/.config /boot/config-2.6.28.10
#重启完成后确认内核版本是否正确。
reboot 
uname –r
2.6.28

#5.给iptables打补丁并升级 
#卸载系统中的旧版本iptables。
rpm -qa |grep iptables 
rpm -e --nodeps iptables-1.3.5-4.el5
rpm -e --nodeps iptables-ipv6-1.3.5-4.el5
#合并补丁,并编译安装新的iptables工具
cd /opt
tar jxvf iptables-1.4.3.tar.bz2 -C /opt/
cd /opt/iptables-1.4.3/
cp /opt/netfilter-layer7-v2.22/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.*  extensions/
./configure  --prefix=/  --with-ksource=/usr/src/linux-2.6.28.10
make;make install

需要停止iptables服务

service iptables stop
用/usr/local/sbin/中的iptables(新版本)文件替换/sbin/iptables(这个是老版本的)

cp /usr/local/sbin/iptables /sbin/
cp /usr/local/sbin/iptables-restore /sbin/
cp /usr/local/sbin/iptables-save /sbin/
主要是上面三个文件,给整个目录也拿过去也行

测试一下

iptables -V
iptables v1.4.3

services iptables restart

 

确认iptables版本是否正确。
 
#6.安装l7-protocol
cd /opt
tar xzvf l7-protocols-2009-05-28.tar.gz 
cd l7-protocols-2008-11-23
make install
其实就是把响应的目录copy到 /etc/l7-protocols/
真正调用的是/etc/l7-protocols/protocols/下面的文件
可以打开下面具体的文件,里面是一些L7程序特征码的正则表达式形式
这样自己也可以按照这样的样子,写自己的特征码。
该特征码软件包一直在不停的更新,其后面的日期就是更新的日期,推荐定期选择最新的包进行更新。
#安装IPP2P
cd /opt/ipp2p-0.99.16
make
make install
cp ipt_ipp2p.ko /lib/modules/2.6.28.10/kernel/net/ipv4/netfilter/
cp libipt_ipp2p.so /lib/iptables/

#加载模块
modprobe ipt_connlimit
modprobe ipt_time
modprobe ipt_ipp2p
modprobe ipt_layer7
lsmod |grep x_tables
7.测试
$IPT -I FORWARD -p udp --dport 53 -m string --string "tencent" --algo bm -j DROP
$IPT -I FORWARD -p tcp -m multiport --dport 80,443 -m layer7 --l7proto qq -j DROP
$IPT -I FORWARD -p udp --dport 8000 -j DROP
$IPT -I FORWARD -p tcp -m layer7 --l7proto socks -j DROP
$IPT -I FORWARD -p udp --dport 53 -m string --string "messenger" --algo bm -j DROP 
$IPT -I FORWARD -p tcp -m multiport --dport 80,443 -m layer7 --l7proto msnmessenger -j DROP
$IPT -I FORWARD -p udp --dport 1863 -j DROP
$IPT -t mangle -A PREROUTING -m layer7 --l7proto qq -j DROP 
$IPT -t mangle -A PREROUTING -m layer7 --l7proto msnmessenger -j DROP
#======================================= layer7,time,ip2p2 ==================================
#测试layer7,time,ip2p2,可通过上面的策略表达式测试是否成功禁止掉qq、msn、ipp2p、xunlei
#$IPT -A FORWARD -m layer7 --l7proto qq  -m time --timestart 8:00 --timestop 17:30 --days Mon,Tue,Wed,Thu,Fri -m iprange --src-range 192.168.1.5-192.168.1.239 -m ipp2p --ipp2p -m ipp2p --xunlei -j DROP
#$IPT -A FORWARD -p tcp -m multiport --dport 80,443 -m layer7 --l7proto qq -j DROP
#======================================= connlimit ============================================
# 允许单个 IP 的最大连接数为 30 
#$IPT -A FORWARD -p tcp --dport 80 -m connlimit --connlimit-above 30 -j REJECT
#控制单个 IP 在一定的时间(比如60秒)内允许新建立的连接数 
#$IPT -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT 
#$IPT -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEPT 
#限制连往本机的web服务,1个C段的IP的并发连接不超过100个,超过的被拒绝
$IPT -A INPUT -i $INTERNET -p tcp -m multiport  --dports 80,443 -m connlimit --connlimit-above 500 --connlimit-mask  24 -j REJECT
 
#过滤syn包
$IPT -A INPUT -i $INTERNET -p tcp --tcp-flags SYN,ACK,FIN,RST SYN -m limit --limit 100/s --limit-burst 150 -m multiport --dports 80,443 -j DROP
 
$IPT -A INPUT -i $INTERNET  -p tcp --syn -m multiport  -dports 80,443 -m connlimit --connlimit-above 100 --connlimit -mask 32 -j DROP

 
 
#======================================= limit =============================================
#可达到每秒只接受一个 echo-request 封包 
$IPT -N pinglimit
$IPT -A pinglimit -m limit –limit 1/s –limit-burst 1 -j ACCEPT
$IPT -A pinglimit -j DROP
$IPT -A INPUT -p icmp –icmp-type echo-request -j pinglimit
#限制每秒只接受一个 icmp echo-request 封包
$IPT -A INPUT -p icmp –icmp-type echo-request -m limit –limit 1/s –limit-burst 1 -j ACCEPT
$IPT -A INPUT -p icmp –icmp-type echo-request -j DROP
#防治 SYN-Flood 碎片攻击(每秒只接受100个syn封包,)
#–limit 1/s 表示每秒一次; 1/m 则为每分钟一次; 1/h 则为每小时一次
#–limit-burst 表示允许触发 limit 限制的最大次数 (预设 5)
$IPT -N syn-flood
$IPT -A syn-flood -m limit –limit 100/s –limit-burst 150 -j RETURN
$IPT -A syn-flood -j DROP
$IPT -I INPUT -j syn-flood
#===================================== string ================================================
#每个词都用baidu和google识别出来gbk编码和utf-8编码的字串,全封住。
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "股市" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%E8%82%A1%E5%B8%82" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%B9%C9%CA%D0" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "基金" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%E5%9F%BA%E9%87%91" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%BB%F9%BD%F0" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "股票" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%E8%82%A1%E7%A5%A8" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%B9%C9%C6%B1" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "证券" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%E8%AF%81%E5%88%B8" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "%D6%A4%C8%AF" -j DROP
#下面是些纯英文的词,做起来简洁多了
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "fund" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "finance" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "business" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "money" -j DROP
/usr/sbin/iptables -A FORWARD -m string --algo bm --string "stock" -j DROP
 
 本文转自king_819 51CTO博客,原文链接:http://blog.51cto.com/kerry/290479,如需转载请自行联系原作者
相关文章
|
5月前
|
监控 安全 数据挖掘
网络游戏服务器如何有效防护DDoS与CC攻击
随着网络游戏行业的蓬勃发展,其背后的服务器架构日益复杂,同时也面临着前所未有的网络安全威胁。其中,分布式拒绝服务(DDoS)和CC(Challenge Collapsar,一种针对网页的攻击方式)攻击尤为突出,它们通过大量伪造请求或恶意流量,使服务器资源耗尽,导致服务中断或响应缓慢。因此,保障网络游戏服务器的安全,有效防护DDoS与CC攻击,已成为游戏行业亟待解决的问题。
|
4月前
|
云安全 SQL 安全
揭秘DDoS与CC攻击的异同与防御策略!
本文详细解析了CC攻击与DDoS攻击这两种常见网络威胁,探讨了它们的异同及防御策略。通过一个网站遭遇攻击的真实案例,揭示了CC攻击的隐蔽性和DDoS攻击的强大破坏力。文章还介绍了德迅云的高防服务器解决方案,强调了加强网络安全意识和技术防护的重要性,帮助网站运营者有效抵御网络攻击,确保业务稳定运行。
|
5月前
|
云安全 负载均衡 安全
CC攻击和DDoS攻击
【8月更文挑战第17天】
135 4
|
缓存 网络协议 安全
网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御
网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御
945 0
|
8月前
|
安全 网络协议 网络安全
【看案例】冠赢互娱:用游戏盾解决DDoS/CC攻击
冠赢互娱凭借阿里云专为游戏行业定制的游戏盾安全防护方案,在APP端切入游戏盾,对整个传输链路进行安全处置,精准定位黑客并实现风险隔离,解决了DDoS攻击、游戏CC攻击问题。
134 0
【看案例】冠赢互娱:用游戏盾解决DDoS/CC攻击
|
12天前
|
监控 负载均衡 安全
什么是DDoS攻击及如何防护DDOS攻击
通过上述防护措施,企业和组织可以构建全面的DDoS防护体系,有效抵御各类DDoS攻击,确保网络和服务的稳定运行。
90 10
|
3月前
|
网络协议 安全 网络安全
如何识别DDOS攻击模式?
【10月更文挑战第12天】如何识别DDOS攻击模式?
123 18
|
3月前
|
监控 网络协议 网络安全
识别DDoS攻击
【10月更文挑战第12天】识别DDoS攻击
81 16
|
2月前
|
数据采集 边缘计算 安全
高防CDN防御ddos攻击的效果怎么样
如在线购物、支付及娱乐。然而,随着企业价值和知名度提升,它们可能遭受竞争对手或黑客的DDoS攻击,即通过大量僵尸网络使目标服务器过载,导致服务中断,造成经济损失和声誉损害。针对这一挑战,天下数据推出的高防CDN不仅具备传统CDN的加速功能,还能有效抵御DDoS攻击,保护企业网络安全。
53 0
|
3月前
|
网络协议 安全 网络安全
DDoS攻击有哪些常见形式?
【10月更文挑战第13天】DDoS攻击有哪些常见形式?
296 14

热门文章

最新文章