iptables的使用以及模块

iptables的使用以及模块

iptables的使用

1、安装
2、启动
3、关闭firewalld

具体使用方法

格式:iptables -t 表名 选项 链名称  条件 
	-t 指定操作系统
	-L,--list 列出当前规则
	-v 显示数据包和数据包的大小
	-n 不犯解地址
	-A, --append 追加一条规则到链中
	-I, --insert 插入一条规则
	-F,--flush 清空
	-Z, --zero 清空计数器(包数量,包大小)
	-D, --delete 删除链中的规则
	-R, --replace 修改
	-S, --list-rules 列出所有的规则
	-N, --new-chain 创建一个自定义的链
	-X, --delete-chain 删除一个自定义的链
	-P, --policy 指定链的默认策略

iptables动作

ACCEPT:将数据包放行,进行完此动作后,将不再对比其他,直接跳往下一个规则链
REJECT:阻拦该数据包,并传送该数据包,并传送数据包通知对方
DROP:丢包将不予处理,进行完此动作后,将不再对比其他规则,直接中断过滤程序
REDIRECT:将包重新导向另一个端口,进行完此动作后,将会继续比对其他规则

iptables基本条件匹配/地址/端口

TCP协议
UDP协议
ICMP(ping)
	ALL
源地址:发送请求的地址 -s
目标地址:访问的地址 -d
源端口:--sport
目标端口:--dport

-i、-o、-m、-j 动作

-i :进来的网卡
-o :出去的网卡
-m :指定模块
-j :转发动作
-p :指定协议

知识补充:netstat -nutlp

模块

拓展iptables的功能

-m 指定模块
1、连续匹配多个端口(multiport)
--dports 指定多个端口,不同的端口之间用逗号分隔,连续的端口使用冒号分割
[root@judy-m01 ~]# iptables -t filter -A INPUT -p TCP -m multiport --dports 22,80,443,30000:50000 -j ACCEPT
[root@judy-m01 ~]# iptables -f filter -A INPUT -p TCP -j DROP
2、指定一段连续的ip地址范围(iprange)
--src-range from[-to] 源地址范围
--dst-range from[-to] 目标地址范围
[root@judy-m01 ~]#  iptables -t filter -A INPUT -p TCP -m multiport --dports 22,80,443,30000:50000 -j ACCEPT
3、匹配指定字符串(string)
--string "要匹配的内容" 指定要匹配的字符串
--algo {bm|kmp} 匹配的查询算法
[root@judy-m01 ~]# iptables -t filter -A INPUT -p TCP -m icmp --icmp-type "echo-request" -j DROP
4、根据时间段匹配报文(time)
--timestart hh:mm[:ss]  指定开始时间 
--timestop hh:mm[:ss] 指定结束时间 
--monthdays day[,day...] 指定一个月中的某一天 
--weekdays day[,day...] 指定周还是周天 
[root@judy-m01 ~]# iptables -t filter -A INPUT -p TCP -m time  --timestart 7:00   --timestop 8:00 -j DROP --》这个时间必须是utc时间
5、禁ping
默认本机无法ping别人,别人也无法ping自己
--icmp-type {type[/code]|typename} 
echo-request (8) 请求
echo-reply (0)回应
	[root@judy-m01 ~]# iptables -t filter -A INPUT -p TCP -m icmp --icmp-type "echo-request" -j DROP 「有问题????」
6、限制链接数,并发连接数(connlimit)
--connlimit-upto n 如果现有连接数小于或等于 n 则匹配
--connlimit-above n 如果有链接数大于n 则匹配
[root@judy-m01 ~]# iptables -t filter -A INPUT -p TCP --dport 22 -m connlimit --connlimit-above 2 -j DROP
7、针对报文速率进行限制,秒,分,小时,天
--limit rate[/second|/minutel|hour|day|/   报文数
--lmit-burst number 报文数量(默认5)
[root@judy-m01 ~]# iptables -t filter -A INPUT -p TCP -m limit 444/s -j ACCEPT
[root@judy-m01 ~]# iptables -t filter -A INPUT -p TCP -j DROP
上一篇:ASP.NET Web API 控制器创建过程(二)


下一篇:linux:模块