0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux防火墙配置(iptables和firewalld)

jf_uPRfTJDa 来源:5G通信 2023-03-31 10:09 次阅读

防火墙基本概念

防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全,目前 Linux 系统的防火墙类型主要有两种:分别是 [iptables] 和 firewalld

Iptables-静态防火墙

早期的 Linux 系统中默认使用的是 iptables 防火墙,配置文件在 / etc/sysconfig/iptables

主要工作在[网络层]

使用链式规则,只可以过滤互联网的数据包,无法过滤从内网到内网的数据包 Iptables 只可以通过命令行进行配置 Iptables 默认是允许所有,需要通过拒绝去做限制 Iptables 在修改了规则之后必须得全部刷新才可以生效,还会丢失连接(无法守护进程)

Firewalld-动态防火墙

取代了之前的 iptables 防火墙,配置文件在 / usr/lib/firewalld 和 / etc/fiewalld 中,主要工作在网络层,新增区域概念,不仅可以过滤互联网的数据包,也可以过滤内网的数据包,Firewalld 不仅可以通过命令行进行配置,也可以通过图形化界面配置,Firewalld 默认是拒绝所有,需要通过允许去放行,Firewalld 可以动态修改单条规则,动态管理规则集(允许更新规则而不破环现有会话和连接,可以守护进程)

注意事项

iptables 和 firewaldl 都只是 linux 防火墙的管理程序,真正的防火墙执行者是位于内核的 netfilter,只不过 firwalld 和 iptables 的结果以及使用方法不一样 在配置防火墙时,不建议两种配置方法结合使用(建议只使用其中的一种)

Iptables 讲解

Iptables 配置防火墙依靠四个部分实现:表、规则链、规则(匹配条件)、控制类型组成

Iptables 表

处理优先级由高到低,表与表之间都是独立的

raw表

是否对某个数据包进行状态追踪(包含 OUTPUT、PREAUTING 两个规则链)

mangle表

修改数据包内容;可以做流量整形、对数据包设置标记(包含所有规则链)

nat表

负责地址转换功能;修改数据包中的源目 IP 地址或端口(包含 IN、OU、PR、PO 三个规则链)

filter表

负责过滤数据包;对数据包时允许放行还是不允许放行(包含 IN、OU、FO 三个规则链) Iptables 规则链

什么是规则链

很多个规则组成一个规则链,数据包从上往下做匹配,匹配成功就结束匹配,并执行相应的控制类型(建议需要将精准的策略放在上面)

规则链类型

INPUT处理入站的数据包(处理目标是本机的数据包) OUTPUT处理出站的数据包(处理源是本机的数据包,一般不在此链上做规则) PREROUTING在进行路由选择前处理数据包(一般用来做 NAT Server) POSTROUTING在进行路由选择后处理数据包(一般用来做源 NAT) FORWARD处理转发的数据包(处理经过本机的数据包)

Iptables 控制类型

ACCEPT 允许数据包通过 DROP 丢弃数据包(不给对方回应,一般工作时用这个) REJCET 拒绝数据包通过(会给对方回应,对方知道自己被拒绝) SNAT 修改数据包的源地址 DNAT 修改数据包的目的地址 MASQUERADE 伪装程一个非固定的公网 IP 地址 LOG 在 / var/log/messages 文件中记录日志信息,然后将数据包传递给下一条规则

数据包到达防火墙根据下图进行匹配

iptables 进行数据处理关心的是四表五链以及流量的进出

ed9414c6-ceee-11ed-bfe3-dac502259ad0.png

Iptables 命令配置

配置 iptables 防火墙时需要将防火墙服务开启

systemctl start firewalld 开启防火墙 systemctl status firewalld 查看防火墙状态

edbda05c-ceee-11ed-bfe3-dac502259ad0.png

Iptables命令查看防火墙

iptables -nL -t nat 查看 nat 表的规则链 -n 使用数字形式显示输出结果(如:通过 IP 地址) -L 查看当前防火墙有哪些策略 -t 指定查看 iptables 的哪个表(默认是 filter 表)

