iptables 的一些-m模块

1、每一个tcp连接成功后,其状态在防火墙的nf_conntrack(连接跟踪数据库)文件中是-----ESTABLISHED--状态。

/proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established:如果client和servers连接的连接上没有任何数据包,那么该文件中的val值将代表多少秒后,清除该条连接的记录。

2、在TCP/IP 网络上,数据的传输方式有三种:

Unicast【发送给特定的用户】、

Broadcast【发送到广播地址】、

Multicast【网络音频或视频,特定:ip一定介于224.0.0.0/4】、

如果通过Ping + 广播地址,将使得所以网段的主机收到这个数据包,同时使用ping命令的主机将收到大量的ping reply包,如果攻击者,伪装源地址,那么大量的响应包将回到自己的主机上,同时在网络上传输,导致网络瘫痪。

防火墙规则限制ping命令ping广播地址:

iptables -A INPUT -t filter -p icmp -m pkttype --pkt-type broadcast -j DROP 【-m pkttype】

3、DOS攻击:大量的icmp包,携带大量数据(16k),撑爆网络,和吃满cpu,

iptables -A INPUT -t filter -p icmp --type-icmp 8 -m length --length 92 -j ACCEP【接受正常大小的icmp包】

iptables -A INPUT -t filter -p icmp --type-icmp 8  -j DROP

--lenght 50:匹配刚好50的数据包;--lenght :100=>匹配小于100的数据包;--length 50:100=》匹配50~100之间的数据包。

4、-m limit模块=》特定数据包重复率的匹配

限制一点时间内数据包能进入的数量:m[分钟],s[秒],h[小时],d[天]

iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 6/m --limit-brust 10 -j ACCEPT

iptables -A INPUT -p icmp --icmp-type 8 -j DROP

[如果每分钟进入的icmp数量小于等于10,是被允许的]

-m recent模块:

参数:-name【设置跟踪数据库】

        [!] --set【将符合的来源端数据添加到数据库中,如果数据存在就更新数据】

[!] --rcheck 【确定数据库的匹配】

[!] --update 【来源端数据存在,就更新;不存在就不处理】

[!] --remove 【来源端数据存在,就移除;不存在就不处理】

[!] --seconds sencond 【当事件发生时,只匹配数据库前几秒内的数据,--seconds必须与--rcheck或--update参数配合使用】

[!] --hitcount hits【匹配重复发生的次数】,必须与--rtcheck 或 --update共用

如果我们希望每分钟只能进6个icmp数据包:

iptables -A INPUT -p icmp -m recent --name icmp_db --rcheck --second 60 --hitcount 6 -j DROP

iptables -A INPUT -p icmp --icmp-type 8 -m recent --set  --name icmp_db

【数据存放位置在/proc/net/xt_recent/icmp_db[需要创建规则后可查看]】

第一条规则表示:1分钟 内只能允许6个数据包的进入,并且检查icmp_db数据库中的数据,在当前秒数向前搜索60秒的时间进行匹配。【该规则只检查数据库,是否有满足条件的数据发生】

第二条规则表示:将icmp  8类型的数据包记录到icmp_db数据库中。【将数据记录到icmp_db数据库中让数据检查[--recheck]起作用】

--update【?】

5、-m string:匹配数据包中的date内容

【在包过滤防火墙中,匹配数据包的包头信息,而非数据包中的承载的数据内容,应用层防火墙可以决绝这个问题,但其匹配速度较慢,影响连接】

string模块在“网络层”进行数据内容的匹配,比应用层防火墙更高效。

iptables -A INPUT -i eth0 -o eth1 -p tcp -d $web_server --dport 80 -m string --algo bm --string "system32" -j DROP

6、-m time:设置规则的生效时间

iptables -A FORWARD -o eth1 -d $srv_farm -m time --weekday Mon,Tue,Wed,Thu,Fri --timestart 09:00 --timestop 21:00 -j ACCEPT

iptables -A FORWARD -o eth1 -d $srv_farm -j DROP

【--weekday:Mon,Tue,Wed,Thu,Fri,Sat,Sun】

【--timestart  [00:00]--timestop [00:00] 】

7、-m connmask 模块匹配mark值

nfmark 和ctmark: -j MARK -set value 【nfmark】与connmark【ctmark】都叫mark.

iptables -A INPUT -m connmark --mark 10 -j DROP

8、conntrack :匹配数据包的状态

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m conntrack --ctproto tcp --ctorigsrc 192.168.1.0/24 \
         --ctorigdstport 21 --ctstate NEW -j ACCEPT
【限制只有192.168.1.0/24的主机可以访问FTP服务器】

9、/etc/proctol找到传输协议对应的ID【TCP 6 ,ICMP 1】

-m u32、-m hashlimit模块。。。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值