首页 > 系统相关 >如何在 Alpine Linux 上启用/禁用防火墙

如何在 Alpine Linux 上启用/禁用防火墙

时间:2024-07-09 22:41:28浏览次数:11  
标签:启用 禁用 防火墙 Linux awall Alpine

Awall (Alpine Wall) 是一个为 Alpine Linux 用户提供的易于使用且用户友好的 iptables 防火墙界面。它从 Alpine Linux 2.4 版开始可用,并使用一组以 JSON 格式编写的预定义策略。这些 JSON 文件称为策略文件,位于 /usr/share/awall/mandatory 目录中。

在 awall 工具中,您可以轻松遵循 IPv6 和 IPv4 协议的单一源、策略、限制和区域等高级概念。本教程展示如何使用此软件包在 Alpine Linux 上启用/禁用防火墙。

如何设置防火墙(Awall)

在 Alpine Linux 系统上设置防火墙是增强系统安全性的最重要任务之一。

安装防火墙(Awall)借助终端,您可以非常轻松地在 Alpine 上安装防火墙。为此,请按照下列步骤操作:

在系统中安装任何软件包之前,最好先更新系统。

apk update

接下来,使用以下命令安装适用于 IPv6 和 IPv4 协议的 Iptables:

apk add ip6tables iptables

awall 防火墙在 Alpine Linux 存储库中可用于许多架构,包括 arch64、c86 和 x86_64 架构。您需要使用简单的 apk 命令来安装 awall 防火墙。运行以下命令安装awall:

apk add -u awall

使用以下命令,可以确认awall已安装:

apk info awall

使用以下命令检查已安装的awall的版本:

apk version awall

/usr/share/awall/mandatory 目录包含一组预定义的 JSON 格式的防火墙策略。您可以使用以下命令列出这些策略:

ls -l /usr/share/awall/mandatory

在Alpine Linux中启用/禁用防火墙之前的先决条件成功安装防火墙后,您可以启用和禁用它。但是,在此之前,您必须对其进行配置。

首先,您需要使用以下命令加载防火墙的 iptables 内核模块:

modprobe -v ip_tables
modprobe -v ip6_tables

注意:前面的命令仅在 Alpine Linux 中首次安装 awall 时使用。

使用以下命令在启动时自动启动防火墙并自动加载 Linux 内核模块:

rc-update add iptables && rc-update add ip6tables

您可以使用以下命令控制防火墙服务:

rc-service iptables {start|stop|restart|status}
rc-service ip6tables {start|stop|restart|status}  

现在,我们使用以下命令启动服务:

rc-service iptables start && rc-service ip6tables start

使用以下命令可以查看防火墙服务状态:

rc-service iptables status && rc-service ip6tables status

如您所见,防火墙服务现已启动。

值得注意的是awall是一个生成规则的前端工具。它的所有防火墙规则都存储在 /etc/awall/ 目录中。现在,我们在此目录下创建一些规则。

首先,使用以下命令打开该目录:

cd /etc/awall

使用 ls 命令检查其中存在的文件:

您可以看到 /etc/awall 中有两个文件:可选文件和私有文件。在这里,我们在可选文件下创建一些策略。

借助以下命令打开该目录的可选文件:

cd /etc/awall/optional

1. 首先,通过 touch 命令创建一个名为“server.json”的新文件。它会删除所有传入和传出连接。

touch server.json

您可以使用任何文本编辑器打开此文件。在本例中,我们使用 vi 编辑器打开该文件。

vi server.json

完成后,粘贴以下所有行:

{
  "description": "An awall policy that drops all incoming and outgoing traffic",

  "variable": { "internet_if": "eth0" },

  "zone": {
    "internet": { "iface": "$internet_if" }
  },

  "policy": [
    { "in": "internet", "action": "drop" },
    { "action": "reject" }
  ]

}

粘贴所有前面的行后,按“Esc”。写入“:wq”并按“Enter”退出文件。

2. 我们创建一个“ssh.json”文件,用于访问端口 22 上的 SSH 连接,并具有最大登录限制。该文件可以避免攻击者并阻止来自 Alpine 服务器的暴力攻击。

