Centos 防火墙介绍

article/2025/8/20 1:28:09

        

目录

一、防火墙基本介绍

二、iptables(Centos6)

2.1、介绍

2.2、相关命令

三、firewalld(Centos7)

3.1、介绍

3.1.1、zone分类及相关命令

3.1.2、预定义的服务

3.2、相关命令

3.2.1、服务安装

3.2.2、服务启停命令

3.2.3、firewalld规则添加

3.3、富规则


 

一、防火墙基本介绍

iptables服务会把配置好的防火墙策略交由内核层面的 netfilter 网络过滤器来处理,firewalld 服务则是把配置好的防火墙策略交由内核层面的 nftables 包过滤框架来处理。

  1. iptables、firewalld:仅仅是定义防火墙规则的一个工具,写规则使用
  2. netfilter、nftables:实现过滤功能,是真正实现防火墙功能的一个内核模块

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

二、iptables(Centos6)

2.1、介绍

iptables 服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类是

  1. ACCEPT(允许流量通过)
  2. REJECT(拒绝流量通过)
  3. LOG(记录日志信息)、
  4. DROP(拒绝流量通过)

 

REJECT 和 DROP 的不同点:

  1. 就 DROP 来说,它是直接将流量丢弃而且不响应;
  2. REJECT 则会在拒绝流量后再回复一条“您的信息已经收到,但是被扔掉了”信息,从而让流量发送方清晰地看到数据被拒绝的响应信息。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_15,color_FFFFFF,t_70,g_se,x_16

tips:

1、在日常运维工作中,经常会使用 ping 命令来检查对方主机是否在线,而向防火墙的INPUT 规则链中添加一条允许 ICMP 流量进入的策略规则就默认允许了这种 ping 命令检测行为。

2、防火墙策略规则是按照从上到下的顺序匹配的,因此一定要把允许动作放到拒绝动作前面,否则所有的流量就将被拒绝掉,从而导致任何主机都无法访问我们的服务。

3、配置的防火墙规则保存在以下文件中 /etc/sysconfig/iptables

 

 

2.2、相关命令

iptables中常用的参数

  1. -P 设置默认策略
  2. -F 清空规则链
  3. -L 查看规则链
  4. -A 在规则链的末尾加入新规则
  5. -I num 在规则链的头部加入新规则
  6. -D num 删除某一条规则
  7. -s 匹配来源地址 IP/MASK,加叹号“!”表示除这个 IP 外
  8. -d  匹配目标地址
  9. -i 网卡名称 匹配从这块网卡流入的数据
  10. -o  网卡名称 匹配从这块网卡流出的数据
  11. -p 匹配协议,如 TCP、UDP、ICMP
  12. --dport num    匹配目标端口号
  13. --sport num    匹配来源端口号
  14. -j 指定要进行的处理动作 (一般有 DROP(丢弃)、REJECT(拒绝)、ACCEPT(接受、允许))

 

开启防火墙

# service iptables start

 

关闭防火墙

# service iptables stop

 

查看防火墙状态

# service iptables status

 

设置开启禁用防火墙服务

# chkconfig iptables off

 

设置开机开启防火墙服务

# chkconfig iptables on

 

允许本地回环接口(即运行本机访问本机)

# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT             

 

允许已建立的或相关连的通行

  1. ESTABLISHED:已建立的链接状态
  2. RELATED:该封包为本机发出的封包有关

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

允许所有本机向外的访问

# iptables -A OUTPUT -j ACCEPT        

 

允许访问22端口

# iptables -A INPUT -p tcp --dport 22 -j ACCEPT   

 

允许访问80端口

# iptables -A INPUT -p tcp --dport 80 -j ACCEPT   

 

拒绝所有向内的访问

# iptables -A INPUT -j reject    

 

禁止转发所有数据包

# iptables -A FORWARD -j REJECT    

 

如果想让配置的防火墙策略永久生效,还要执行保存命令:

# service iptables save

 

三、firewalld(Centos7)

3.1、介绍

firewalld(Dynamic Firewall Manager of Linux systems,Linux 系统的动态防火墙管理器)服务是默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于 GUI(图形用户界面)的两种管理方式。

相较于传统的防火墙管理配置工具,firewalld 支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是 firewalld 预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

过滤规则(执行动作):

  1. accept 接受
  2. drop 丢弃
  3. reject 拒绝

 

firewalld 配置文件存放目录: /etc/firewalld

3.1.1、zone分类及相关命令

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

查看所有的zone

# firewall-cmd --list-all-zones

 

查看所有可用zone

# firewall-cmd --get-zones

 

查看默认zone

# firewall-cmd --get-default-zone

 

设置默认zone

# firewall-cmd --set-default-zone=<zone>

 

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

3.1.2、预定义的服务

查看预定义服务列表

# firewall-cmd --get-services

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

预定义服务的配置文件查看(在 /usr/lib/firewalld/services 目录下):

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

 

3.2、相关命令

3.2.1、服务安装

