防火墙

2023年 8月 28日 72.3k 0

组成 概念

所谓防火墙也称之为防护墙,它是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统。按照给定的规则,允许或者限制网络报文通过。

  • 硬件防⽕墙:通过硬件和软件的组合,基于硬件的防⽕墙保护整个内部网络安全。(例如 华为E9000)
  • 软件防⽕墙:通过纯软件,单独使⽤软件系统来完成防⽕墙功能,保护安装它的系统。

大型公司都是以硬件防火墙为主,软件防火墙为辅。软件防火墙根据情况来决定是否开启,如果服务器性能不够,可能会关闭软件防火墙。

Netfilter

用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。利用运作于用户空间的应用软件,如iptables、nftables、ebtables和arptables等,来控制Netfilter,系统管理者可以管理通过Linux操作系统的各种网络数据包。1990年代,Netfilter在Linux 2.3.15版时进入Linux内核,正式应用于Linux 2.4版。

 

firewalld

动态防火墙管理器。

firewalld 通过“网络/防火墙”空间的方式,为不同的网络连线或接口定义其自身的信任等级,通过这种方式达到了动态管理的效果。同时,它支持 IPv4、IPv6 防火墙的设置 、以太网网桥以及配置选项可为运行时或永久。另外,它还提供了接口,方便应用添加规则。

 

iptables

iptables是运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的处理和转发。

Iptables

CentOS7默认使用firewalld防火墙,需先关闭

systemctl stop firewalld.service   //关闭firewalld防火墙服务

systemctl disable  --now  firewalld.service   //立即关闭服务 与 自启

systemctl enable  --now  firewalld.service   //开启服务 与 自启



yum -y install iptables iptables-services   //安装相关服务

systemctl start iptables.service

systemctl enable iptables.service

 

 

概念

规则 与 链

规则的作用:对数据包进行过滤或处理

链的作用:容纳各种防火墙规则

 

分类

链的分类:

处理数据包的不同时机默认包括5种规则链

INPUT:处理入站数据包

OUTPUT:处理出站数据包

FORWARD:处理转发数据包

POSTROUTING链:在进行路由选择后处理数据包

PREROUTING链:在进行路由选择前处理数据包

 

规则表

表的作用:容纳各种规则链

表的划分依据:防火墙规则的作用相似

默认包括4个规则表

raw表:确定是否对该数据包进行状态跟踪

mangle表:为数据包设置标记·

nat表:修改数据包中的源、目标IP地址或端口

filter表:确定是否放行该数据包(过滤)

 

顺序

规则表之间的顺序

raw->mangle>nat->filter

规则链之间的顺序

入站: PREROUTING > INPUT

出站: OUTPUT > POSTROUTING

转发: PREROUTING > FGRWARD > POSTROUTING

规则链内的匹配顺序

按顺序依次检查,匹配即停止 (LOG策略例外)

若找不到相匹配的规则,则按该链的默认策略处理

image.png

使用iptables命令行配置规则

命令格式:

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]

  • 不指定表名时,默认指filter表
  • 不指定链名时,默认指表内的所有链
  • 除非设置链的默认策略,否则必须指定匹配条件
  • 控制类型使用大写字母,其余均为小写

常用控制类型:

ACCEPT ----允许数据包通过(默认)

DROP ----直接丢弃数据包,不给出任何回应信息

REJECT ----拒绝数据包通过,会给数据发送端一个响应信息

SNAT ----修改数据包的源地址

DNAT ----修改数据包的目的地址

MASQUERADE ----伪装成一个非固定公网IP地址LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。

LOG ----只是一种辅助动作,并没有真正处理数据包

常用管理选项:

-A ----在指定链的末尾追加(--append)一条新的规则

-I----(大写i)在指定链的开头插入(--insert)一条新的规则,未指定序号时默认作为第一条规则

-R ----修改、替换(--replace) 指定链中的某一条规则,可指定规则序号或具体内容

-P ----设置指定链的默认策略(--policy)

-D ----删除(--delete) 指定链中的某一条规则,可指定规则序号或具体内容

-F ----清空(--flush)指定链中的所有规则,若未指定链名,则清空表中的所有链

-L ----列出(--list) 指定链中所有的规则,若未指定链名,则列出表中的所有链

-n ----使用数字形式(--numeric) 显示输出结果,如显示IP地址而不是主机名

-v ----显示详细信息,包括每条规则的匹配包数量和匹配字节数

--line-numbers ----查看规则时,显示规则的序号

匹配条件:

-p指定要匹配的数据包的协议类型

-s指定要匹配的数据包的源IP地址

-d指定要匹配的数据包的目的IP地址

-i指定数据包进入本机的网络接口

-o指定数据包离开本机做使用的网络接口

–sport指定源端口号

–dport指定目的端口号

多端口匹配

-m multiport --sport 源端口列表

-m multiport --dport 目的端口列表

iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT  
iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT

IP范围匹配

-m iprange --src-range 源IP范围

-m iprange --dst-range 目的IP范围

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论