首页 > 其他分享 >在 Debian上安装和配置 Firewalld

在 Debian上安装和配置 Firewalld

时间:2024-02-03 23:00:28浏览次数:27  
标签:cmd -- sudo Firewalld firewall add permanent 安装 Debian

在 Debian上安装和配置 Firewalld

来源 https://cn.linux-console.net/?p=21503

 

在本教程中,我们将了解如何在 Debian 10/Debian 11 上安装和配置 Firewalld。 Firewalld 是 Linux 防火墙管理工具,支持 IPv4、IPv6、以太网桥和 ipset 防火墙设置。

Firewalld 充当 Linux 内核的 netfilter 框架的前端。它是 RHEL 7+ 系列 Linux 发行版的默认防火墙管理软件,但也可以在 Debian 系列 Linux 发行版上使用。

在 Debian 上安装 Firewalld

Firewalld 软件包可在官方 Debian apt 存储库中找到。安装就像 root 用户或具有 sudo 权限的用户在终端中触发以下命令一样快。

sudo apt update
sudo apt -y install firewalld

这将在 Debian 11/10 上安装 firewalld 并将该服务设置为在引导时启动。拉取包详细信息:

$ apt policy firewalld
firewalld:
  Installed: 0.9.3-2
  Candidate: 0.9.3-2
  Version table:
 *** 0.9.3-2 500
        500 http://deb.debian.org/debian bullseye/main amd64 Packages
        100 /var/lib/dpkg/status

确认服务处于运行状态。

$ sudo firewall-cmd --state
 running

debian@debian-bullseye-01:~$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
     Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-08-19 19:18:49 UTC; 39s ago
       Docs: man:firewalld(1)
   Main PID: 3317 (firewalld)
      Tasks: 2 (limit: 2340)
     Memory: 29.3M
        CPU: 868ms
     CGroup: /system.slice/firewalld.service
             └─3317 /usr/bin/python3 /usr/sbin/firewalld --nofork --nopid

Aug 19 19:18:48 debian-bullseye-01 systemd[1]: Starting firewalld - dynamic firewall daemon...
Aug 19 19:18:49 debian-bullseye-01 systemd[1]: Started firewalld - dynamic firewall daemon.

如果您启用了 ufw,请将其禁用以使 firewalld 成为您的默认防火墙

sudo ufw disable

在 Debian上使用 Firewalld

现在已经安装了该软件包并启动了firewalld服务,让我们看一些使用示例,了解如何使用它来保护您的服务器/工作站。

1 – 列出配置的所有防火墙规则

要列出当前规则,请使用以下命令:

$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

当您启动firewalld服务时,默认情况下允许sshdhcpv6-client服务。

2 – 列出可以启用/禁用的服务

要获取可以启用或禁用的服务的完整列表,请使用以下命令。

sudo firewall-cmd --get-services

3 – 启用服务/服务列表

要允许防火墙上的服务,命令语法为:

sudo firewall-cmd --add-service="servicename" --permanent

下面的示例将启用 http 服务。

$ sudo firewall-cmd --add-service="http" --permanent
success

$ sudo firewall-cmd --reload

对于服务列表,请用逗号分隔它们。

sudo firewall-cmd --add-service={http,https,smtp,imap} --permanent --zone=public
sudo firewall-cmd --reload

4 – 启用 TCP 端口

启用 TCP 端口的语法是:

sudo firewall-cmd --add-port=port/tcp --permanent
sudo firewall-cmd --reload

以下是如何启用端口 8080 和 8443。

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port={8080,8443}/tcp --permanent
sudo firewall-cmd --reload

对于 UDP 端口,将 /tcp 替换为 /udp。

5 – 创建一个新区域

要创建新的防火墙区域,请使用以下命令:

$ sudo firewall-cmd --new-zone=zonename --permanent

#E.g
$ sudo firewall-cmd --new-zone=private --permanent
$ sudo firewall-cmd --reload

6 – 启用特定区域上的服务/端口

要启用特定区域中的服务/端口,语法为:

sudo firewall-cmd --zone=<zone> --add-port=<port>/tcp --permanent
sudo firewall-cmd --zone=<zone> --add-port=<port>/udp --permanent
sudo firewall-cmd --zone=<zone> --add-service=<service> --permanent
sudo firewall-cmd --zone=<zone> --add-service={service1,service2,service3} --permanent

7 – 将接口添加到区域

对于具有多个接口的系统,您可以将一个接口添加到一个区域。例如,后端网络服务器到私有区域,前端应用程序到公共区域。

sudo firewall-cmd --get-zone-of-interface=eth1 --permanent
sudo firewall-cmd --zone=<zone> --add-interface=eth1 --permanent

8 – 允许从特定子网/IP 访问端口

对服务或端口的访问可以限制为来自特定 IP 地址或子网。使用丰富的规则。

$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="192.168.0.12/32" accept' --permanent

$ sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="10.1.1.0/24" accept' --permanent

9 – 列出丰富的规则

使用以下命令列出丰富的规则:

sudo firewall-cmd --list-rich-rules

