生活哲学

使用 Iptables 保护 Linux 计算机

Linux 是运行速度更快的操作系统之一,并以比其他操作系统更多的安全功能而闻名,但这并不意味着它可以完全安全。所以最好的方法是做一些其他的安全方法。我们的建议是使用防火墙。 Linux 中有几个防火墙选项,但这里我们要提一下 Iptables 防火墙。

  1. 在 IPTable 中锁定一个 IP 地址
  2. 什么是防火墙?防火墙常识

那么什么是Iptables?

Iptables 是一个 Linux 防火墙,它在一个非常小巧方便的控制台平台上配置和运行。它随所有 Linux 发行版一起提供,是控制计算机传入和传出流量的最直接方式。

Iptables 是出了名的复杂,但是,您无需了解有关 iptables 的所有信息即可在您的计算机上有效地使用它。您只需要了解它的工作原理和结构规则的一些基本知识即可。

命令结构

所有 iptables 规则都有相同的基本结构。每个规则都是 iptables 的单个命令-显示如何处理特定端口上的流量。请看下面的例子:

-A INPUT-i eth0-p tc-m state--state ESTABLISHED, RELATED--sport 80-j ACCEPT

看起来很复杂,拆分后其实很简单。首先,此规则以 -A 开头,因为它将连接到您的 iptables 防火墙规则。

接下来,-i确定接口的规则。在这种情况下,就是 eth0 。当您编写自己的规则时,请确保您知道要连接的接口。

接下来,-p 为协议命名。此规则适用于 tcp-这是网络流量。

-m 有点不同。它用于确认需要满足某个条件,以便不拒绝流量。此规则中的条件是state.

接下来是 --state 。您需要提供--state 以获取接受状态的列表,全部大写并用逗号分隔。此规则接受新连接和已建立的连接。

--sport 是 'source port' 的首字母缩写,它告诉 iptables traffic.In 的来源此外,--dport 代表“目的端口”。它用于 OUTPUT 规则来处理传入的端口流量。

最后,-j。它让 iptables 知道要“跳转”到的动作。在这种情况下,ACCEPT 流量需要满足前面的条件。

使用文件

可以将规则依次输入到iptables中。然而,这很容易忘记你的位置和你在做什么。最好创建一个可以同时导入到 iptables 中的规则文件。

创建您的文件。本教程将使用 /tmp/iptables-ip4 。在文件中,添加以下两行。你所有的规则都在它们之间。

* 过滤器

#您的规则在这里

提交

创建您的规则

你可以开始设置你的规则了。这些只是建议。显然,如果你在运行其他服务或者需要打开其他端口,当然可以自定义一些东西或者添加一些你自己的规则。

环回

Loopback接口是Linux使用的内部接口。

-A INPUT-i lo-j ACCEPT
-A OUTPUT-o lo-j ACCEPT

Ping

许多人不想在他们的计算机上允许 ping。但是,检查连接非常有用。如果您想允许 ping,请添加以下规则。

-A INPUT-i eth0-p icmp-m state--state NEW--icmp-type 8-j ACCEPT
-A INPUT-i eth0-p icmp-m state--state ESTABLISHED, RELATED-j ACCEPT
-A OUTPUT-o eth0-p icmp-j ACCEPT

网络

您可以连接到网络。另一方面,您不希望允许来自 Internet 的连接。

-A INPUT-i eth0-ptc-m state--state ESTABLISHED, RELATED--sport 80-j ACCEPT
-A INPUT-i eth0-p tc-m state--state ESTABLISHED, RELATED--sport 443-j ACCEPT

-A OUTPUT-o eth0-p tcp-m tcp--dport 80-j ACCEPT
-A OUTPUT-o eth0-p tcp-m tcp--dport 443-j 接受

您需要允许 DNS 连接,以便计算机可以使用 URL 而不是 IP 地址,因为这不太方便。将路由器的 IP 地址替换为下面使用的 IP 地址。