安装firewalld 命令

# yum install firewalld

 

安装图形化配置工具(可选)

# yum install firewall-config

直接在命令行输入:# firewall-config 进入图形化配置

 

查看防火墙版本

# firewall-cmd --version

 

 

3.2.2、服务启停命令

打开防火墙服务

# systemctl start firewalld

 

查看防火墙服务状态

# systemctl status firewalld

或者

# firewall-cmd –state

 

关闭防火墙服务

# systemctl stop firewalld

      

设置开机禁用防火墙

# systemctl disable firewalld

 

设置开机启用防火墙

# systemctl enable firewalld

 

检查服务是否正常运行

# systemctl is-active firewalld 

 

检查确认服务是否开机运行

# systemctl is-enabled firewalld 

 

设置开机禁用防火墙

# systemctl disable firewalld

 

设置开机启用防火墙

# systemctl enable firewalld

 

重新加载防火墙规则

# firewall-cmd --reload

 

3.2.3、firewalld规则添加

 

3.2.3.1、添加端口

查看所有打开的端口

# firewall-cmd --zone=public --list-ports

 

添加一个端口

# firewall-cmd --zone=public --add-port=80/tcp --permanent

 

删除一个端口

# firewall-cmd --zone=public --remove-port=80/tcp --permanent

 

查询防火墙有无开放某个端口

# firewall-cmd --query-port=23/tcp

 

tips:

1、-- permanent 持久配置: 修改后需要重载才会生效

注意:一旦使用了permanent,配置完成后一定要reload,否则只能待防火墙重启后这些配置才能生效。

 

 

3.2.3.2、添加服务(协议)

实质还是放行了服务默认的端口号

 

添加一个httpd服务设置

# firewall-cmd --permanent --add-service=http

 

删除一个httpd服务设置

# firewall-cmd --permanent --remove-service=http

 

查询一个httpd服务是否被添加

# firewall-cmd --query-service=http

3.2.3.3、添加IP

添加Postgresql端口设置。允许192.168.142.166访问5432端口

# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.209.134" port protocol="tcp" port="80" accept"

 

移除Postgresql端口访问设置

# firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.209.134" port protocol="tcp" port="80" accept"

 

 

3.3、富规则

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5a2m5Lmg56C05aSp6I2S,size_20,color_FFFFFF,t_70,g_se,x_16

添加Postgresql端口设置。允许192.168.142.166访问5432端口

# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.209.134" port protocol="tcp" port="80" accept"

 

移除Postgresql端口访问设置

# firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.209.134" port protocol="tcp" port="80" accept"

 

 


http://chatgpt.dhexx.cn/article/e78xqGY9.shtml

相关文章

常用 Git 工作流,明确团队的开发流程

借鉴的git工作流程模型&#xff1a;A successful Git branching model 下文的 Git 工作流是一些在开发团队中非常流行和最佳的工作流的示例。也有一些团队为预发布创建分支&#xff0c;并且该分支非常适合他们。所以你可以参考这些工作流&#xff0c;然后创建自己的 Git 工作流…

sourceTree中git工作流使用

1.初始化 2.构建feature分支 3.完成新功能 ####4.建立发布版本 完成发布

敏捷开发下的Git工作流应用实践

1 背景 在我们日常工作中&#xff0c;协同开发是最高效的一种方式&#xff0c;尤其是比较大的需求点以及功能&#xff0c;甚至是新项目的开发。这种情况下&#xff0c;Git的使用无可避免的也会出现一些问题。而在计算机技术发展到今天的同时&#xff0c;协同开发工具也不断进步…

刚进公司,不懂Git工作流的我瑟瑟发抖

前言 不懂git工作流&#xff0c;被辞退了&#xff01; 之前在看到这句话的时候&#xff0c;我刚实习入职不久&#xff0c;瑟瑟发抖。好巧不巧&#xff0c;今天又看到了类似的文章讲git重要性的。 眼下&#xff0c;学校导师安排给我的课题组了一个新的工程项目&#xff0c;使用g…

团队Git实践方案-Git工作流

在团队协作中&#xff0c;好好地应用 Git可以为团队开发带来更高的效率收益&#xff0c; 也能保证整个工作流的完整推进。本文通过参考多篇优秀的Git实践文章总结而成&#xff0c;旨在为使用GIT标准分支开发流程的开发团队新人提供一份参考指南 一、一些好的习惯 1.1 提交 提…

面试 之 git工作流

目录&#xff1a; 一、git工作流 一、git工作流 1、git 版本管理基本概念 remote远程仓库 repository本地仓库 index索引区 index是新commit的写照&#xff1b;git add已经将数据传递到本地仓库了&#xff0c;在index中有个指向blob对象的索引记录&#xff1b;因此&#…

git工作流学习记录

git工作流学习地址 https://git-scm.com/book/zh/v1/Git-分支-分支的新建与合并 git多人参与开发项目时&#xff0c;需要用到git的工作流 一、创建好仓库 第一个分支是master&#xff0c;这个分支就作为项目最稳定的分支存在 然后是开发分支dev&#xff0c;这个分支是开发过…

