jjzjj

Linux下的防火墙

不想上课。 2025-04-07 原文

Linux下防火墙简介

Linux下防火墙有两种分别是iptables和firewalld,在centos7之前centos用的防火墙是iptables,自从centos7过后防火墙的使用就从iptables变成了firewalld。防火墙的作用是根据系统管理员设定的规则来控制数据的包的进出,今天我们来重点介绍firewalld防火墙

相较于传统的防火墙管理工具,firewalld加入了zone(区域)的概念,区域对我来说就是他给你整理了几套模板,我们可以通过不同的场景从而进行不同的选择,实现了防火墙策略之间的快速切换

zone区域分类

         当我们创建一台Linux系统后,我们的默认firewalld防火墙的区域属于public区域,如果我们不做更改的话,后续所安装的服务将都在public区域

firewalld防火墙命令

firewalld防火墙简单命令用法

firewall-cmd --get-zones   //列出firewalld下的区域

firewall-cmd --set-default-zone=trusted  //设置默认区域为trusted

firewall-cmd --get-default-zone //查看当前默认区域

systemctl stop firewalld //临时关闭防火墙

systemctl start firewalld //启动防火墙

systemctl restart firewalld //重启防火墙

systemctl enable firewalld //设置firewalld防火墙开机自启

systemctl disable firewalld //永久关闭防火墙

firewall-cmd --add-service=http //临时放行服务,使其他人可以访问服务,当服务器重启过后此规则,则会没有,如果没有指定防火墙区域的话,此规则在默认区域

firewall-cmd --permanent --add-service=http //永久放行防火墙,但是需要重启一下防火墙,或者重新加载一下防护墙规则

firewall-cmd --reload //重载防火墙规则

firewall-cmd --add-port=8080/tcp //防火墙临时放行端口

firewall-cmd --permanent --add-port=8080/tcp //防火墙永久放行防火墙端口

firewall-cmd --remove-port=8080/tcp //防火墙移除放行端口规则

firewall-cmd --list-all //查看防火墙默认区域的放行规则

firewall-cmd --add-service=http --zone=trusted //指定防火墙放行服务区域

firewall-cmd --remove-interface=ens33 --zone=public //将网卡从默认区域中移除出来

firewall-cmd --add-interface=ens33 --zone=trusted //将网卡添加到指定的区域里面

firewall-cmd --zone=trusted --list-all //查看指定防火墙区域的放行规则防火墙富规则命令用法列子

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 192.168.10.20 -p tcp --dport 80 -j REJECT //拒绝IP为192.168.10.20的访问tcp的80端口 --direct 规则 --add-rule 添加规则 ipv4 filter 指定为ipv4的filter表 INPUT 链 -s 数据来源 -p采用的协议 --dport 目的地端口 -j 行为动作

客户端对这条富规则进行测试

 防火墙下面的表和链

防火墙下四表五链介绍

防火墙下面有四个表和五个链他们分别用于防火墙处于各个地点和时间的用户

四表:filter表、nat表、mangle表、raw表

五链:PREROUTING链、INPUT链、OUTPUT链、FORWARD链、POSTROUTING链。

四个表的各个功能

filetr表负责过滤功能;

nat表负责网络地址转换;

mangle表负责拆解报文,作出修改,封装报文;

raw表负责关闭nat表上启用的连接追踪机制,确定是否对该数据包进行状态跟踪

五个链的各个功能

PREROUTING链用于数据包进入路由之前的数据;

INPUT链用于处理访问防火墙本机的数据;

OUTPUT链用于处理防火墙本机访问其他主机的数据;

FORWARD链用于处理需要经过防火墙转发的数据包,源地址,目标地址均不是防火墙本地的数据;POSTROUTING链用于处理确认路由后的数据

四表五链的对于关系

filter表中包含了三个规则链分别是:INPUT链、FORWARD链、OUTPUT链;

nat表中也是包含了三个规则链:PREROUTING链、POSTROUTING链、OUTPUT链;

mangle表中则是把五个规则链全包含了;

raw表中包含了两条规则链:OUTPUT链、PREROUTING链;

在处理各种数据包时,五个规则链的应用时间点

INPUT链:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则

OUTPUT链:当防火墙本机向外发送数据包(出战)时,应用此链中的规则

FORWARD链:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则PREROUTING链:在对数据包作路由选择之前,应用此链中的规则

POSTROUTING链:在对数据包作路由选择之后,应用此链中的规则

四个表的优先级

当数据包到达防火墙时,数据会依次应用raw表、mangle表、nat表和filter表中对于的链内规则