-A INPUT-i ens3-s 192.168.1.1-p udp--sport 53-m state--state ESTABLISHED, RELATED-j ACCEPT
-A OUTPUT-o ens3-d 192.168.1.1-p udp--dport 53-m udp-j ACCEPT

时间

大多数 Linux 桌面使用 NTP 从 Internet 设置和维护系统时间。您需要允许计算机连接到 NTP 服务器来设置时间。

-A INPUT-i eth0-p udp-m state--state ESTABLISHED, RELATED--dport 123-j ACCEPT
-A OUTPUT-o eth0-p udp-m udp--sport 123-j ACCEPT

打印

除非您使用 USB 打印机或外部打印服务器,否则您需要启用与 CUPS 的连接。

-A INPUT-p udp-m udp--dport 631-j ACCEPT
-A INPUT-p tcp-m tcp--dport 631-j ACCEPT
-A OUTPUT-p udp-m udp--sport 631-j ACCEPT
-A OUTPUT-p tcp-m tcp--sport 631-j 接受

电子邮件

您还可以发送和接收电子邮件。此处允许的端口是 SSL 电子邮件端口。如果您需要使用不安全的电子邮件,请更换这些端口。

#IMAP
-A INPUT-i eth0-p tc-m state--state ESTABLISHED, RELATED--sport 993-j ACCEPT
-A OUTPUT-o eth0-p tcp-m tcp--dport 993-j ACCEPT

#POP3
-A INPUT-i eth0-p tc-m state--state ESTABLISHED, RELATED--sport 995-j ACCEPT
-A OUTPUT-o eth0-p tcp-m tcp--dport 995-j ACCEPT

# SMTP
-A INPUT-i eth0-p tc-m state--state ESTABLISHED, RELATED--sport 465-j ACCEPT
-A OUTPUT-o eth0-p tcp-m tcp--dport 465-j ACCEPT

SSH

要充分利用SSH连接,需要同时开启SSH输出和输入。

# Input
-A INPUT-i ens3-p tcp-m state--state NEW, ESTABLISHED--dport 22-j ACCEPT
-A OUTPUT-o ens3-p tcp-m state--state ESTABLISHED--sport 22-j ACCEPT
#输出 strong>
-A OUTPUT-o ens3-p tcp-m state--state NEW, ESTABLISHED--dport 22-j ACCEPT
-A INPUT-i ens3-p tcp-m state--state ESTABLISHED--sport 22-j ACCEPT

DHCP

大多数 Linux 计算机使用 DHCP 自动从路由器接收 IP 地址。 DHCP 使用私有端口,因此需要访问它们。如果您使用的是静态 IP,则不需要这些规则。

-A INPUT-i eth0-p udp-m state-state ESTABLISHED, RELATED--sport 67:68-j ACCEPT
-A OUTPUT-o eth0-p udp-m udp--dport 67:68-j ACCEPT

毕竟,你的规则会是这样的:

使用 Iptables 保护 Linux 计算机的图片 1

输入规则

现在,您已经有了一个功能齐全的 iptables 规则列表。您只需将其包含在 iptables 中即可使用。如果随着时间的推移添加了一些规则,请删除它们。在下面的命令之后,您将看到允许一切的默认设置。

sudo iptables-F && sudo iptables-X

您的计算机现在正在使用新的 iptables 规则。输入命令即可查看。

sudo iptables-S

但是,这些规则只是暂时的。当您重新启动计算机时,它们会消失。

如何创建永久规则

有几种方法可以使这些规则永久。 本教程将重点介绍基于 Debian 和 Ubuntu 的系统,因为它们是最受欢迎的。

有一个可用的包 iptables-persistant-处理 iptables 的存储和恢复。 您需要做的就是安装它。

在安装过程中,这个包会询问你是否要保存你的配置,选择Yes。

如果以后想添加规则,可以运行以下命令保存:

sudo service netfilter-persistent save

您正在通过您的计算机控制流量。 您可以使用 iptables 做更多事情,但请尝试这些基本操作!

相关资讯

评论

回复