10 – 配置端口转发

请参阅下面的示例。

# Enable masquerading
sudo firewall-cmd --add-masquerade --permanent

# Port forward to a different port within same server ( 22 > 2022)
sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toport=2022 --permanent

# Port forward to same port on a different server (local:22 > 192.168.2.10:22)
sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toaddr=192.168.2.10 --permanent

# Port forward to different port on a different server (local:7071 > 10.50.142.37:9071)
sudo firewall-cmd --add-forward-port=port=7071:proto=tcp:toport=9071:toaddr=10.50.142.37 --permanent

11 – 删除端口或服务

要从防火墙中删除端口或服务,请将用于启用服务的每个命令中的 --add 替换为 –-remove

享受在 Debian 10 /Debian 11 Linux 上使用 Firewalld 的乐趣。如需进一步阅读,请查看 Firewalld 文档

  • 最佳 LPIC-1 和 LPIC-2 认证学习书籍
  • 适合初学者和专家的最佳 Linux 书籍

 

========== End

 

标签:cmd,--,sudo,Firewalld,firewall,add,permanent,安装,Debian
From: https://www.cnblogs.com/lsgxeva/p/18005362

相关文章

  • MondoDb安装教程
    MondoDb使用教程一、安装和下载1.下载下载地址:https://www.mongodb.com/try/download/community2.安装将下载的tar.gz包上传到虚拟机1.解压:tar-zxvfmongodb-linux-x86_64-rhel70-4.4.28.tgz3.启动和关闭1:前台启动mkdir-p/soft/mongo/mongodb/data/dbmkdir-p/s......
  • 2、Git之Windows版本的安装
    2.1、下载Git官网下载地址:https://git-scm.com/download/最初,Git是用于管理Linux社区的代码,所以在很长的一段时间内,Git只能安装在Linux或Unix系统上。现在,Git已经可以安装在Linux、Unix、Mac和Windows这几大系统上了。由于大多数用户用的都是windows系统(64位),......
  • 安卓开发1——安装Android studio
    去网上找Android的studio1的下载教程找到对应的下载链接,下载 因为我有安装完成后就把下载的软件安装的文件删除的习惯所以就不展示了具体的安装教程可以看AndroidStudio安装配置教程-Windows(详细版)-CSDN博客 安装后新建项目完成后在最右侧的第三个可以挑选自己安卓......
  • ubuntu安装postgis
    要在Ubuntu上安装PostGIS,你需要执行以下步骤:安装PostgreSQL:如果尚未安装PostgreSQL,你需要首先安装它。可以使用以下命令来安装PostgreSQL:sudoaptupdatesudoaptinstallpostgresqlpostgresql-contrib安装PostGIS:安装PostgreSQL后,可以安装PostGIS。查看......
  • OneFlow框架0.9.1dev版本,成功安装并运行
    安装cuda和cudnn:condainstallcudatoolkit==11.8.0python3-mpipinstallnvidia-cudnn-cu11==8.7.0.84下载安装包的下载地址页面:wgethttps://oneflow-staging.oss-cn-beijing.aliyuncs.com/branch/master/cu118并从中找到对应python版本的安装包地址。下载框架安装......
  • 关于go install安装cli找不到命令,zsh: command not found
    关于goinstall的安装位置goinstall命令构建并安装由命令行上的路径命名的软件包。可执行文件(主包)安装在GOBIN环境变量命名的目录中,如果没有设置GOPATH环境变量,则默认为$GOPATH/bin或$HOME/go/bin。$GOROOT中的可执行文件安装在$GOROOT/bin或$GOTOOLDIR中,而不是$GOBIN中。不可......
  • VSCode项目中安装npm依赖包失败解决方案
    解决VScode提示:无法将“node”“npm”项识别为cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。此方法用于解决使用vscode打开项目文件后,使用npminstall命令安装node_modules依赖包失败的问题方法一:创建新终端窗口;......
  • nodejs的下载安装
    8、nodejs的作用在vscode打开项目后,由于项目依附于我们的npm,我们需要将npm中的依赖下载下来,npm又依附于nodejs,故需要下载nodejs。下载node并安装:https://nodejs.org/dist/v12.14.0/nodev12.14.0-x64.msi; 9、设置npm镜像(同设置maven) ......
  • windows安装python教程
    下载Python首先,您需要在Python官方网站上下载安装包。该网站提供不同版本的Python下载选项。新手建议下载最新版本以获得最佳支持和功能。访问官方网站,选用适合Windows系统的安装包。启动安装程序下载后,双击操作安装程序,可以看到安装界面。这里有两个选项:“InstallPython3.x......
  • 2024年2月笔记:Redis7.2.4版本在Mac电脑的Docker里安装Redis集群
    本文环境:Mac电脑,Brew和Docker都已安装好,Redis版本:7.2.4第1步,验证Docker和Brewdocker--version  //查看docker版本,此处忽略安装Docker步骤brew--version   //查看版本号第2步,创建Redis集群网络dockernetworkcreateredis-cluster-net   //创建一个名......