touch ssh.json
vi ssh.json

将以下详细信息粘贴到该文件中:

{
    "description": "Allow incoming SSH access (TCP/22)",

    "filter": [
        {
            "in": "internet",
            "out": "_fw",
            "service": "ssh",
            "action": "accept",
            "src": "0.0.0.0/0",
            "conn-limit": { "count": 3, "interval": 60 }
        }
    ]
}

3. 创建“ping.json”文件来定义允许 ICMP ping 请求的防火墙策略。

touch ping.json
vi ping.json

将以下行粘贴到该文件中:

{

    "description": "Allow ping-pong",

    "filter": [
        {
              "in": "internet",
              "service": "ping",
              "action": "accept",
              "flow-limit": { "count": 10, "interval": 6 }
        }
    ]
}

4. 创建“webserver.json”文件来定义打开 HTTPS 和 HTTP 端口的规则。

touch webserver.json
vi webserver.json

将以下行粘贴到该文件中:

{
    "description": "Allow incoming Apache (TCP 80 & 443) ports",
    "filter": [
        {
            "in": "internet",
            "out": "_fw",
            "service": [ "http", "https"],
            "action": "accept"
        }
    ]
}

5. 最后,我们创建一个“outgoing.jsopn”文件,允许传出连接到一些最常用的协议,例如 ICMP、NTP、SSH、DNS、HTTPS 和 HTTP ping。

touch outgoing.json
vi outgoing.json

将以下所有详细信息粘贴到此文件中:

{
    "description": "Allow outgoing connections for http/https, dns, ssh, ntp, ssh and ping",

    "filter": [
        {
            "in": "_fw",
            "out": "internet",
            "service": [ "http", "https", "dns", "ssh", "ntp", "ping" ],
            "action": "accept"
        }
    ]
}

您可以看到之前创建的所有文件都存在于 /etc/awall/Optional 目录中。

使用以下命令,您可以列出所有防火墙策略:

awall list

现在,您可以在 Alpine Linux 上启用或禁用防火墙。

如何在 Alpine Linux 上启用/禁用防火墙

安装并配置 awall 后,您可以在 Alpine Linux 中启用和禁用防火墙。

在Alpine Linux上启用防火墙默认情况下,防火墙的所有策略都是禁用的。要启用它,需要首先启用他们的策略。

您可以使用以下命令启用所有创建的策略:

awall enable <policy_name>

现在,我们启用所有创建的策略:

awall enable ssh
awall enable server
awall enable webserver
awall enable ping
awall enable  outgoing

使用以下命令,我们可以看到所有策略均已启用:

awall list

最后,您可以通过运行以下命令来启用awall防火墙:

awall activate

因此,您的系统现在已启用防火墙。

禁用Alpine Linux上的防火墙当您不想使用它时,可以通过禁用其所有策略来禁用Alpine Linux中的awall防火墙。

使用以下命令,您可以轻松禁用防火墙策略:

awall disable <policy_name>

要禁用防火墙,我们禁用之前的所有策略:

awall disable ssh
awall disable server
awall disable webserver
awall disable ping
awall disable outgoing

使用以下命令,可以看到其所有策略均被禁用:

awall list

如果您不想在Alpine Linux中使用防火墙,可以通过以下命令停止其对IPv6和IPv4协议的服务:

rc-service iptables stop && rc-service ip6tables stop

除此之外,您还可以借助以下命令获取有关 awall 的更多附加信息:

awall help

额外提示:您还可以通过以下命令卸载 Alpine Linux 上的 awall 防火墙:

rc-update del ip6tables && rc-update del iptables

结论

您可以通过启用防火墙进一步增强和加强系统的安全性。本指南演示如何在 Alpine Linux 上启用和禁用防火墙。 Alpine 中的 awall iptables 防火墙可用于 IPv6 和 IPv4 协议,并且未预安装。

Awall 已经包含在 Alpine Linux 的存储库中,因此您可以轻松安装它。安装后,您可以通过创建和启用策略来启用防火墙。同样,您也可以通过重新禁用所有创建的策略来禁用防火墙。