eddba2dc-ceee-11ed-bfe3-dac502259ad0.png

Iptables命令配置防火墙

>iptables-PINPUTDROP将INPUT规则链的默认流量更改为拒绝
>-P设置/修改默认策略
>iptables-tfilter-IINPUT-s192.168.10.0/24-jACCEPT在filter表下的INPUT规则链中配置规则
>-Inum插入规则(大写i,默认在链的开头加入规则,可以指定序号)
>-i从这块网卡流入的数据
>-o从这块网卡流出的数据
>-s 源地址(加!表示取反)
>-d目的地址
>-j限制动作
>iptables-AINPUT-ptcp--dport1000:1024-jREJECT拒绝tcp端口号为1000~1024的数据包
>-A在链的末尾加入规则
>-p指定协议类型
>--sport源端口
>--dport目的端口
>iptables-DINPUT1删除INPUT规则链的第一条规则
>-Dnum删除规则链
>-R修改规则
>iptables-F清空已有的策略
>iptables-save来保存防火墙策略

注意事项

当创建的规则内容与已有规则一致时,不会覆盖原先的规则,会直接加入到现有规则链中(即此时此规则链下有两条一摸一样的规则,只是顺序不同) 以上关于防火墙的配置是 runtime 模式,即配置成功后立即生效,但是重启后会失效(需要将配置保存,重启后才不会失效)

firewalld 讲解

frewalld 是服务名称,firewall-cmd 和 firewall-config 是配置工具名称

firewall-cmd 基于命令行配置

firewall-config 基于图形化界面配置(这两个配置方式实时同步)

Firewalld 区域概念

默认所有网卡都是 public 区域,可以根据需要将网卡设置为不同的区域

>Trust信任区域
>允许所有流量(所有的网络连接都可以接受)
>Public公共区域
>仅接受ssh、dhcpv6-client服务连接(默认区域)
>External外部区域
>仅接收ssh服务连接(默认通过此区域转发的IPv4流量将会进行地址伪装)
>Home家庭区域
>仅接受ssh、msdns、ipp-client、samba-client、dhcpv6-client服务网络连接
>Internal内部区域
>同home区域
>Work工作区域
>仅接受ssh、ipp-client、dhcpv6-client服务连接
>Dmz隔离区域(非军事区域)
>仅接收ssh服务连接
>Block限制区域
>拒绝所有传入流量(有回应)
>Drop丢弃区域
>丢弃所有传入流量(无回应)

数据包到达防火墙匹配规则

firewall 进行数据处理只关心区域

1.根据数据包的源 IP 地址匹配,根据源地址绑定区域的区域规则进行匹配(如果没有绑定区域则匹配默认区域的规则)

2.根据传入的网络接口匹配,进入此接口绑定区域的区域规则进行匹配(如果没有绑定区域则匹配默认区域的规则)绑定源地址的区域规则>网卡绑定的区域规则>默认区域的规则

Firewalld 两种配置方法

临时配置(runtime 当前生效表)

立即生效,重启后失效,不中断现有连接,无法修改服务配置永久配置(permanent 永久生效表)

不立即生效,重启后生效,或者立即同步后生效 会终端现有连接 可以修改服务配置

firewall-cmd 命令行基础配置

如何实现永久配置

--permanent表示此配置加入到永久生效(默认临时生效) 或者在配置结束后执行此命令 firewall-cmd --runtime-to-permanent 将临时更改为永久 永久配置完成后需要立即同步 firewall-cmd --reload立即同步永久配置

查看默认区域并进行更改

>firewall-cmd--get-zones查询可用的区域
>firewall-cmd--get-default-zone查询默认区域的名称
>firewall-cmd--get-active-zone显示当前正在使用的区域与网卡名称
>firewall-cmd--set-default-zone=trusted设置默认区域为trusted区域

edf3eee6-ceee-11ed-bfe3-dac502259ad0.png将网卡 / 子网与区域绑定(允许 / 拒绝此子网通过)

