无论是 Windows 系统还是 Linux 系统都有防火墙,防火墙能够防护电脑免受外界攻击,保护电脑安全。本篇介绍如何在 Ubuntu/Debian/CentOS 上安装和使用防火墙。

Ubuntu/Debian 上防火墙

安装防火墙

1
2
sudo apt update
sudo apt install ufw

防火墙使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 开启防火墙
sudo ufw enable
# 查看防火墙状态
sudo ufw status
# 开启指定端口
sudo ufw allow 22
# 开启指定端口的tcp
sudo ufw allow 22/tcp
# 打开端口范围,此时必须指定 tcp 或 udp
sudo ufw allow 7000:7070/tcp
# 允许指定IP地址
sudo ufw allow from xxx.xxx.xxx.xxx
# 允许指定IP地址访问指定端口
sudo ufw allow from xxx.xxx.xxx.xxx to any port 22
# 允许子网
sudo ufw allow from 192.168.1.0/24 to any port 3306
# 允许指定网络接口的连接
sudo ufw allow in on eth0 to any port 3306
# 删除指定端口
sudo ufw delete allow 8888
# 禁止连接
sudo ufw deny from 192.168.1.0/24
# 指定端口禁止连接
sudo ufw deny from 192.168.1.0/24 to any port 80
# 按序号查看
sudo ufw status numbered
# 删除对应序号10的规则
sudo ufw delete 10
# 禁止防火墙
sudo ufw disable
# 重置防火墙
sudo ufw reset

注意,开启防火墙后,注意打开指定的SSH连接端口,不然重启后将无法使用SSH连接

CentOS 上防火墙

安装防火墙

1
sudo yum install firewalld

使用防火墙

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看状态
sudo firewall-cmd --state
# 开启防火墙
sudo systemctl start firewalld.service
# 关闭防火墙
sudo systemctl stop firewalld.service
# 设置开机启动防火墙
sudo systemctl enable firewalld.service
# 禁止开机启动防火墙
sudo systemctl disable firewalld.service
# 查看防火墙是否会开机自启
sudo systemctl list-unit-file | grep firewalld
sudo systemctl is-enabled firewalld
# 开放指定端口
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
# 关闭指定端口
sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 重新载入,才能生效
sudo firewall-cmd --reload
# 查询端口是否开放
sudo firewall-cmd --query-port=22/tcp

参考连接

  1. 如何在 Debian 10 上使用 UFW 来设置防火墙
  2. [745]Debian打开关闭防火墙
  3. CentOS7查看和关闭防火墙
  4. How To Set Up a Firewall Using FirewallD on CentOS 7