linux:模块
linux模块
简介:模块的主要功能是扩展iptables
ps:-m 指定模块
一、连续匹配多个端口
1 --dports : 指定多个端口(不同端口之间以逗号分割,连续的端口使用冒号分割)。
二、指定一段连续的IP地址范围(iprange)
1 --src-range form【-to】: 源地址范围 2 --dst-range form【-to】: 目标地址范围
三、匹配指定字符串(string)
--string pattern 指定要匹配的字符串 --algo{bm|kmp} 匹配的查询算法
四、根据时间段匹配报文(time)
--timestart hh:mm【:ss】 开始时间 --timestop hh:mm【:ss】 结束时间 --monthdays day【,day...】 指定一个月的某一天 --weekdays day【,day...】 指定周 还是 周天
五、禁ping,默认本机无法ping别人、别人无法ping自己
--icmp-type {type【/code】| typename} echo-request (8) 请求 echo-reply (0)回应
六、限制链接数,并发链接数(connlimit)
--connlimit-upto n 如果现有连接数小于或等于 n 则匹配
--connlimit-above n 如果现有链接数大于n则匹配
七、针对 报文速率 进行限制.秒、分钟、小时、天
--limit rate[/second|/minute|/hour|/day] 报文数量 --limit-burst number 报文数量(默认:5)
八、案例
1>要求将22,80,443以及30000-50000之间所有的端口向外暴露,其他端口拒绝
1 iptables -t filter -A INPUT -p TCP -m multiport --dports 22,80,443,30000:50000 -j ACCEPT 2 iptables -f filter -A INPUT -p TCP -j DROP
2>要求访问数据包中包含HelloWorld的数据不允许通过。
1 iptables -t filter -A INPUT -p TCP -m string --string "HelloWorld" --algo kmp -j DROP
3>要求192.168.15.1 - 192.168.15.10之间的所有IP能够连接192.168.15.81,其他拒绝
1 iptables -t filter -A INPUT -p TCP -m iprange --src-range 192.168.15.1-192.168.15.10 -j ACCEPT 2 iptables -f filter -A INPUT -p TCP -j DROP
4>要求每天的12到13之间,不允许访问
1 iptables -t filter -A INPUT -p TCP -m time --timestart 4:00 --timestop 5:00 -j DROP 2 3 必须使用UTC时间
5>要求别人不能ping本机,但是本机可以ping别人
1 iptables -t filter -A INPUT -p TCP -m icmp --icmp-type "echo-request" -j DROP
6>要求主机连接最多有2个
1 iptables -t filter -A INPUT -p TCP --dport 22 -m connlimit --connlimit-above 2 -j DROP
7>要求限制速率在500k/s左右
1 iptables -t filter -A INPUT -p TCP -m limit 333/s -j ACCEPT 2 iptables -t filter -A INPUT -p TCP -j DROP