用手画了11张图终于搞明白了Git工作流,我怀疑你用的是假 Git

号外号外&#xff01;《死磕 Java 并发编程》系列连载中&#xff0c;大家可以关注一波&#xff1a; 「死磕 Java 并发编程05」阿里面试失败后&#xff0c;一气之下我图解了Java中18把锁 「死磕 Java 并发编程04」说说Java Atomic 原子类的实现原理 「死磕 Java 并发编程03」…

Git工作流(分支管理规范)

原文链接:https://nvie.com/posts/a-successful-git-branching-model/ Note of reflection (March 5, 2020) 反思记录&#xff08;2020 年 3 月 5 日&#xff09; This model was conceived in 2010, now more than 10 years ago, and not very long after Git itself came int…

Git工作流规范

Git基本原理及命令使用 Git简明教程 Git工作流使用方式选择 微型项目&#xff0c;使用集中式工作流。小型项目&#xff0c;功能分支工作流。中大型的互联网项目&#xff0c;不断需求迭代&#xff0c;一个版本接一个版本&#xff0c;参考并使用如下Git工作流。 Git工作流使用…

给大家推荐一套 git 工作流

一套规范的git工作流能让每个开发者都有自己的本地的完整项目副本。隔离的环境使得每个开发都的工作独立于项目的其它修改。 —— 他们可以在自己的本地仓库中添加提交&#xff0c;完全无视上游的开发&#xff0c;直到需要的时候。 一、分支划分及作用 master —— 主分支&…

Git工作流指南

说明&#xff1a; 个人在学习Git工作流的过程中&#xff0c;从原有的 SVN 模式很难完全理解Git的协作模式&#xff0c;直到有一天我看到了下面的文章&#xff0c;好多遗留在心中的困惑迎刃而解&#xff1a; 我们以使用SVN的工作流来使用Git有什么不妥&#xff1f;Git方便的bra…

《Git 系列》Git 工作流,你知道几种?

前言 Git 可能是对我们日常开发影响最大的软件了。 我们使用 Git&#xff0c;肯定要采用某个工作流来作为我们的开发流程。 不同的开发流程&#xff0c;有不同的适用场景&#xff0c; 没有银弹&#xff01; Workflow - 工作流 Git flowGitHub flowTrunk-based development…

git的各种工作流

Git工作流可以理解为团队成员遵守的一种代码管理方案&#xff0c;在Git中有以下几种常见工作流&#xff1a; 集中式工作流功能开发工作流Gitflow工作流Forking工作流 1&#xff09;集中式工作流 这种工作方式跟svn类似&#xff0c;它只有一个master分支&#xff0c;开发者会…

Git工作流(随笔)

目录 前言 一、工作流概述 1、概念 2、分类 二、集中式工作流 1、概述 2、介绍 3、操作过程 三、功能分支工作流 1、概述 2、介绍 3、操作过程 1&#xff09;创建远程分支 2&#xff09;删除远程分支 四、GitFlow工作流 1、概述 2、介绍 3、操作过程 五、Forki…

git工作流

目录 一、什么是gitFlow工作流二、操作1.&#xff08;Feature branches&#xff09;功能分支1.1创建功能分支1.2完成功能分支 2.&#xff08;Release branches&#xff09;发布分支3.&#xff08;Hotfix branches&#xff09;修复分支 三、例子1、创建develop分支2、张三和罗翔…

Flask+Vue+ElementUI开源框架推荐

项目介绍 一款 Python 语言基于Flask、Vue2.x、ElementUI、MySQL等框架精心打造的一款高性能的前后端分离架构敏捷开发框架&#xff0c;可快速搭建前后端分离后台管理系统&#xff0c;本着简化开发、提升开发效率的初衷&#xff0c;框架自研了一套个性化的图片上传组件&#x…

实用 | 整理了 34 个最火的 Python 开源框架

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶” 重磅干货&#xff0c;第一时间送达本文转自|视觉算法 我们从近 10000 个 Python 开源框架中评价整理的 34 个最为好用的开源框架&#xff0c;它们细分可以分为 Python Toolkit、Web、Terminal、Code Edito…

Python开源框架简介

前言 今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架。如果你正在学习python&#xff0c;那么这12个开源框架&#xff0c;千万别错过&#xff0c;这些框架包括事件I/O&#xff0c;OLAP&#xff0c;Web开发&#xff0c;高性能网络通信&#xff0c;测试&…

推荐 6 个 yyds 的开源 Python Web 框架

提到 Python 的 Web 框架&#xff0c;第一反应就是老三样&#xff0c;Django&#xff0c;Flask 和 Tornado。如果按流行度来排名的话&#xff0c;应该也是这个顺序。 但是今天重点介绍的框架是FastAPI&#xff0c;现在很多公司招聘的要求都需要会这个框架&#xff0c;非常值得…