>firewall-cmd--zone=drop--add-source=192.168.20.0/24将此子网与drop区域绑定(拒绝从此子网发来的流量)
>firewall-cmd--zone=trusted--add-interface=ens160将此网卡与trusted区域绑定(允许从此网卡发来的流量)
>--remove-source删除子网与区域的绑定
>--change-source更改子网与区域的绑定
ee076610-ceee-11ed-bfe3-dac502259ad0.png

配置区域允许 / 拒绝的协议 / 端口号

>firewall-cmd--list-all显示当前区域的端口号、网卡、服务等信息
>--list-all-zones显示所有区域的
>firewall-cmd--get-services列举出来当前所有被允许的协议
>firewall-cmd--zone=public--add-servicehttp配置public区域允许通过http协议
>--remove-servicessh拒绝通过ssh协议
>--add-port=123/tcp允许通过tcp的123端口
>--remove-port=123/tcp拒绝通过tcp的123端口
>cat/etc/services保存的协议类型和端口号
ee1af838-ceee-11ed-bfe3-dac502259ad0.png

配置协议端口转换(端口映射)

>firewall-cmd--permanent--zone=public--add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.1
>将192.168.10.1主机的tcp22端口号转为888端口号(public区域接收ssh)
>--remove-forward-port删除此端口映射

ee2f882a-ceee-11ed-bfe3-dac502259ad0.png其它配置

>--panic-on紧急模式,切断一切的网络连接(特殊情况去使用)
>--panic-off恢复一切的网络连接

配置富规则 rich(更复杂、更详细的防火墙策略配置)

优先级最高(高于默认规则,两个并不冲突) 能够根据源目地址、端口号来限制用户

>firewall-cmd--zone=public--list-rich-rule显示public区域已经配置的富规则
>firewall-cmd--permanent--zone=public--add-rich-rule="rulefamily="ipv4"sourceaddress="192.168.100.1/24"service允许来自192.168.

100.1 的主机访问 22 端口

>--add-rich-rule添加一个富规则
>--remove-ruch-rule删除一个富规则
>reject拒绝访问
ee664860-ceee-11ed-bfe3-dac502259ad0.png

firewall-config 图形化配置

安装 firewall-config

配置 Yum 源(软件仓库)
安装软件 dnf install firewall-configee884582-ceee-11ed-bfe3-dac502259ad0.png

系统界面讲解

1:选择运行时(Runtime)或永久(Permanent)模式的配置

2:选择区域

3:当前正在使用的区域(黑色加粗)

4:管理当前被选中区域中的服务

5:管理当前被选中区域中的端口

6:设置允许被访问的协议

7:设置允许被访问的端口

8:开启或关闭 SNAT(源网络地址转换)技术

9:设置端口转发策略

10:控制请求 icmp 服务的流量

11:被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关的流量eea4e4bc-ceee-11ed-bfe3-dac502259ad0.png

12:管理防火墙的富规则

13:网卡信息(网卡与区域绑定信息)

14:子网信息(子网与区域绑定信息)eecd3174-ceee-11ed-bfe3-dac502259ad0.png

15:查看常用的服务协议列表eef56b94-ceee-11ed-bfe3-dac502259ad0.png

16:主机地址的黑白名单ef0bb8fe-ceee-11ed-bfe3-dac502259ad0.pngef219994-ceee-11ed-bfe3-dac502259ad0.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 互联网
    +关注

    关注

    54

    文章

    10906

    浏览量

    100755
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
  • 防火墙
    +关注

    关注

    0

    文章

    406

    浏览量

    35420
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79549
  • 数据包
    +关注

    关注

    0

    文章

    229

    浏览量

    24095

原文标题:Linux 防火墙配置(iptables和firewalld)