有关Linux下的防火墙的更多相关文章

  1. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

  2. Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理 - 2

    文章目录一基础定义二创建逻辑卷2-1准备物理设备2-2创建物理卷2-3创建卷组2-4创建逻辑卷2-5创建文件系统并挂载文件三扩展卷组和缩减卷组3-1准备物理设备3-2创建物理卷3-3扩展卷组3-4查看卷组的详细信息以验证3-5缩减卷组四扩展逻辑卷4-1检查卷组是否有可用的空间4-2扩展逻辑卷4-3扩展文件系统五删除逻辑卷5-1备份数据5-2卸载文件系统5-3删除逻辑卷5-4删除卷组5-5删除物理卷六LVM逻辑卷缩容6-1缩容注意事项6-2标准缩容步骤一基础定义LVM,LogicalVolumeManger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分

  3. ruby - 如何在 Ruby 中获取 linux 系统信息 - 2

    如何在Ruby中获取linux系统(这必须适用于Fedora、Ubuntu等)的软件/硬件信息? 最佳答案 Chef背后的优秀人才,拥有一颗名为Ohai的优秀gemhttps://github.com/opscode/ohai以散列形式返回系统信息,例如操作系统、内核、规范、fqdn、磁盘、空间、内存、用户、接口(interface)、sshkey等。它非常完整,非常好。它还会安装命令行二进制文件(也称为ohai)。 关于ruby-如何在Ruby中获取linux系统信息,我们在Stack

  4. ruby - rbenv:在 Linux Mint 上找不到 gem 命令 - 2

    我在LinuxMint17.2上。我最近使用apt-getpurgeruby​​删除了ruby​​。然后我安装了rbenv然后rbenvinstall2.3.0所以现在,~/.rbenv/versions/2.3.0/bin/ruby存在。但是现在,我无法执行geminstallrubocop。我明白了:$geminstallrubocoprbenv:gem:commandnotfoundThe`gem'commandexistsintheseRubyversions:2.3.0但是我可以~/.rbenv/versions/2.3.0/bin/geminstallrubocop。但是,

  5. ruby - 在 Linux 上编译 Ruby 1.9.2 所需的先决条件? - 2

    我是Ruby和RoR的新手。我有一个带有Ubuntu镜像的干净Linode实例,我想从源代码编译Ruby而不是使用apt-get。我已经在谷歌上搜索了执行此操作的说明,但经过一些尝试后,当我尝试运行一些教程示例时,我不断收到有关缺少zlib和其他一些包的错误。任何人都可以给我详细的说明(或链接),教我如何在从源代码编译Ruby之前安装必要的必备包吗?我的目的是编译Ruby的最新稳定版本,然后安装Rubygems和Rails。提前感谢您的帮助!!! 最佳答案 Thisblogpost涵盖从源代码编译ruby​​所需的包和安装过程;它引

  6. Linux网络编程必备的POSIX API的细节 - 2

    目录POSIXAPI大集合五元组三次握手的过程,内核协议栈分析listen函数DDOS攻击,洪水攻击DDOS攻击的应对措施数据发送 怎么保证顺序?如何保证包地顺序到达(序号+确认应答机制+重传)TCP断开连接的过程问题1.大量的CLOSE_WAIT+FIN_WAIT2是为啥?time_wait状态存在的原因?POSIXAPI大集合五元组(sip,sport,dip,dport,protocol)三次握手的过程,内核协议栈分析内核协议栈中是有内核数据结构的.  我们send/write数据,都是先发送到内核协议栈中,然后由内核协议栈封装发送到物理介质中传输到对端的对端的接收过程也是经有内核协议栈

  7. Linux export 命令及如何删除export设置的环境变量 - 2

    背景:Linuxexport命令用于设置或显示环境变量。在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作。语法:export[-fnp][变量名称]=[变量设置值]参数说明:-f 代表[变量名称]中为函数名称。-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。-p 列出所有的shell赋予程序的环境变量。实例:列出当前所有的环境变量#export-p//列出当前的环境变量值定义环境变量赋值#exportMYENV=7//定义环境变量并赋值添加环境变量:默认保存在

  8. Linux操作系统CentOS7安装Nginx[详细版] - 2

    Nginx安装1.官网下载Nginx2.使用XShell和Xftp将压缩包上传到Linux虚拟机中3.解压文件nginx-1.20.2.tar.gz4.配置nginx5.启动nginx6.拓展(修改端口和常用命令)(一)修改nginx端口(二)常用命令1.官网下载Nginxhttp://nginx.org/en/download.html这里我下载的是1.20.2版本,大家按需下载对应稳定版即可2.使用XShell和Xftp将压缩包上传到Linux虚拟机中没有XShell可以参考《Linux操作系统CentOS7连接XShell》3.解压文件nginx-1.20.2.tar.gz1)检查是否存

  9. 【Linux】初识Linux --指令Ⅰ - 2

    Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法,Linux…感兴趣就关注我吧!你定不会失望。目录1.ls显示当前目录下的文件内内容2.pwd-显示用户当前所在的目录3.cd-改变工作目录。将当前工作目录改变到指定的目录下1.cd-回到上一次待的工作空间2.cd..返回上一层目录1.相对路径:cd../aurora2.绝对路径:cd/home/aurora/lesson1/aurora3.cd~进入用户家目录4.cd/进入root目录4.mkdir-新建目录5.rmdir/rm-删除1.rmdir删除空文件夹2.rm删除1.rm-f2.rm-i3.rm-r1.ls显示当前目

  10. 从零开始学习Linux运维,成为IT领域翘楚(二) - 2

    文章目录🔥Linux系统目录结构🔥Linux用户和用户组🔥Linux用户管理🔥Linux系统目录结构文件系统组织结构⭐ /lib系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。⭐ /lost+found一般情况下是空的,当系统非法关机后,这里就存放了一些文件。⭐ /etc所有系统管理所需要的配置文件和子目录my.conf⭐ /usr用户的很多应用程序和文件都放在这个目录下。⭐ /bin是Binary的缩写,这个目录存放着经常使用的命令⭐ /sbin(usr/sbin、/usr/local/sbin)sbin就是peruse

随机推荐