防火墙之firewall配置

2023-09-20 17:12:55

firewall

​ CentOS 7中防火墙已经由firewalld来管理,Centos7默认安装了firewalld。

与iptables区别

  1. iptables 仅能通过命令行进行配置;而 firewalld 提供了图形接口,类似windows防火墙的操作方式;
  2. iptables 每一个单独更改意味着清除所有旧的规则,并从 /etc/sysconfig/iptables 中读取所有新的规;则;而 firewalld 在有规则变动后,可以仅仅运行规则中的不同之处,即在 firewalld 运行时间内,改变设置时可以不丢失现行链接;
  3. iptables 的配置文件在 /etc/sysconfig/iptables 中;而 firewalld 的配置文件在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各种 XML 文件中;
  4. iptables 没有守护进程,并不能算是真正意义上的服务;而 firewalld 有守护进程;
  5. iptables 通过控制端口来控制服务,而 firewalld 则是通过控制协议来控制端口;
  6. firewalld默认是拒绝;而iptables默认是允许

firewall 服务

# 查看服务状态
service firewalld status
systemctl status firewalld
firewall-cmd --state

# 启动
service firewalld start
systemctl start firewalld

# 重启
service firewalld restart
systemctl start firewalld

# 关闭
service firewalld stop

# 重新加载
firewall-cmd --reload	# 每次修改规则、配置后,需要重新加载使其生效!

开机启动

# 设置开机启动
systemctl enable firewalld
# 停止并禁用开机启动
systemctl disable firewalld

firewalld区域与配置规则

​ 宽松模式::trusted ,单独拒绝的源ip地址写入block,适合于拒绝的少,允许的多的应用场景
​ 严格模式: block,单独允许的源IP地址写入trusted,适合于允许的少,拒绝的多的应用场景;

# 默认为 public
-public:	仅允许访问本机的sshd,dhcp,ping少数几个服务
-trusted:	允许任何访问
-block:		阻塞任何来访请求(明确拒绝)
-drop:		丢弃任何来访的数据包(直接丢弃,不给客户端回应,节省资源)

