详解iptables防火墙
文章目录
- 1.Linux包过滤防火墙概述
- 2.iptables的表、链结构
- 3.iptables安装
- 4.iptables的基本语法
- 5.规则的匹配条件
1.Linux包过滤防火墙概述
netfilter位于linux内核中的包过滤功能体系称为linux防火墙的"内核态”
iptables位于/sbin/iptables,用来管理防火墙规则的工具称为lilnux防火墙的“用户态”
————上述2种称呼都可以表示Linux防火墙
包过滤的工作层次
主要是网络层,针对IP数据包
体现在对包内的IP地址,端口等信息的处理上
2.iptables的表、链结构
规则链规则的作用:对数据包进行过滤或处理链的作用:容纳各种防火墙规则链的分类依据:处理数据包的不同时机
默认包括5种规则链INPUT:处理入站数据包OUTPUT:处理出战数据包FORWARD:处理转发数据包POSTROUTING链:在进行路由选择后处理数据包PREROUTING链:在进行路由选择前处理数据包
规则链之间的顺序(重要)入站:prerouting-->input出站 :output->postrouting转发:prerouting->forward->postrouting
规则链内部各防火墙规则之间的顺序按顺序依次检查,匹配即停止(log策略例外)若找不到相匹配的规则,则按该链的默认策略处理
规则表
作用及划分依据表的作用:容纳各种规则链表的划分依据:防火墙规则的作用相似
默认包括4个规则表raw表:确认是否对该数据包进行状态跟踪mangle表:为数据包设置标记nat表:修改数据包中的源、目标IP地址或端口filter表:确定是否放行该数据包(过滤)
规则表之间的顺序(重要)raw--->mangle-->nat--->filter
表名称 | 功能 |
---|---|
filter表 | 用来对数据包过滤,根据具体的规则要求决定如何处理一个数据包filter表对应的内核模块为iptable_filter,表内包含一个连,即INPUT,FORWARD,OUTPUT |
nat表 | nat(网络地址转换)表主要用来修改数据包的ip地址,端口信息,nat表对应的内核模块为iptable_nat,表内包包含三个链,即PREROUTING,postrouting,output |
mangle表 | 用来修改数据包的TOS(服务类型)TTL(生存周期),或者为数据包设置Mark标记,已实现流量整形,策略路由等高级应用,mangle表对应的内核模块为iptable_mangle,表内包含五个链,即prerouting,postrouting,input,output,forward |
raw表 | 是自1.2.9以后版本的iptables新增的表,主要用来决定是否对数据包进行状态跟踪,raw表对应的内核模块为iptable_raw,表内包含两个链,即output,prerouting |
其中,input ,output链主要用在“主机型防火墙”中,即主要针对服务器本机进行保护的防火墙;而forward, prerouting.postrouting链 多用在“网络型防火墙”中,如使用linux防火墙作为网关服务器,在公司内网与internet之间进行安全控制。
如图所示:
数据包过滤的匹配流程
数据包过滤的匹配流程示意图
3.iptables安装
centos 7默认安装的是firewalld防火墙,若想要使用iptables防火墙,必须先关闭firewalld防火墙
关闭firewalld防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
安装iptables防火墙
yum -y install iptables-services
设置iptables开机自启动
systemctl start iptables.service
systemctl enable iptables.services
永久关闭核心防护
vi /etc/selinux/conf
SELINUX=disabled
4.iptables的基本语法
1.语法构成
iptables [-t 表名] 选项 [链名] [条件] [-i 控制类型]
例如:iptables -t filter -I INPUT -p(阻止ping测试) icmp -j REJECT
注意事项不指定表名时,默认指filter表不指定链接=名时,默认指定表内所有链除非设置链的默认策略,否则必须指定匹配条件选项,链名,控制类型使用大写字母,其余均为小写
数据包的常见的控制类型ACCEPT:允许通过DROP: 直接丢弃,不给出任何回应REJECT:拒绝通过,必要时会给出提示LOG: 记录日志信息,然后传给下一条规则继续匹配
2.添加,查看,删除规则等基本操作
iptables命令的常用管理选项
选项名 | 功能及特点 |
---|---|
-A | 在指定的末尾添加(append)一条新的规则 |
-D | 删除(delete)指定链中的某一条过着,可指定规则序号或具体内容 |
-I | 在指定链中插入(insert)一条新的规则。未指定序号时默认作为第一条规则 |
-R | 修改,替换(replace)指定链中的某一条规则,可指定规则序号或具体内容 |
-L | 列出(list)指定链中的所有规则,若未指定链名,则列出表中的所有链 |
-F | 清空(flush)指定链中所有规则,若未指定链名,则清空表中所有链 |
-P | 设置链的默认则略(policy) |
-n | 使用数字形式(numeric)显示输出结果,如显示ip地址而不是主机名 |
添加新的规则
-A: 在链的末尾追加一条规则
-I :在链的开头(或指定序号)插入一条规则
例如:
iptables -t filter -A INPUT -p tcp -j ACCEPT
iptables -I INPUT -p udp -j ACCEPT
iptables -I INPUT 2 -p icmp -j ACCEPT // -p 用来指定协议 ,2用来指定行数
查看规则
选项 | 功能 |
---|---|
-L | 列出所有的规则条目 |
-n | 以数字形式显示地址,端口等信息 |
-v | 以更详细的方式显示规则信息 |
–line-numbers | 查看规则时,显示规则的序号 |
例如:查看filter表input链里面的所有语句
删除,清空规则
-D:删除链内指定序号(或内容)的一条规则
-F:清空所有规则
删除一条规则使用管理选项 -D例如:若要删除filter表input链中的第三条规则,可以执行以下操作iptables -D INPUT 3
iptables -n -L INPUT //确认删除效果清空指定链或表中的所有防火墙规则,使用管理选项 -F例如 :要清空filter表INPUTiptables -t filter -n -L INPUT清空所有表的所有链iptables -F iptables -t nat -F iptables -t mangle -F iptables -t raw -F表的优先级:raw > mangle > nat > filter
设置默认策略
-P:为指定的链设置默认规则
例如:清空所有默认策略要么是ACCEPT,要么是DROP表的所有链
iptables -t filter -P FORWARD DROP
iptables -P OUTPUT ACCEPT
注意:不指定表默认跟的是前面一个表
注意:当使用管理选项-f清空链时,默认策略不受影响,因此若要修改默认策略,必须通过管理选项-P重新进行设置,另外,默认策略不参与链内规则德顺序编排,因此其他规则之前或之后设置并无区别。
5.规则的匹配条件
在编写防火墙规则时,匹配条件设设置骑着决定性的作用,只有清晰,准确的设置好匹配条件,防火墙才知道要对符合什么条件的数据包进行处理,避免误杀,对于同一条防火墙规则,可以指定多个匹配条件,表示这些条件必须都满足规则才会生效,根据数据包的各种特征,结合iptables的模块结构,匹配条件的设置包括三大类:通用匹配,隐含匹配,显式匹配。
通用匹配可直接使用,不依赖于其他条件或扩展包括网络协议,ip地址,网络接口等条件
隐含匹配要求以特定的协议匹配作为前提包括端口,tcp标记,icmp类型条件等
显式匹配要求以“-m扩展模块”的形式明确指出类型包括多端口,mac地址,ip范围,数据包状态等条件常见的通用匹配条件协议匹配:-p 协议名地址匹配:-s 源地址(入站),-d目的地址(出站)接口匹配:-i入站网卡,-o出站网卡例如:在input末尾插入一条规则入站ens33源地址为 私有网址段都不允许通过
iptables -AINPUT -i ens33 -s 192.168.1.1/16 -j DROP
iptables -A INPUT -i ens33 -s 10.0.0./8 -j DROP
iptables -A INPUT -i ens33 -s 192.168.0.0/12 -j DROP
以上是不允许私有网段访问
iptables -I INPUT -p icmp -j DROP //在input开头插入一条规则允许icmp可访问
iptables -A FORWORD !-p icmp -j ACCEPT //在input末尾插入一条规则 ,取反,只要不是icmp就允许通过
常用的隐含匹配条件
端口匹配:--sport 源端口,--dport目的端口
icmp类型匹配:--icmp-typeICMP类型
例如:
iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT //允许4.0访问内网的
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPTICMP类型匹配
编写iptables规则时使用“--icmp-type ICMP 类型”的形式,针对的协议为icmp,用来
检查icmp数据包类型(--icmp-type),ICMP类型使用字符串或数字代码表示,如“E”
常用的显式
匹配条件
多端口匹配:-m multiport --sports 源端口列表-m multiport --dports 目的端口列表ip范围匹配: -m iprange --src-range ip范围
MAC地址匹配:-m mac --mac-souece mac地址状态匹配: -m state --state 连接状态
例如:连接状态
iptables -A INPUT -p tcp -m multiport -dport 25.90.110.143 -j ACCEPT
iiptables -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-
192.168.4.28 -j ACCEPT
iptables -A INPUT -m mac --mac-source 00:0c;29:c0:55:3f -j DROP
常用管理选项汇总
类别 | 条件类型 | 用法 |
---|---|---|
通用匹配 | 协议匹配 | -p协议名 |
通用匹配 | 地址匹配 | -s 源地址,-d 目的地址 |
通用匹配 | 接口匹配 | -i 入站网卡 , -o 出站网卡 |
隐含匹配 | 端口匹配 | –sport源端口,–dport 目的端口 |
隐含匹配 | ICMP类型匹配 | –icmp-type ICMP类型 |
显式匹配 | 多端口匹配 | -m multiport --sport l --dports端口列表 |
显式匹配 | ip范围匹配 | -m iprange --src-range IP范围 |
显式匹配 | mac地址匹配 | -m mac --mac-source MAC地址 |
显式匹配 | 状态匹配 | -m state --state 连接状态 |
类别 | 选项 | 用途 |
---|---|---|
添加新的规则 | -A | 在链的末尾追加一条规则 |
添加新的规则 | -I | 在链的开头(或指定序号)插入一条规则 |
查看规则列表 | -L | 列出所有的规则条目 |
查看规则列表 | -n | 以数字形式显示地址,端口等信息 |
查看规则列表 | -v | 以更详细的方式显示规则信息 |
查看规则列表 | –line-numbers | 查看规则时,显示规则序号 |
删除,清空规则 | -D | 删除链内指定序号(或内容)的一条规则 |
删除,清空规则 | -F | 清空所有规则 |
设置默认策略 | -P | 为指定的链设置默认规则 |
详解iptables防火墙相关推荐
- 图文并茂详解iptables 防火墙工作原理及知识点
防火墙相关概念 iptables相关概念以及工作原理 iptables中四表五链的原理及规则 iptables中的基本命令详解 ------------------防火墙相关概念----------- ...
- 详解USG5500防火墙基础配置
详解USG5500防火墙基础配置Trust.DMZ.Untrust 组网要求: 1.本实验中的防火墙为USG5500系列防火墙: 2. 防火墙三个接口的IP地址按照上图所示进行配置:将这三个接口划入相 ...
- 小韩详解 Iptables -- 简单使用
前言: Linux的防护墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或者称为网络层防火墙).Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和高效率 ...
- Linux安全 - 详解Linux防火墙(一)
1.防火墙定义: 工作在主机边缘处或者网络边缘处对数据报文进行检测,并且能够事先定义好的规则,对数据报文进行相应处理的模块 2.防火墙分类: 构造: 硬件: 深信服(深圳).网御(联想).华为的一些硬 ...
- 【安全篇 / Web过滤】(6.2) ❀ 02. 静态URL过滤器详解 ❀ FortiGate 防火墙
[简介]在上一篇文章中,我们已经了解了静态URL过滤器的基本用法,现在我们再来了解静态URL过滤器的完整功能. 静态URL过滤器的功能 我们可以通过将特定URL添加到静态URL过滤器列表来允许或阻止对 ...
- Iptables防火墙配置详解
iptables防火墙配置详解 iptables简介 iptables是基于内核的防火墙,功能非常强大,iptables内置了filter,nat和mangle三张表. (1)filter表负责过滤数 ...
- iptable 详解_最全的iptables防火墙详解.pdf
最全的iptables防火墙详解 iptables / iptables / iippttaabblleess官方网站:hhttttpp::nneettffiilltteerr..oorrgg// • ...
- iptables防火墙详解及使用layer7阻止qq,酷狗,等P2P软件
iptables防火墙详解及使用layer7阻止qq,酷狗,等P2P软件 防火墙其实就是一个加固主机或者网络安全的一个设备或者软件而已,通过防火墙可以隔离风险区域与安全区域的连接,同时不会妨碍风险 ...
- Linux_IPtables防火墙详解
目录 目录 Iptables Iptables结构 规则表 规则链 iptables指令用法详解 综合案例 SNAT 策略 DNAT 策略 Iptables规则的备份和还原 iptables 练习 I ...
最新文章
- 面向自动驾驶领域的3D点云目标检测方法汇总!(单模态+多模态/数据+代码)
- python list合并_python中如何合并两个列表
- python 代码-你见过哪些令你瞠目结舌的 Python 代码技巧?
- Redis分布式锁实现
- Java学习资料-SimpleFactory
- Google Nexus5在linux下刷原生安卓 android6.0
- adc0832对光电二极管进行数据采集_一种基于光电二极管的麦克风跟踪检测电路的制作方法...
- UUID工具类及使用
- Hexo文章图片存储选七牛(当然支持MD都可以)
- 【OpenGL基础篇】——使用面向对象方法封装OpenGL函数(二)
- 动态数组--一维数组
- Java课程设计——日历的设计与实现
- java中jre_java中的jre是什么?
- 这8款Android桌面插件,这款 Android 应用,帮你优雅地管理桌面小部件
- Sendmail和Openwebmail构建Linux下的Emai服务器
- 三年精进笃行,用友YonSuite“数智飞轮”高速运转起来了!
- 刘泽云《计量经济学实验教程》笔记
- uC/OS_II操作系统移植,亲测可用
- SpringBoot+JavaMailSender+ 腾讯企业邮箱配置
- 一个web站点的欢迎页面