文章标题
一、iptables
1、iptables与Netfilter
iptables是Linux的防火墙管理工具而已,真正实现防火墙功能的是Netfilter,我们配置了iptables规则后Netfilter通过这些规则来进行防火墙过滤等操作
Netfilter模块:
它是主要的工作模块,位于内核中,在网络中的五个位置(也就是防火墙四表五链)注册了一些函数,用来抓取数据包;把数据包的信息拿来匹配各个各个链位置在对应表中的规则:匹配之后,进行相应的处理ACCEPT、DROP等等。
两者间的关系:
2、四表五链(重要)
四表五链:
一个表----->多个链链
一个链------->多个规则
链就是位置:共有五个:进路由(PREROUTING)、进系统(INPUT)、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING)
进出路由做数据转换时用到,一般用不到
表就是存储的规则:数据包到了该链接,会去对应表中查询设置的规则,然后决定是否放行、丢弃、转发还是修改等等操作。
1)、具体的四表
filter表——过滤数据包 转发用到filter表* 默认表
NAT表——用于网络地址转换(IP、端口) 地址转换匹配nat表*
Mangle表——修改i数据包的服务类型、TTL、并且可以配置路由实现QOS 网络拥塞时用到Mangle表
Raw表——决定数据包是否被状态跟踪机制处理 追踪数据包流向时用到
2)、具体的五链
之前处理的是prerouting链
之后处理的时是postrouting链
INPUT——进来的数据包应用此规则链中的策略
OUTPUT——外出的数据包应用此规则链中的策略
FORWARD——转发数据包时应用此规则链路中的策略
PREROUTING——对数据包作路由选择前应用此链中的规则(所有的数据包进来的时候都先由这个链处理)
POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时候都先由这个链处理)
3、iptables语法格式
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型 ]
iptables常用参数
-P 设置默认策略 iptable
-P INPUT (DROP|ACCEPT)
-F 清空规则链
-L 查看规则链
-A 在规则链的末尾加入新规则
-I num 在规则链的头部加入新规则
-D num 删除某一条规则
-s 匹配来源地址 IP/MASK,加叹号“ !”表示除这个IP外
-d 匹配目标地址
-i 网卡名称 匹配从这块网卡流入的数据 入站口
-o 网卡名称 匹配从这块网卡流出的数据 出站口
*防火墙默认两个网卡
-p 匹配协议,如tcp,udp,icmp
–dport num 匹配目标端口号
–sport num 匹配来源端口号
二、Firewalld
1、Firewalld概述
支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具
支持IPv4、IPv6防火墙设置以及以太网网桥
支持服务或应用程序直接添加防火墙规则接口
拥有两种配置模式(运行时配置,永久配置)
2、Firewalld和iptables的关系(两个都属于工具)
netfilter
位于linux内核中的包过滤功能体系
称为linux防火墙的“内核态”
Firewalld/iptables
CentOS7默认的管理防火墙规则的工具(Firewalld)
称为linux防火墙的“用户态”
真正能与内核态(kernel)交互是iptables,不是firewall
Firewalld和iptables的区别
Firewalld逻辑层面上的隔离 ,而iptables是没有的
内容 | Firewalld | iptables |
---|---|---|
配置文件 | /usr/lib/firewalld/ /etc/firewalld/ | /etc/sysconfig/iptables |
对规则的修改 | 不需要全部刷新策略,不丢失现行连接 | 需要全部刷新策略,丢失连接 |
防火墙类型 | 动态防火墙 | 静态防火墙 |
3、Firewalld网络区域
区域介绍
区域如同进入主机的安全门,每个区域都具有不同限制程度的规则
可以使用一个或多个区域,但是任何一个活跃区域至少需要关联源地址或接口
默认情况下,public区域时默认区域,包含所有接口(网卡)
Firewalld数据处理流程
●检查数据来源的源地址
若源地址关联到特定的区域,则执行该区域所指定的规则
若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所指定的规则
若网络接口未关联到特定的区域,则使用默认区域并执行该区域所指定的规则
区域划分
区域 | 描述 |
---|---|
drop(丢弃) | 任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接 |
block(限制) | 任何接收的网络连接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm- prohibited信息所拒绝 |
public(公共) | 在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过 选取的连接 |
external(外部) | 特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算,不能相信它们不 会对您的计算机造成危害,只能接收经过选择的连接 |
dmz(非军事区) | 用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收 经过选择的连接 |
work(工作) | 用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接 |
home(家庭) | 用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择 的连接 |
internal(内部) | 用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选 择的连接 |
trusted(信任) | 可接受所有的网络连接 |
*public 默认情况下 所有端口都在pubilic
dmz 外网内网中间区域,外网访问dmz,不访问内网
硬件防火墙:
高安全往低安全访问
低不可以往高访问
做入站默认规则可以低访问高
block 放到block中就ping不通了