JiFu's Wiki JiFu's Wiki
首页
  • HTML
  • JavaScript
  • NodeJS
  • Vuejs
  • 微信小程序
  • Python
  • 数据库
  • 中间件
  • 算法
  • 软件工程
  • Wordpress
  • iOS开发
  • Android开发
  • Linux
  • Windows
  • MacOS
  • Docker
  • Vim
  • VSCode
  • Office
  • 其他
  • Photoshop
  • Sketch
  • Mac
  • 游戏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
首页
  • HTML
  • JavaScript
  • NodeJS
  • Vuejs
  • 微信小程序
  • Python
  • 数据库
  • 中间件
  • 算法
  • 软件工程
  • Wordpress
  • iOS开发
  • Android开发
  • Linux
  • Windows
  • MacOS
  • Docker
  • Vim
  • VSCode
  • Office
  • 其他
  • Photoshop
  • Sketch
  • Mac
  • 游戏
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • DevOps介绍
  • Linux

    • Linux介绍
    • Linux系统目录结构及详细说明
    • 使用SSH登录Google Cloud Platform
    • 生产服务器虚拟化环境搭建大纲
    • 服务器虚拟化环境搭建
    • Ubuntu

    • CentOS

    • Manjaro

    • Command

    • System Service

      • Linux swap分区及作用详解
      • 使用 systemctl 添加自定义服务
      • 服务管理工具 - systemctl
      • 防火墙工具 - firewalld
        • 查看端口情况
        • 删除端口
        • 添加端口
        • 命令含义
        • firewalld配置重新载入
        • 端口转发至其他IP其他Port
        • 端口转发至其他Port
        • 端口转发至其他IP
        • 启动iptables服务
        • 停止iptables服务
        • 禁用iptables服务
        • 启用iptables服务
        • 检查iptables服务的状态
        • drop(丢弃)
        • block(限制)
        • public(公共)
        • external(外部)
        • dmz(非军事区)
        • work(工作)
        • home(家庭)
        • internal(内部)
        • trusted(信任)
      • Linux VPS一键屏蔽指定国家所有的IP访问
  • MacOS

  • Windows

  • Docker

  • Vim

  • VSCode

  • Office

  • 其他

  • 运维
  • Linux
  • System Service
JiFu
2023-09-13
目录

防火墙工具 - firewalld

# 防火墙

防火墙是一种位于内部网络与外部网络之间的网络安全系统。一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙通常工作在网络层,也即IPv4或IPv6的IP包上。

是否允许包通过防火墙,取决于防火墙配置的规则。这些规则既可以是内建的,也可以是用户自定义的。每一个包要进出防火墙,均需要满足防火墙配置的规则。

每一条规则均有一个目标动作,具有相同动作的规则可以分组在一起。对于Linux系统,最常用的防火墙有:FirewallD或iptables。Linux的发行版种类极多,但是公认的仍然是这两种。

# 什么是FirewallD

防火墙守护 firewalld(Dynamic Firewall Manager of Linux systems) 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。

# 什么是iptables

iptables是另一种服务,它可以决定是否允许、删除或返回IP数据包。iptables服务管理IPv4数据包,而ip6tables则管理IPv6数据包。此服务管理了一堆规则表,其中每个表分别用于维护不同的目的,比如过滤表(filter table)为防火墙规则,NAT表供新连接查询使用,mangle表用于数据包的转换等。

更进一步,每个表还具有规则链,规则链可以是内建的或是用户自定义的,它表示适用于一个数据包的规则集合,从而决定数据包应该执行哪些目标动作,比如允许ALLOWED、阻塞BLOCKED或返回RETURNED。iptables服务在RHEL/CentOS 6/5、Fedora、ArchLinux、Ubuntu等Linux发行版中是系统默认的服务。

func desc
Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别
drop 丢弃所有进入的包,而不给出任何响应
block 拒绝所有外部发起的连接,允许内部发起的连接
public 允许指定的进入连接
external 同上,对伪装的进入连接,一般用于路由转发
dmz 允许受限制的进入连接
work 允许受信任的计算机被限制的进入连接,类似 workgroup
home 同上,类似 homegroup
internal 同上,范围针对所有互联网用户
trusted 信任所有连接

# firewalld的基本使用

启动: systemctl start firewalld