​ firewalld默认提供了九个zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,都保存在**/usr/lib/firewalld/zones/**目录下。

查看默认区域
firewall-cmd --get-default-zone    #默认就是public
修改默认区域
# 修改默认区域为: trusted 区域
firewall-cmd --set-default-zone=trusted
在一个区域添加协议
# 查看区域public里面的所有配置,ping服务没有列出来
firewall-cmd --zone=public --list-all

# runtime,添加http到public区域中,可以正常访问http了
firewall-cmd --zone=public --add-service=http

# runtime,添加ftp到public区域中,可以正常访问ftp了
firewall-cmd --zone=public --add-service=ftp

# 永久添加,写到了相当的配置文件中了
firewall-cmd --zone=public --add-service=http --permanent

# 从public中永久的移除dhcpv6-client服务
firewall-cmd --zone=public --remove-service=dhcpv6-client --permanent
拒绝源IP

​ 1个源IP只能在1个区域中,在block区域中,就不能在trusted区域中了

# firewall-cmd --zone=block --add-source=10.10.67.40 --permanent

firewall-cmd 规则配置

查看规则
firewall-cmd --list-all

prots:所开放、暴漏的端口(包括ipv4、ipv6)
rich rules:自定义防火墙规则,灵活运用,非常的实用(可限制ipv4、ipv6、源地址等)

端口策略
# 查看端口列表
firewall-cmd --permanent --list-port
# 查看所有已开端口
firewall-cmd  --list-ports

# 查询8080端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 开放3306端口(--permanent:永久生效,没有此参数防火墙重启便失效)
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 关闭开放的3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent

# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

firwall-cmd:是Linux提供的操作firewall的一个工具;
permanent:表示设置为持久;
add-port:标识添加的端口;

ipv4、ipv6双协议区分限制
# ipv4
# 默认是public域
# 添加端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="3306" accept'
# 删除端口
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port protocol="tcp" port="3306" accept'

# ipv6
# 添加端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv6" port protocol="tcp" port="3306" accept'
# 删除端口
firewall-cmd --permanent --remove-rich-rule='rule family="ipv6" port protocol="tcp" port="3306" accept'

# 查看已经设置的规则
firewall-cmd --zone=public --list-rich-rules
对ip段开放所有端口
# 添加
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.127.0/24" accept'
# 删除
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.127.0/24" accept'

firewall-cmd --reload
限制访问源、访问端口
# 限制具体ip
# 添加
firewall-cmd  --permanent --add-rich-rule="rule family="ipv4" source address="192.168.21.4" port protocol="tcp" port="3005-3007" accept"
# 删除
firewall-cmd  --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.21.4" port protocol="tcp" port="3005-3007" accept"

# 限制ip段
# 添加
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.254.0.0/16" accept' 
# 删除
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="10.254.0.0/16" accept' 
信任docker、tunl0和calico卡(k8s常用)
# 需要注意的是如果使用了多个域例如trusted、public,加规则时需要加声明参数,否则会有提示
# 例如:--zone=public
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --permanent --zone=trusted --change-interface=tunl0 
firewall-cmd --permanent --zone=trusted --change-interface=calixxx
firewall-cmd --reload

# 查看信任网卡
firewall-cmd --zone=trusted --list-interfaces
实现本机的端口映射

​ 本地应用的端口重定向(8080–>80),应用场景:从客户机访问 8080 的请求,自动映射到本机 80

# 8080映射到80    
firewall-cmd --permanent --zone=public --add-forward-port=port=8080:proto=tcp:toport=80

firewall-cmd --reload
清空所有规则
# root执行
firewall-cmd --permanent --list-all | grep ports | head -n 1 | \
cut -d: -f2 | tr ' ' '\n' | xargs -I {} firewall-cmd --permanent --remove-port={}

firewall-cmd --reload
更多推荐

基于Java+SpringBoot+Vue前后端分离智慧生活商城系统设计和实现

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题

深度学习100例 | 第31天-卷积神经网络(DenseNet)识别生活物品

🚀我的环境:语言环境:Python3.6.5编译器:jupyternotebook深度学习环境:TensorFlow2.4.1显卡(GPU):NVIDIAGeForceRTX3080数据:📌【传送门】🚀本文选自专栏:《深度学习100例》🚀深度学习新人必看:《小白入门深度学习》小白入门深度学习|第一篇:配置深度学

基于Java生活缴费系统设计实现(源码+lw+部署文档+讲解等)

博主介绍:✌全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌🍅文末获取源码联系🍅👇🏻精彩专栏推荐订阅👇🏻不然下次找不到哟2022-2024年最全的计算机软件毕业设计选题

Vue项目中可能存在的问题和解决方案

相比其他的框架来说,Vue中更容易产出不合格代码;因为Vue中的options就是一个大对象,导致js本身的很多检测都失效了,比如一个函数没有用到的话会“变灰”,template中代码提示比较少,较多的mixins等等;遇到不合格代码,大多数人第一反应就是这谁写的代码这么差,其实大多数公司大多数人至少曾经都写过一些不合

Greenplum的并发控制概述

注:本文翻译自https://docs.vmware.com/en/VMware-Greenplum/7/greenplum-database/admin_guide-intro-about_mvcc.htmlGreenplum数据库使用PostgreSQL多版本并发控制(MVCC)模型来管理堆表的并发事务。数据库管理

【资源推荐】一站式机器学习学习资料

我之前向大家推荐了许多关于人工智能数学原理与应用的资料,其中包括线性代数、机器学习和深度学习等方面的内容。交互式线性代数学习网站沉浸式线性代数学习网站Kaggle大神教你机器学习今天我将继续向大家推荐一个一站式学习机器学习的绝佳资源:《鸢尾花书:从加减乘除到机器学习》。https://github.com/Visual

Aztec.nr:Aztec的隐私智能合约框架——用Noir扩展智能合约功能

1.引言前序博客有:Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私Aztec.nr,为:面向Aztec应用的,新的,强大的智能合约框架使得开发者可直观管理私有状态基于Noir构建,Noir为AztecLabs作为核心贡献者开发的通用zk编程语言。使得开发者使用Noir来编写隐私智能合约,并借助模

安卓机型固件系统分区的基础组成 手机启动规律初步常识 各分区的基本含义与说明

此贴为基本常识。感兴趣的友友可以了解手机的启动顺序和各模式的基本操作与意义。另外了解手机系统分区各文件夹的含义分区说明对应贴:安卓机型固件中分区对应说明手机开机基本启动顺序当我们按下手机开机键的时候。基本的启动顺序为注意:该结构图并不反映手机的实际分区顺序和位置,只是一个逻辑结构图。当按下电源键手机上电启动后,首先从b

【Purple Pi OH RK3566鸿蒙开发板】OpenHarmony音频播放应用,真实体验感爆棚!

本文转载于PurplePiOH开发爱好者,作者ITMING。原文链接:https://bbs.elecfans.com/jishu_2376383_1_1.html01注意事项DevEcoStudio4.0Beta2(BuildVersion:4.0.0.400)OpenHarmonySDKAPI9创建工程类型选择Ap

ARM 汇编指令集——汇编中三种符号(汇编指令、伪指令、伪操作)、汇编基本格式、数据操作指令、跳转指令、特殊功能寄存器操作指令、内存操作指令、混合编程

目录一、汇编中三种符号(汇编指令、伪指令、伪操作)二、汇编基本格式三、数据操作指令3.1数据搬移指令mov/mvn①示例②立即数3.2移位操作指令lsl/lsr/asr/ror示例3.3位运算操作指令and/orr/eor/bic①示例1②示例23.4算数运算操作指令add/adc/sub/sbc/mul①实现两个64

数字化管理平台建设实践

在勘察设计行业,各企业加速推进数字化转型。通过管理要素数字化,不断优化内部组织运营效率;通过生产手段数字化、技术产品数字化,提升服务质量,改善客户体验;通过数字化营销,精准对接市场需求,挖掘发展蓝海。本文基于勘察设计企业数字化管理系统普遍存在的问题,结合湖北省交通规划设计院股份有限公司(以下简称“湖北交规院”)的数字化

热文推荐