标签:启用,禁用,防火墙,Linux,awall,Alpine
From: https://www.cnblogs.com/dekill/p/18292878

相关文章

  • Linux系统编程-文件相关操作使用详解
    1.文件描述符文件描述符(FileDescriptor)是操作系统中用于访问和操作文件或输入输出资源的一个抽象指针。它是一个非负整数,标识一个已经打开的文件或输入输出资源(如管道、网络连接等)。在UNIX和类UNIX系统(如Linux)中,文件描述符是非常重要的概念,用于文件操作、进程间通信、网络编......
  • Rockchip RK3588 - Rockchip Linux SDK脚本分析
    ----------------------------------------------------------------------------------------------------------------------------开发板:ArmSoM-Sige7开发板eMMC:64GBLPDDR4:8GB显示屏:15.6英寸HDMI接口显示屏u-boot:2017.09linux:5.10-------------------------------......
  • Linux C++ 045-设计模式之工厂模式
    LinuxC++045-设计模式之工厂模式本节关键字:Linux、C++、设计模式、简单工厂模式、工厂方法模式、抽象工厂模式相关库函数:简单工厂模式基本简介从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactoryMethod)模式,但不属于23种GOF设计模......
  • Linux常用命令
    1.1ls语法:ls[选项][⽬录或⽂件]功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信息。-a列出⽬录下的所有⽂件,包括以.开头的隐含⽂件。-d将⽬录象⽂件⼀样显⽰,⽽不是显⽰其下的⽂件。如:ls‒d指定⽬录-k以k字节的形式表......
  • 【Linux网络编程-4】线程
    开辟进程会分配新的地址空间,系统开销高。每个进程可以有很多线程,同个进程的线程共享地址空间,共享全局变量和对象,系统开销较低。头文件#include<pthread.h>pid类型pid类型pthread_t,实质是unsignedlongint,一串长长的无符号整数链接要指定pthread共享库g++-o......
  • linux进程管理
    Linux进程管理什么是程序:应用程序是用户选择安装的程序的总称,通常包括驱动程序的进程,看图软件、解压缩软件等通用软件的进程.也可以顾名思义地说:应用程序就是为使用者提供与电脑沟通所开发出来的程序软件什么是进程:狭义定义:进程就是一段程序的执行过程。 广义定义:进程是......
  • Linux从入门到精通—— 如何在 Linux 系统中启用 Kubectl 命令自动补全
    如何在Linux系统中启用Kubectl命令自动补全一、背景在使用Kubernetes进行日常开发和运维工作时,kubectl命令行工具是不可或缺的一部分。为了提升工作效率,启用kubectl命令的自动补全功能是一个明智的选择。本文将指导你如何在基于Linux的系统上安装并配置kubectl命令的......
  • Linux web服务
    Web服务在Linux中存在许多可以提供web服务的软件,httpd、tomcat、nginx等Web通信的基本概念基于B/S架构的网页服务HTTPHTML【1】、httpd软件1、httpd软件安装httpd是软件基金会写出的软件基金会(Apache)yuminstall-yhttpdrpm-qahttpdhttpd-2.4.37-62.mod......
  • Linux FTP服务
    FTP服务安装vsftpd软件yuminstall-yvsftpd[root@moudle0114:47:28~]#rpm-qvsftpdvsftpd-3.0.3-36.el8.x86_64修改配置文件,开启无需验证的功能vim/etc/vsftpd/vsftpd.conf#修改内容如下,将NO改为YESanonymous_enable=YES启动服务#找到vsftpd程序[ro......
  • linux学习之登录密码(ssh/telnet)
    在Linux系统中,用户登录密码是用于安全验证用户身份的一种方式。登录密码通常是加密后存储在系统的/etc/shadow文件中。如果您想要获取Linux系统中用户的登录密码,这通常是不可能的,因为密码是经过加密处理的,而且出于安全考虑,没有直接的方式可以获取它们的明文形式。/etc/passwd......