云网牛站
所在位置:首页 > Linux安全 > 在Debian 10(Buster)上安装和配置Firewalld的方法

在Debian 10(Buster)上安装和配置Firewalld的方法

2019-07-08 11:20:12作者:牛福昕稿源:云网牛站

在本文中,我们将介绍如何在Debian 10(Buster)操作系统上安装和配置Firewalld,Firewalld是RHEL系列的默认防火墙软件,但它也可以在Debian系列Linux发行版上使用。

 

在Debian 10(Buster)上安装Firewalld

firewalld包可以在官方的Debian 10 apt存储库中得到,运行以下命令安装:

sudo apt update

sudo apt -y install firewalld

这将在Debian 10上安装firewalld并将服务设置为在启动时启动:

$ apt policy firewalld

firewalld:

Installed: 0.6.3-5

Candidate: 0.6.3-5

Version table:

*** 0.6.3-5 500

500 http://deb.debian.org/debian buster/main amd64 Packages

100 /var/lib/dpkg/status

确认服务处于运行状态:

$ sudo firewall-cmd --state

running

$ systemctl status firewalld

在Debian 10(Buster)上安装和配置Firewalld的方法

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

sudo ufw disable

参考:Debian、Ubuntu、Linux Mint系统中的UFW防火墙入门教程

 

在Debian 10上使用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

例如:

$ 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、向区域添加接口

对于具有多个接口的系统,可以向区域添加接口,后端Web服务器到私有区域,前端应用程序到公共区域:

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。

注:更多的实例应用,请参考双网卡Firewalld在Linux系统中的配置方法CentOS 7下使用FirewallD构建动态防火墙

 

相关主题

在Ubuntu 18.04/16.04系统上安装和使用Firewalld的方法

精选文章
热门文章