在 Debian上安装和配置 Firewalld
在 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服务时,默认情况下允许ssh
和dhcpv6-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