这篇文章主要介绍“LINUX的iptables防火墙知识点有哪些”,在日常操作中,相信很多人在LINUX的iptables防火墙知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINUX的iptables防火墙知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
位于Linux内核中的包过滤功能体系
称为Linux防火墙的“内核态”
位于/sbin/iptables,用来管理防火墙规则的工具
称为Linux防火墙的“用户态”
上述2种称呼都可以表示Linux防火墙
规则的作用:对数据包进行过滤或处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING链:在进行路由选择后处理数据包
PREROUTING链:在进行路由选择前处理数据包
表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似
raw表:确定是否对该数据包进行状态跟踪
mangle表:为数据包设置标记
nat表:修改数据包中的源、目标IP地址或端口
filter表:确定是否放行该数据包(过滤)
规则表之间的顺序:rawàmangleànatàfilter
规则链之间的顺序
入站:PREROUTINGàINPUT
出站:OUTPUTàPOSTROUTING
转发:PREROUTINGàFORWARDàPOSTROUTING
按顺序依次检查,匹配即停止(LOG策略例外)
若找不到相匹配的规则,则按该链的默认策略处理
iptables [-t 表名] 选项 链名 条件 -j 控制类型
//表filter的INPUT链的开头写入拒绝(必要时会给出提示)以icmp协议的数据
例: iptables -t filter -I INPUT -p icmp -j REJECT
注意:如-t 表名不写,则默认是filter表
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
ACCEPT:允许通过
DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志信息,然后传给下一条规则继续匹配
-A:在链的末尾追加一条规则
-I:在链的开头(或指定序号)插入一条规则(大写的i)
//表filter的INPUT链的末尾写入允许以tcp协议的数据入站规则
例: iptables -t filter -A INPUT -p tcp -j ACCEPT
//表filter的INPUT链的开头写入允许以tcp协议的数据入站规则
iptables -t filter -I INPUT -p tcp -j ACCEPT
//表filter的INPUT链的第2行写入允许以tcp协议的数据入站规则
iptables -t filter -I INPUT 2 -p tcp -j ACCEPT
-L:列出所有的规则条目
-n:以数字形式显示地址、端口等信息
-v:以更详细的方式显示规则信息
--line-numbers:显示规则的序号
例: iptables -nL INPUT //-nL不可调转位置
-D:删除链内指定序号(或内容)的一条规则
-F:清空所有的规则
例: iptables -D INPUT 3 //删除表filter中的链INPUT中的第3条规则
iptables -t nat -F //删除表nat中的所有链的所有规则
-P:为指定的链设置默认规则
注意:默认策略要么是ACCEPT、要么是DROP
//表filter的默认规则是转发的数据都丢弃
例: iptables -t filter -P FORWARD DROP
可直接使用,不依赖于其他条件或扩展
包括网络协议、IP地址、网络接口等条件
要求以特定的协议匹配作为前提
包括端口、TCP标记、ICMP类型等条件
要求以“-m 扩展模块”的形式明确指出类型
包括多端口、MAC地址、IP范围、数据包状态等条件
协议匹配:-p 协议名
地址匹配:-s 源地址、-d 目的地址
接口匹配:-i 入站网卡、-o 出站网卡
//表filter的INPUT链的开头写入丢弃以icmp协议入站的数据的规则
例: iptables -I INPUT -p icmp -j DROP
//表filter的FORWARD链末尾写入允许除了icmp协议转发的数据的规则
iptables -A FORWARD -p !icmp -j ACCEPT
//表filter的INPUT链末尾写入丢弃网卡eth2,网段1.0的入站数据规则
iptables -A INPUT -i eth2 -s 192.168.1.0/24 -j DROP
//意义同上
iptables -A INPUT -i eth2 -s 172.16.0.0/12 -j DROP
端口匹配:--sport 源端口、--dport 目的端口
TCP标记匹配:--tcp-flags 检查范围 被设置的标记
ICMP类型匹配:--icmp-type ICMP类型
//链FORWARD末尾写入允许转发以udp协议,网段1.0,端口53的数据规则
例:iptables -A FORWARD -s 192.168.1.0/24 -p udp --dport 53 -j ACCEPT
//链INPUT末尾写入允许以协议tcp,端口20,21的入站数据规则
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
//链INPUT末尾写入丢弃以协议icmp,类型为8的入站数据规则,8请
求,0回显,3不可达
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
//链INPUT末尾写入丢弃以协议icmp,类型为0的入站数据规则
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
//链INPUT末尾写入丢弃以协议icmp,类型为3的入站数据规则
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
多端口匹配:-m multiport --sports 源端口列表
-m multiport --dports 目的端口列表
IP范围匹配:-m iprange --src-range IP范围
MAC地址匹配:-m mac --mac-source MAC地址
状态匹配:-m state --state 连接状态
//链INPUT开头写入允许以tcp协议,多端口(此处只有一个)80的入站数据规则
例:iptables -I INPUT -p tcp -m multiport --dport 80 -j ACCEPT
//链INPUT开头写入允许以tcp协议,连接状态ESTABLISHED,RELATED的入站数据规则
iptables -I INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
//链INPUT末尾写入允许以tcp协议,多端口25,80,110,143的入站数据规则
iptables -A INPUT -p tcp -m multiport --dport 25,80,110,143 -j ACCEPT
//链RORWARD末尾写入默认允许以tcp协议,地址范围4.21-4.28的入站数据规则
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28
-j ACCEPT
//链INPUT末尾写入丢弃来自mack地址为00:0c:29:c0:55:3f的入站数据规则
iptables -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j DROP
应用环境:局域网主机共享单个公网IP地址接入Internet
原理:源地址转换,修改数据包的源地址
局域网各主机正确设置IP地址/子网掩码
局域网各主机正确设置默认网关地址
Linux网关支持IP路由转发
//表nat的链POSTROUTING末尾写入以SNAT策略把源网段1.0的经出站
网卡eth2出去的地址转成目标地址2.39出去的规则(转换内网的地址)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth2 -j SNAT --to-source 192.168.2.39
//192.168.1.0/24:内网网段
//eth2:外网接口的名称
//192.168.2.39:外网接口的IP地址
在局域网主机 192.168.1.40 中能够访问外网的Web服务器192.168.2.40
查看Web主机 192.168.1.40 的访问日志,记录的来访者应是网关主机的外网IP地址 192.168.2.39。也可用客户端ping服务端,看是否通
应用环境:在Internet中发布位于企业局域网内的服务器
原理:目标地址转换,修改数据包的目标地址
局域网的Web服务器能够访问Internet
网关的外网IP地址有正确的DNS解析记录
Linux网关支持IP路由转发
//表nat的链PREROUTING末尾写入以DNAT策略把以tcp协议,端口:80,目标地址2.39
经入站网卡eth0来的转成源地址1.40的规则(转换的外网Internet地址)
iptables -t nat -A PREROUTING -i eth0 -d 192.168.2.39 -p tcp --dport 80 -j DNAT
--to-destination 192.168.1.40
//192.168.2.39:外网接口的IP地址
//80:发布的服务端口
//192.168.1.46:Web:防火墙的内网IP地址
在外网客户机 192.168.2.40 中能够访问位于企业内网的Web服务,访问地址为
http://192.168.2.39
查看Web服务器 192.168.1.40 的访问日志,记录了外网客户机的IP地址192.168.2.40,
也可用外网客户机ping内网web服务机,看是否通
DNAT规则中以“IP:Port”的形式指定目标地址
//表nat的链PREROUTING末尾写入以DNAT策略把以tcp协议,端口:2346,目标地址2.39
经入站网卡eth0来的地址转成源地址1.40,端口:22的规则(端口也改变)
iptables -t nat -A PREROUTING -i eth2 -d 192.168.2.39 -p tcp --dport 2346 -j DNAT
--to-destination 192.168.1.46:22
//2346:访问的目标端口
//22:实际提供服务的端口
到此,关于“LINUX的iptables防火墙知识点有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。