zoukankan      html  css  js  c++  java
  • 在Ubuntu 20.04 LTS中安装和设置UFW

    UFW或简单的防火墙是Linux iptables的用户友好前端。UFW用Python编写(支持Python 3.5及更高版本),并且是Ubuntu系统中当前的事实上的防火墙管理实用程序。该实用程序非常易于使用,可充当基于主机的出色防火墙。
    本文向您展示如何在Ubuntu 20.04 LTS系统上安装和使用UFW。
    安装
    UFW预先安装在大多数Ubuntu系统上。如果您的版本尚未安装此程序,则可以使用snap或apt软件包管理器进行安装。
    $ sudo snap install ufw

    $ sudo apt install ufw
    我个人更喜欢使用apt软件包管理器来执行此操作,因为snap不太流行,并且我不想拥有这种额外的复杂性。在撰写本文时,针对UFW发行的20.04版本的版本为0.36。
    传入流量与传出流量
    如果您是网络世界的初学者,那么首先需要澄清的是传入和传出流量之间的差异。
    当您使用apt-get安装更新,浏览Internet或查看电子邮件时,您正在做的就是向服务器(例如Ubuntu,Google等)发送“传出”请求。要访问这些服务,您甚至不需要公共IP。通常,为家庭宽带连接分配一个公共IP地址,并且每个设备都有自己的私有IP。然后,路由器使用称为NAT或网络地址转换的信息处理流量。
    NAT和专用IP地址的详细信息不在本文讨论范围之内,但是上面链接的视频是一个很好的起点。回到UFW,默认情况下,UFW将允许所有常规传出Web流量。您的浏览器,程序包管理器和其他程序会选择一个随机端口号-通常是一个3000以上的端口号-这就是每个应用程序可以跟踪其连接的方式。
    当您在云中运行服务器时,它们通常带有公共IP地址,并且上述允许传出流量的规则仍然有效。由于您仍将使用软件包管理器之类的实用程序,这些实用程序作为“客户端”与世界其他地方进行通信,因此UFW默认情况下允许这样做。
    有趣之处始于传入流量。应用程序(例如用于登录VM的OpenSSH服务器)会像其他应用程序一样,在特定端口(如22)上侦听传入的请求。Web服务器需要访问端口80和443。
    防火墙的工作之一是允许特定的应用程序侦听某些传入的流量,同时阻止所有不必要的流量。您可能在VM上安装了数据库服务器,但通常不需要在具有公共IP的接口上侦听传入的请求。通常,它只是在回送接口上侦听请求。
    Web上有许多漫游器,它们不断用虚假请求轰炸服务器,以蛮横地闯入服务器或进行简单的“拒绝服务”攻击。配置良好的防火墙应该能够借助Fail2ban等第三方插件来阻止大多数这些恶作剧。
    但是,到目前为止,我们将专注于一个非常基本的设置。
    基本用法
    现在您已经在系统上安装了UFW,我们将研究该程序的一些基本用法。由于防火墙规则是在系统范围内应用的,因此以下命令以root用户身份运行。如果愿意,可以在此过程中使用具有适当特权的sudo。

    # ufw status
    Status: inactive

    默认情况下,UFW处于非活动状态,这是一件好事。您不想阻止端口22(默认的SSH端口)上的所有传入流量。如果您通过SSH登录到远程服务器,并且阻塞了端口22,则您将被锁定在服务器之外。
    UFW使我们很容易为OpenSSH戳一个漏洞。运行以下命令:

    root@testubuntu:~# ufw app list
    Available applications:
    OpenSSH

    请注意,我仍未启用防火墙。现在,我们将OpenSSH添加到允许的应用程序列表中,然后启用防火墙。为此,请输入以下命令:

    # ufw allow OpenSSH
    Rules updated
    Rules updated (v6)
    # ufw enable

    该命令可能会破坏现有的SSH连接。进行运算(y | n)?y。
    防火墙现在处于活动状态,并在系统启动时启用。
    恭喜,UFW现在已启动并正在运行。UFW现在仅允许OpenSSH侦听端口22上的传入请求。要随时检查防火墙的状态,请运行以下代码:

    # ufw status
    Status: active
    To Action From
    -- ------ ----
    OpenSSH ALLOW Anywhere
    OpenSSH (v6) ALLOW Anywhere (v6)

    如您所见,OpenSSH现在可以从Internet上的任何地方接收请求,只要它通过端口22到达它即可。v6行表示该规则也适用于IPv6。
    当然,您可以禁止特定的IP范围,或者仅允许特定的IP范围,具体取决于您所处的安全性约束。
    添加应用
    对于最受欢迎的应用程序,ufw app list命令在安装时自动更新其策略列表。例如,安装Nginx Web服务器后,您将看到以下新选项出现:

    # apt install nginx
    # ufw app list
    Available applications:
    Nginx Full
    Nginx HTTP
    Nginx HTTPS
    OpenSSH

    继续尝试这些规则。请注意,您可以简单地允许端口号,而不用等待显示应用程序的配置文件。例如,要允许端口443进行HTTPS通信,只需使用以下命令:

    # ufw allow 443
    # ufw status
    Status: active
    
    To Action From
    -- ------ ----
    OpenSSH ALLOW Anywhere
    443 ALLOW Anywhere
    OpenSSH (v6) ALLOW Anywhere (v6)
    443 (v6) ALLOW Anywhere (v6)

    结论
    既然已经掌握了UFW的基础知识,那么您就可以探索其他强大的防火墙功能,从允许和阻止IP范围开始。拥有清晰而安全的防火墙策略将使您的系统安全并受到保护。A5互联https://www.a5idc.net/

  • 相关阅读:
    安装Catia时连接SQLServer出错的解决
    解决“安装程序无法定位现有系统分区,也无法创建新的系统分区”的方法
    Windows 7中把FTP地址、常用程序添加到资源管理器的收藏夹下
    常用WebService一览表
    DetailsView用法
    GridView绑定实体类的子实体的字段
    html+css正常但是复制到aspx页面出现布局混乱的问题
    ASP.NETSqlConnection对象设置数据库连接池
    ASP.Net内容页访问母版页(MasterPage)属性
    gridview按钮列的下载功能
  • 原文地址:https://www.cnblogs.com/a5idc/p/13703614.html
Copyright © 2011-2022 走看看