文章出处:【微信号:5G通信,微信公众号:5G通信】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux防火墙-firewalld

    Linux下的防火墙功能是非常丰富的,但阿铭在日常的运维工作中,使用它的情况并不多。所以阿铭打算把一些常用的知识点介绍给大家。
    发表于 12-27 09:04 303次阅读

    Linux系统iptables和firewall防火墙配置方法

    防火墙就是根据系统管理员设定的规则来控制数据包的进出,主要是保护内网的安全,目前 Linux 系统的防火墙类型主要有两种:分别是 [iptables] 和
    发表于 07-17 10:34 715次阅读
    <b class='flag-5'>Linux</b>系统<b class='flag-5'>iptables</b>和firewall<b class='flag-5'>防火墙</b>的<b class='flag-5'>配置</b>方法

    Linux中使用Iptables实现简单的网站防火墙

    Linux中使用Iptables实现一个简单的网站防火墙可以帮助我们保护服务器不受到恶意请求的攻击。一个现实的场景是我们想要阻止某个IP地址访问我们的网站。
    发表于 09-22 10:11 144次阅读
    <b class='flag-5'>Linux</b>中使用<b class='flag-5'>Iptables</b>实现简单的网站<b class='flag-5'>防火墙</b>

    Linux系统firewalld防火墙实战指南

    本文浩道跟大家分享Linux系统firewalld防火墙硬核干货,通过对其介绍、相关概念回顾,数据包处理流程、其安装过程、其常用命令用法、其添加规则相关用法去开展,让大家在****Linux
    发表于 10-16 16:47 414次阅读
    <b class='flag-5'>Linux</b>系统<b class='flag-5'>firewalld</b><b class='flag-5'>防火墙</b>实战指南

    Linux内核防火墙netfilter的原理和应用

    Linux内核防火墙netfilter的原理和应用在分析ipchains缺陷的基础上,着重介绍了Linux2.4版内核防火墙netfilter的结构框架、数据包的处理过程及
    发表于 09-19 09:22

    Linux防火墙配置方法(firewalld服务)

    红帽RHEL7系统已经用firewalld服务替代了iptables服务,新的防火墙管理命令firewall-cmd与图形化工具firewall-config。执行firewall-config命令
    发表于 10-30 12:27

    发现 STM32 防火墙的安全配置

    里提供了几个不同的防火墙配置。那么问题来了,什么是STM32防火墙的应该使用的安全配置呢?本文以STM32参考手册为基础,以最大化安全为目标,来探索发现STM32
    发表于 07-27 11:04

    Linux下关闭防火墙的关闭及开放端口

    :service iptables stop3.查看防火墙状态serviceiptablesstatus重启服务service iptables restart实现配置文件及时生效so
    发表于 07-09 06:23

    Linux如何关闭防火墙

    1、查看防火墙规则vim /etc/sysconfig/iptables放开某个端口号不被防火墙拦截,适用于部署tomcat,nginx等之类的软件
    发表于 07-12 06:31

    Linux防火墙入门教程分享

    合理的防火墙是你的计算机防止网络入侵的第一道屏障。你在家里上网,通常互联网服务提供会在路由中搭建一层防火墙。当你离开家时,那么你计算机上的那层防火墙就是仅有的一层,所以配置和控制好你
    发表于 12-28 06:54

    请问如何自动加载iptables防火墙规则?

    系统启动后,如何自动加载iptables防火墙规则?
    发表于 01-07 08:46

    基于Linux防火墙的可视化管理系统的研究与实现

    针对Iptables 命令配置防火墙规则的复杂性,本系统研究和实现了基于linux 防火墙的可视化管理系统。关键词:
    发表于 07-16 08:47 16次下载

    Linux新型内核防火墙研究和应用

    Linux新型防火墙netfilter框架原理及工作机制基础上,研究了该防火墙的应用设计, 提出了用netfilter/iptables构建门户服务器
    发表于 08-25 11:35 14次下载

    LINUX防火墙(原书第3版)

    LINUX防火墙(原书第3版)教材免费下载。
    发表于 06-01 14:53 0次下载

    请问Centos7如何配置firewalld防火墙规则?

    Firewalld是CentOS系统自带的一种动态防火墙管理工具。是一个前端工具,用于管理Linux系统上的netfilter防火墙规则。Firew
    的头像 发表于 10-09 09:33 647次阅读
    请问Centos7如何<b class='flag-5'>配置</b><b class='flag-5'>firewalld</b><b class='flag-5'>防火墙</b>规则?