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