如何在 Alpine Linux 上启用/禁用防火墙
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 上安装防火墙。为此,请按照下列步骤操作:
在系统中安装任何软件包之前,最好先更新系统。
接下来,使用以下命令安装适用于 IPv6 和 IPv4 协议的 Iptables:
awall 防火墙在 Alpine Linux 存储库中可用于许多架构,包括 arch64、c86 和 x86_64 架构。您需要使用简单的 apk 命令来安装 awall 防火墙。运行以下命令安装awall:
使用以下命令,可以确认awall已安装:
使用以下命令检查已安装的awall的版本:
/usr/share/awall/mandatory 目录包含一组预定义的 JSON 格式的防火墙策略。您可以使用以下命令列出这些策略:
在Alpine Linux中启用/禁用防火墙之前的先决条件成功安装防火墙后,您可以启用和禁用它。但是,在此之前,您必须对其进行配置。
首先,您需要使用以下命令加载防火墙的 iptables 内核模块:
modprobe -v ip6_tables
注意:前面的命令仅在 Alpine Linux 中首次安装 awall 时使用。
使用以下命令在启动时自动启动防火墙并自动加载 Linux 内核模块:
您可以使用以下命令控制防火墙服务:
rc-service ip6tables {start|stop|restart|status}
现在,我们使用以下命令启动服务:
使用以下命令可以查看防火墙服务状态:
如您所见,防火墙服务现已启动。
值得注意的是awall是一个生成规则的前端工具。它的所有防火墙规则都存储在 /etc/awall/ 目录中。现在,我们在此目录下创建一些规则。
首先,使用以下命令打开该目录:
使用 ls 命令检查其中存在的文件:
您可以看到 /etc/awall 中有两个文件:可选文件和私有文件。在这里,我们在可选文件下创建一些策略。
借助以下命令打开该目录的可选文件:
1. 首先,通过 touch 命令创建一个名为“server.json”的新文件。它会删除所有传入和传出连接。
您可以使用任何文本编辑器打开此文件。在本例中,我们使用 vi 编辑器打开该文件。
完成后,粘贴以下所有行:
"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 服务器的暴力攻击。
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 请求的防火墙策略。
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 端口的规则。
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。
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 目录中。
使用以下命令,您可以列出所有防火墙策略:
现在,您可以在 Alpine Linux 上启用或禁用防火墙。
如何在 Alpine Linux 上启用/禁用防火墙
安装并配置 awall 后,您可以在 Alpine Linux 中启用和禁用防火墙。
在Alpine Linux上启用防火墙默认情况下,防火墙的所有策略都是禁用的。要启用它,需要首先启用他们的策略。
您可以使用以下命令启用所有创建的策略:
现在,我们启用所有创建的策略:
awall enable server
awall enable webserver
awall enable ping
awall enable outgoing
使用以下命令,我们可以看到所有策略均已启用:
最后,您可以通过运行以下命令来启用awall防火墙:
因此,您的系统现在已启用防火墙。
禁用Alpine Linux上的防火墙当您不想使用它时,可以通过禁用其所有策略来禁用Alpine Linux中的awall防火墙。
使用以下命令,您可以轻松禁用防火墙策略:
要禁用防火墙,我们禁用之前的所有策略:
awall disable server
awall disable webserver
awall disable ping
awall disable outgoing
使用以下命令,可以看到其所有策略均被禁用:
如果您不想在Alpine Linux中使用防火墙,可以通过以下命令停止其对IPv6和IPv4协议的服务:
除此之外,您还可以借助以下命令获取有关 awall 的更多附加信息:
额外提示:您还可以通过以下命令卸载 Alpine Linux 上的 awall 防火墙:
结论
您可以通过启用防火墙进一步增强和加强系统的安全性。本指南演示如何在 Alpine Linux 上启用和禁用防火墙。 Alpine 中的 awall iptables 防火墙可用于 IPv6 和 IPv4 协议,并且未预安装。
Awall 已经包含在 Alpine Linux 的存储库中,因此您可以轻松安装它。安装后,您可以通过创建和启用策略来启用防火墙。同样,您也可以通过重新禁用所有创建的策略来禁用防火墙。