ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何在 Debian 10 中使用 ufw 设置防火墙

2022-06-12 20:36:10  阅读:198  来源: 互联网

标签:10 sudo 端口 防火墙 规则 ufw Debian UFW


一个被正确配置的防火墙是所有系统安全中最重要的部分。UFW (Uncomplicated Firewall) 是一个用来管理 iptables 防火墙规则的用户...

一个被正确配置的防火墙是所有系统安全中最重要的部分。UFW (Uncomplicated Firewall) 是一个用来管理 iptables 防火墙规则的用户友好的前端。它的主要目的就是为了使得管理 iptables 更简单,就像名字所说的,简单的。

本文描述了如何在 Debian 10 上使用 UFW 设置防火墙。

一、前提条件

仅仅 root 或者其他有 sudo 权限的用户可以管理系统防火墙。

二、安装 UFW

输入下面的命令,安装ufw软件包:

sudo apt update
sudo apt install ufw

三、检查 UFW 的状态

安装过程不会自动激活防火墙,以避免服务器被锁住。你可以检查 UFW 的状态,输入:

输出如下:

如果 UFW 激活了,输入应该类似下面这样:

四、UFW 默认策略

默认情况下,UFW 阻塞了所有进来的连接,并且允许所有出去的连接。这意味着任何人无法访问你的服务器,除非你打开端口。运行在服务器上的应用和服务可以访问外面的世界。

默认的策略定义在/etc/default/ufw文件中,并且可以通过使用sudo ufw default <policy> <chain>命令来修改。

防火墙策略是用来构建更多详细的和用户自定义的规则的基础。通常情况下,初始的默认策略是一个很好的起点。

五、应用配置

大部分应用都附带一份应用配置,它描述了服务,并且包含了 UFW 设置。这个规则在软件包安装的时候,被自动创建在/etc/ufw/applications.d目录下。

想要列举出你系统上所有的应用配置,输入:

与你系统上安装的软件包有关系,输出应该看起来像下面这样:

Available applications:
  DNS
  IMAP
  IMAPS
  OpenSSH
  POP3
  POP3S
  Postfix
  Postfix SMTPS
  Postfix Submission
  ...

想要查找更多关于指定配置和包含规则的信息,使用app info命令,加上配置名称。例如,你想要获得 OpenSSH 配置,你可以使用:

sudo ufw app info OpenSSH

输出如下:

Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

输出包含配置名称,标题,描述,以及防火墙规则。

六、允许 SSH 连接

在启用 UFW 防火墙之前,你需要允许 SSH 连接。

如果你从远程位置访问你的服务器,并且你在明确允许 SSH 连接之前启用 UFW 防火墙,你将永远无法连接到你的 Debian 服务器。

想要配置你的 UFW 防火墙接受 SSH 连接,运行下面的命令:

输出:

Rules updated
Rules updated (v6)

如果 SSh 服务器没有监听默认端口 22,你还需要打开那个端口。

例如,你的 SSH 服务器 监听端口 7722,你将会执行:

七、启用 UFW

现在 UFW 防火墙被配置允许 SSH 远程连接,启用它,输入:

输出:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

你将会被警告启用防火墙可能会中断现有的 SSH 连接,输入 "y”,并且回车。

八、打开端口

取决于运行在你服务器上的应用,你需要根据服务打开不同的端口。

下面是几个例子,用来演示如何允许对最常用的服务的连接。

8.1 打开端口 80 - HTTP

允许 HTTP 连接:

除了使用http,你还可以使用端口号码,80

8.2. 打开端口 443 - HTTPS

允许 HTTPS 连接:

你还可以使用端口号码,443

8.3. 打开端口 8080

如果你运行 Tomcat 或者其他监听8080端口的应用,打开这个端口:

九、打开端口范围

使用 UFW,你可以允许一个端口访问的访问。当你打开一个端口访问,你需要指定端口的协议。

例如想要允许端口从71007200同时支持tcpudp,运行下面的命令:

sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp

十、允许指定 IP 地址

想要允许指定 IP 地址访问所有的端口,使用ufw allow from命令,加上 IP 地址:

sudo ufw allow from 64.63.62.61

十一、允许指定 IP 地址访问指定端口

想要允许指定端口,比如从你 IP 地址64.63.62.61的工作机器访问22端口, 使用下面的命令:

sudo ufw allow from 64.63.62.61 to any port 22

十二、允许子网

允许一个子网 IP 地址的访问和允许一个单个 IP 地址的访问,命令是一样的。唯一的不同是需要指定网络掩码。例如,如果你想要允许 IP 地址 (192.168.1.1 到 192.168.1.254),通过 3360(MySQL),你可以使用这个命令:

sudo ufw allow from 192.168.1.0/24 to any port 3306

十三、允许指定网络接口的连接

想要允许指定端口,比如指定网络接口eth2访问 3360 端口,使用allow in on 和 网络接口的名字:

sudo ufw allow in on eth2 to any port 3306

十四、禁止连接

对于所有进来连接的默认的策略被设置为deny,它代表 UFW 将会屏蔽所有进来的连接,除非你指定打开连接。

比如说你打开了端口80443,并且你的服务器处于来自23.24.25.0/24网络的攻击。想要禁止来自23.24.25.0/24的所有连接,使用下面的命令:

sudo ufw deny from 23.24.25.0/24

如果你仅仅像禁止从23.24.25.0/2480443端口的访问,使用:

sudo ufw deny from 23.24.25.0/24 to any port 80
sudo ufw deny from 23.24.25.0/24 to any port 443

编写禁止规则和编写允许规则是一样的。你只需要将allow替换成deny

十五、删除 UFW 规则

有两种不同的方式可以删除 UFW 规则。通过规则序号和通过指定的规则。

通过规则序号来删除 UFW 规则很简单,特别是你刚接触 UFW。

想要通过规则序号来删除,你需要找到你想删除的规则序号。想要这么做,运行下面的命令:

输出:

Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 8080/tcp                   ALLOW IN    Anywhere

想要删除规则,序号为 3,这个规则允许对端口 8080 的连接,你可以使用下面的命令:

删除规则的第二种方法就是指定实际的规则。例如,如果你添加过一个打开端口8069的规则,你可以通过下面的命令删除它:

sudo ufw delete allow 8069

十六、禁用 UFW

如果因为任何原因,你需要停止 UFW,并且使得所有规则失效,你可以运行:

稍后,如果你想重新启用 UFW,并且激活所有规则,输入:

十七、重置 UFW

重置 UFW 将会禁用 UFW,删除所有激活的规则。如果你想撤销所有的应用规则,并且重新开始时,这个很有用。

想要重置 UFW,简单输入下面的命令:

十八、总结

你已经学会了如何在你的 Debian 10 机器上安装和配置 UFW 防火墙。在限制所有不必要连接时,请确保系统正常运行所需要的允许进来的连接。

标签:10,sudo,端口,防火墙,规则,ufw,Debian,UFW
来源: https://www.cnblogs.com/ilkezd/p/16368755.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有