查看状态: systemctl status firewalld 或者 firewall-cmd --state

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

# firewalld端口管理

# 查看端口情况

firewall-cmd --zone= public --query-port=80/tcp

# 删除端口

firewall-cmd --zone=public --remove-port=3306/tcp --permanent

# 添加端口

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

出现success表明添加成功,重启firewald服务或配置重新载入。

# 命令含义

--zone              #作用域
--add-port=80/tcp   #添加端口,格式为:端口/通讯协议
--permanent         #永久生效,没有此参数重启后失效
1
2
3

# firewalld配置重新载入

firewall-cmd --reload

# 配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

# 端口转发

firewall-cmd --zone=external --add-masquerade

# 端口转发至其他IP其他Port

转发 22 端口数据至另一 ip 的 2055 端口上

firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100

# 端口转发至其他Port

然后转发 tcp 22 端口至 3753

firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753

# 端口转发至其他IP

转发 22 端口数据至另一个 ip 的相同端口上

firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

# 内网白名单

把一个源地址加入白名单,以便允许来自这个源地址的所有连接 这个在集群中使用常见 设置后利用firewall-cmd --reload更新防火墙规则 firewall-cmd --add-rich-rule 'rule family="ipv4" source address="192.168.1.215" accept' --permanent firewall-cmd --reload

# iptables服务的基本操作

在RHEL/CentOS 6/5/4系统和Fedora 12-18系统中,iptables是默认的防火墙,如果服务不存在,可以这样安装:
> yum install iptables-services

然后就可以对iptables服务进行启动、停止、重启等操作了。

# 启动iptables服务

systemctl start iptables or service iptables start

# 停止iptables服务

systemctl stop iptables or service iptables stop

# 禁用iptables服务

systemctl disable iptables or service iptables save or service iptables stop

# 启用iptables服务

systemctl enable iptables or service iptables start

# 检查iptables服务的状态

systemctl status iptables or service iptables status

# 理解网络区

在CentOS/RHEL 7系统中,基于用户对网络中设备和通信所给与的信任程度,防火墙可用于将网络划分成不同的区域,区域类型如下:

# drop(丢弃)

任何接收的网络数据包都被丢弃,没有任何回复。仅能有发送出去的网络连接。

# block(限制)

任何接收的网络连接都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。

# public(公共)

在公共区域内使用,不能相信网络内的其他计算机不会对您的计算机造成危害,只能接收经过选取的连接。

# external(外部)

特别是为路由器启用了伪装功能的外部网。您不能信任来自网络的其他计算机,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。

# dmz(非军事区)

用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。

# work(工作)

用于工作区。您可以基本相信网络内的其他电脑不会危害您的电脑。仅仅接收经过选择的连接。

# home(家庭)

用于家庭网络。您可以基本信任网络内的其他计算机不会危害您的计算机。仅仅接收经过选择的连接。

# internal(内部)

用于内部网络。您可以基本上信任网络内的其他计算机不会威胁您的计算机。仅仅接受经过选择的连接。

# trusted(信任)

可接受所有的网络连接。

对于区域的修改,可使用网络管理器NetworkManager搞定。

# 理解直接接口

FirewallD包含了一个名为直接接口(direct interface)的概念,意思是可以直接通过iptables、ip6tables和ebtables的规则。直接接口适用于应用程序,不适用于用户。如果不熟悉iptables,那么使用直接接口是很危险的,因为可能会导致防火墙被入侵。

FirewallD保持对所增加规则项的追踪,所以能质询FirewallD,发现由使用直接端口模式的程序造成的更改。要使用直接端口,增加–direct选项到firewall-cmd命令来使用。

# 参考资料

-CentOS7使用firewalld命令 (opens new window) -CentOS7 防火墙firewall开放3306端口(顺带科普firewall命令) (opens new window)

#service#firewalld
上次更新: 2024/08/11, 01:59:03
服务管理工具 - systemctl
Linux VPS一键屏蔽指定国家所有的IP访问

← 服务管理工具 - systemctl Linux VPS一键屏蔽指定国家所有的IP访问→

最近更新
01
WPS快捷键
05-21
02
Disable notification "to get future google chrome updates you'll need macos 10.13 or later" on mac
05-14
03
MacOS软件推荐
04-30
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Ji Fu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式