用心打造
VPS知识分享网站

如何使用IPTables配置Linux VPS防火墙?最新方法来了

使用防火墙保护您的 Linux VPS 是防止未经授权的访问和攻击的重要一步。IPTables 是 Linux 内置的防火墙解决方案,可让您过滤传入和传出的流量。本期小编将一步步指导您如何在 Linux VPS 上配置 IPTables 防火墙。

在本文中,小编将向您展示如何使用 IPTables 配置 Linux VPS 防火墙。IPTables 是一款功能强大的防火墙实用程序,包含在大多数 Linux 发行版中。它可用于创建各种防火墙规则,包括基于源和目标 IP 地址、端口号和协议允许或拒绝流量的规则。

如何使用IPTables配置Linux VPS防火墙?最新方法来了

准备工作

通过 SSH 对服务器进行管理访问(root/sudo)

了解 IPTables

在配置 IPTables 规则之前,了解一些有关其工作原理的基本知识非常重要。IPTables 管理 Linux 内核中包含防火墙规则的表。主要有三个表:

输入– 适用于发往 VPS 本身的入站流量的规则。

输出– 适用于从 VPS 离开的出站流量的规则。

FORWARD – 适用于通过 VPS 路由但不以 VPS 为目的地的流量的规则。

每个表中都有包含实际规则的内置链:

PREROUTING——路由过程之前适用的规则。

输入——入站流量的规则。

FORWARD——转发流量的规则。

输出——出站流量的规则。

POSTROUTING——路由过程后适用的规则。

每条规则包含三个主要部分:

– 规则适用于哪个表和链。

过滤器——是否接受、丢弃或拒绝数据包。

匹配标准– 根据协议、端口、源/目标 IP 等确定规则适用于哪些数据包。

使用 IPTables 配置 Linux VPS 防火墙

有了这种了解,我们现在可以开始配置规则来锁定我们的 VPS 防火墙。

步骤 1:安装并启用 IPTables

大多数 Linux 发行版都预装了 IPTables。不过,我们首先需要确保它已安装并启用。我们可以使用以下命令安装 IPTables:

sudo apt install iptables # 对于 Debian/Ubuntu
sudo yum install iptables # 对于 CentOS/Red Hat

然后我们可以启用 IPTables 服务,使其在启动时启动:

sudo systemctl 启用 iptables

现在启动服务:

sudo systemctl 启动 iptables

步骤 2:清除现有规则

在添加我们自己的规则之前,我们将清除可能存在的任何现有规则:

sudo iptables -F

这将清除所有链中的所有规则,以确保我们有一个干净的记录。

步骤 3:允许本地主机流量

接下来,我们将添加规则以允许进出 localhost(我们的 VPS 本身)的流量。这是应用程序内部通信所必需的。我们将添加以下规则:

sudo iptables -A 输入 -i lo -j 接受
sudo iptables -A OUTPUT -o lo -j 接受

这将接受 lo 接口(localhost)上的所有输入和输出流量。

步骤 4:阻止无效数据包

我们将添加规则,丢弃任何可能用于 DoS 攻击或指纹识别的无效数据包。这些数据包不太可能是合法的。

sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
sudo iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
sudo iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP

步骤 5:允许建立连接

现在我们将允许响应来自我们的 VPS 的现有出站连接的传入连接。

这对于允许传出的 HTTP 请求的 HTTP 响应等情况是必需的。

sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

步骤 6:默认丢弃所有其他入站流量

现在默认情况下,我们将丢弃迄今为止规则未涵盖的所有其他入站流量:

sudo iptables -P 输入删除

这将拒绝所有其他输入流量,直到我们明确允许它。

步骤 7:允许特定入站端口

接下来,我们将允许传入连接到我们想要公开给互联网的特定端口。

例如,如果我们想允许入站 HTTP、HTTPs 和 SSH,我们将添加:

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

您将需要用您的应用程序所需的端口替换这些端口。

步骤 8:记录丢弃的数据包

