首页 > 脚本编程 > iptables的limit模块使用
您的足迹
  • 你没有浏览过任何文章或者你没有开启cookies。

iptables的limit模块使用

前些时候发现有的服务器ping之后,前面几个包是通的,后面几个包就断续断续了,本来以为对方服务器问题,后来和对方确认后后来对方开了防火墙。后来研究发现了iptables的limit可以实现这个功能,以icmp为例:

iptables -A INPUT -p icmp -m limit --limit 12/minute --limit-burst 4 -j ACCEPT

–limit 12/minute为一个分钟12个包,即5秒1个包,这个事件什么时候触发呢,就需要–limit-burst参数,这里初始值4个包。整个iptables脚本如下:

#!/bin/bash
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT DROP 
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -s 58.240.26.0/24 -p tcp -m tcp -j ACCEPT
iptables -A INPUT -i eth0 -s 218.104.82.224/29 -p tcp -m tcp -j ACCEPT
# 限制数据包数量
iptables -A INPUT -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 20/sec --limit-burst 200 -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 12/minute --limit-burst 4 -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 12/minute --limit-burst 4 -j LOG --log-prefix PING-DROP: #记录日志/var/log/messages
#ssh web 规则 ,使用multiport模块
iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --dport 4567,80 -j ACCEPT
iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --sport 4567,80 -j ACCEPT
#ICMP 规则
#iptables -A INPUT -p icmp --icmp-type echo-request -j DROP #默认规则DROP,这两个规则去除
#iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT#允许服务器本身往外ping
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
  1. chenhan 2012/08/29 下午 5:11 | #1

    Limit模块默认就有的么?

    • Moon 2012/09/21 上午 8:30 | #2

      嗯 ,不需要第三方。配置一下就行。也测试过iptables,感觉没有limit效果好。

评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks
Feed