iptables

iptables防火墙

iptables的结构:iptables -> Tables -> Chains -> Rules

简单地讲,tables由chains组成,而chains又由rules组成,牢记以下三点是理解iptables规则的关键

Rules包括一个条件和一个目标(target)
如果满足条件就执行目标(target)中的规则或者特定值,
如果不满足条件,就判断下一条Rules

iptables里默认的4个规则表

raw表 --记录状态,确定你是新的数据包还是老的数据包 mangle表 --为数据包设置标记
nat表 --修改数据包中的源、目标IP地址和端口号 (用的第二多的表)
filter表–过滤,确定是否放行该数据包 (用的最多的表,同时也是iptables的默认表)

iptables里默认的5种规则链 	

INPUT --处理入站数据包
OUTPUT --处理出站数据包
FORWARD --处理转发数据包
PREROUTING --在进行路由选择前处理数据包 POSTROUTING --在进行路由选择后处理数据包

默认情况下路由功能是关闭的(FORWARD)

 cat /proc/sys/net/ipv4/ip_forward
0
	打开路由功能
 echo 1 >/proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
1

规则表间的优先顺序

依次为: raw、mangle、nat、filter

规则链内的匹配顺序

按顺序依次进行检查,找到相匹配的规则即停止(LOG策略会有例外) ,若在该链内找不到相匹配的规则,则按该链的默认策略处理

查看iptables防火墙默认的规则表

(1)iptables -L

    查看filter表
        iptables -t filter -L
	查看mangle表
		iptables -t mangle -L
	查看raw表
		iptables -t raw -L
	查看nat表
		iptables -t nat -L

Chain INPUT (policy ACCEPT)
target prot opt source destination
目标 协议 选项 源 目的地

iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目标动作或跳转]
iptables严格区分大小写
设置规则内容
	-A
		append
			在链尾追加一条新的规则
	-I
		insert
			在指定位置(或链首)插入一条新的规则
	-R
		replace
			修改、替换指定位置或内容的规则
	-P
		policy
			设置指定链的默认策略
列表查看规则
	-L
		列表查看各条规则信息
    	--line-numbers (或者--line)
		     查看规则信息时显示规则的行号
	-n
		以数字形式显示IP地址、端口等信息
	-v
		显示数据包个数、字节数等详细信息
清除规则
	-D
		删除指定位置或内容的规则
	-F
		清空规则链内的所有规则
自定义规则链
	-N
		创建一条新的规则链
	-X
		删除自定义的规则链

新创建的规则链如何被使用?

通过默认的5条规则链调用(类似于归于五链某个管)

删除新创建的规则链
先将链里面的规则删除,然后再将新创建的规则链删除
iptables -D sanchuang 1
iptables -X sanchuang

通用条件匹配
	协议匹配
		-p 协议名
		常用的协议包括tcp、udp、icmp等
	地址匹配
		-s 源地址
		-d 目标地址
		地址可以是单个IP地址、网络地址(带掩码长度)
	接口匹配
		-i 网络接口名
			对应接收数据包的网络接口
		-o 网络接口名
			对应发送数据包的网络接口
隐含条件匹配
	端口匹配
		--sport 源端口
		--dport 目的端口
		端口号之前必须要指明用的是哪种协议
		使用"端口1:端口2"的形式可以指定一个范围的端口
	TCP标记匹配
		使用“--tcp-flags 检查范围 被设置的标记”的形式
		如“--tcp-flags SYN,RST,ACK SYN”表示检查SYN、RST、ACK这3个标记,只有SYN为1时满足条件
	ICMP类型匹配
		使用“--icmp-type ICMP类型”的形式
		ICMP类型可以使用类型字符串或者对应的数值,例如Echo-Request(对应的数值为8)、Echo-Reply(对应的数值为0)
显式条件匹配
	MAC地址匹配
		使用“-m mac”结合“--mac-source MAC地址”的形式
	多端口匹配
		使用“-m multiport”结合“--sports 源端口列表”或者“--dports 目标端口列表”的形式
		多个端口之间使用逗号“,”分隔,连续的端口也可以使用冒号“:”分隔
		举例
			iptables -A INPUT -p tcp -m multiport --dport 9988,8877,6655 -j ACCEPT
	IP地址范围匹配
		使用“-m iprange”结合“--src-range 源IP范围”或者“--dst-range 目标IP范围”的形式
		以“-”符号连接起始IP地址、结束IP地址
几个实例
	在filter表的INPUT链尾追加一条新的规则
		iptables -t filter -A INPUT -p tcp -j ACCEPT
	在filter表的INPUT链首插入一条新的规则
		iptables -I INPUT -p udp -j ACCEPT
	在filter表的INPUT链的第2个位置插入一条新的规则
		iptables -I INPUT 2 -p icmp -j ACCEPT
	更改filter表的INPUT链的默认策略为DROP
		iptables -P INPUT DROP 
	查看filter表的INPUT链的全部规则
		iptables -L INPUT --line
		[root@huyuxuan lianxi]# iptables -L INPUT --line

Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT udp – anywhere anywhere
2 ACCEPT icmp – anywhere anywhere
3 ACCEPT tcp – anywhere anywhere
! 取反

iptables -A FORWARD -p ! icmp -j ACCEPT

这里表示除了icmp协议之外的其他所有协议都ACCEPT,是icmp协议的就拒绝

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值