记录任何被规则丢弃的数据包是一个好主意。我们可以这样做:

sudo iptables -A INPUT -j LOG --log-prefix "INPUT 已丢弃:" --log-level info
sudo iptables -A FORWARD -j LOG --log-prefix “FORWARD 已丢弃:” --log-level info
sudo iptables -A OUTPUT -j LOG --log-prefix "OUTPUT 丢弃:" --log-level info

这会将有关丢弃的数据包的信息记录到 /var/log/syslog 或 /var/log/messages。

步骤 9:默认允许所有出站流量

我们希望默认允许所有出站流量,因此我们为 OUTPUT 链指定默认策略:

sudo iptables -P 输出接受

步骤 10:通过 IP 地址控制流量

使用以下命令接受来自特定 IP 地址的流量。

# sudo iptables -A INPUT -s 你的授权 IP 地址 -j ACCEPT
$ sudo iptables -A 输入 -s 192.168.1.0/24 -j 接受

将命令中的 IP 地址替换为您要授权的 IP 地址。您还可以阻止来自某个 IP 地址的流量:

# sudo iptables -A INPUT -s 你的 IP 地址到阻止 -j DROP
sudo iptables -A 输入 -s 192.168.1.0/24 -j DROP

将命令中的 IP 地址替换为要阻止的 IP 地址。您可以使用以下命令拒绝来自某个 IP 地址范围的流量:

# sudo iptables -A INPUT -m iprange --src-range 你的起始 IP 地址 - 你的结束 IP 地址 -j REJECT
sudo iptables -A INPUT -m iprange --src范围 192.168.122.2-192.168.122.34 -j REJECT
sudo iptables -A INPUT -m iprange --dest-range 8.8.8.2-8.8.8.22 -j DROP

我们在示例中使用的 iptables 选项工作如下:
-m:匹配指定的选项。
-iprange:指示系统等待一个 IP 地址范围而不是一个 IP 地址。–
src-range:标识源 IP 地址范围。–
dest-range:标识目标 IP 地址范围。

步骤 11:删除规则

更精确的方法是删除规则的行号。首先,输入以下命令列出所有规则:

sudo iptables -L --行号
带有行号的 iptables

找到要删除的防火墙规则的行并运行以下命令:

sudo iptables -D 输入数字

将 Number 替换为您要删除的规则行号。

步骤 12:列出 IPTables 规则

现在,您可以使用 iptables 命令列出规则来测试防火墙规则。为此,请运行以下命令:

sudo iptables -L

这将列出所有当前有效的防火墙规则。

步骤 13:保存 IPTables 规则

系统重启后,iptables 不会保留您创建的规则。在 Linux 上配置 iptables 时,所做的任何更改都只会在下次重启后生效。因此,我们需要保存 IPTables 规则,以便它们在系统重启后仍然有效。我们可以将规则保存到目录 /etc/iptables/ 中,如下所示:

# Ubuntu
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6

# CentOS
sudo iptables-save > /etc/sysconfig/iptables
sudo ip6tables-save > /etc/sysconfig/ip6tables

然后我们可以在启动时加载这些规则:

# Ubuntu
sudo sh -c“iptables-restore < /etc/iptables/rules.v4”
sudo sh -c“ip6tables-restore < /etc/iptables/rules.v6”

另一种方法是将规则保存到基于 Ubuntu 的系统,请输入:

sudo -s iptables-save -c

下次系统启动时,iptables 将自动重新加载防火墙规则。

结论

现在,您应该已经拥有一个运行正常的 Linux VPS 防火墙,它能够允许必要的流量,同时阻止不必要的连接。请务必随着系统和网络需求的变化更新规则。希望本分步指南能够帮助您使用 IPTables 配置和保护您的 Linux VPS!如果您还有其他问题,请随时联系我们。

赞(0)
未经允许不得转载;国外VPS测评网 » 如何使用IPTables配置Linux VPS防火墙?最新方法来了
分享到