iptables初学者指南,linux防火墙

Iptables是为Linux操作系统构建的一个非常灵活的防火墙实用程序。无论您是Linux新手还是系统管理员,iptables可能在某种程度上对您非常有用。请继续阅读,我们将向您展示如何配置最通用的Linux防火墙。...

iptables初学者指南,linux防火墙

Iptables是为Linux操作系统构建的一个非常灵活的防火墙实用程序。无论您是Linux新手还是系统管理员,iptables可能在某种程度上对您非常有用。请继续阅读,我们将向您展示如何配置最通用的Linux防火墙。

埃齐曼摄。

关于iptables

iptables是一个命令行防火墙实用程序,它使用策略链来允许或阻止流量。当连接试图在您的系统上建立自身时,iptables会在其列表中查找与之匹配的规则。如果找不到,它将使用默认操作。

iptables几乎总是预装在任何Linux发行版上。要更新/安装它,只需检索iptables包:

sudo apt-get install iptables

除了Firestarter这样的iptables之外,还有一些GUI替代品,但是一旦您关闭了一些命令,iptables就不是那么难了。在配置iptables规则时要特别小心,特别是当您使用SSH连接到服务器时,因为一个错误的命令可能会将您永久锁定,直到在物理机器上手动修复为止。

链条类型

iptables使用三个不同的链:输入、转发和输出。

输入–此链用于控制传入连接的行为。例如,如果用户尝试SSH到您的PC/服务器,iptables将尝试将IP地址和端口与输入链中的规则相匹配。

转发–此链用于实际上未在本地传递的传入连接。想想路由器——数据总是被发送到路由器,但很少真正发送到路由器本身;数据只是被转发到它的目标。除非您在系统上执行某种路由、本地或其他需要转发的操作,否则您甚至不会使用此链。

有一种可靠的方法可以检查您的系统是否使用/需要前向链。

iptables -L -v

iptables初学者指南,linux防火墙

上面的屏幕截图显示的是一个已经运行了几个星期的服务器,对传入或传出连接没有限制。如您所见,输入链处理了11GB的数据包,输出链处理了17GB的数据包。另一方面,前向链不需要处理单个数据包。这是因为服务器没有进行任何类型的转发或用作直通设备。

输出–此链用于传出连接。例如,如果您尝试pingtl80.cn网站,iptables将检查其输出链,以查看关于ping和tl80.cn网站在做出允许或拒绝连接尝试的决定之前。

警告

即使ping外部主机似乎只需要遍历输出链,但请记住,要返回数据,也将使用输入链。在使用iptables锁定系统时,请记住许多协议都需要双向通信,因此输入和输出链都需要正确配置。SSH是一种常见的协议,人们在两个链上都忘记了允许它。

策略链默认行为

在进入并配置特定规则之前,您需要确定三个链的默认行为是什么。换句话说,如果连接与任何现有规则都不匹配,您希望iptables做什么?

要查看策略链当前配置为如何处理不匹配的流量,请运行iptables-L命令。

iptables初学者指南,linux防火墙

如您所见,我们还使用grep命令来提供更清晰的输出。在那张截图中,我们的连锁店目前可以接受流量。

很多时候,您都希望系统默认接受连接。除非您以前更改过策略链规则,否则应该已经配置此设置。无论哪种方式,下面都是默认接受连接的命令:

iptables --policy INPUT ACCEPT iptables --policy OUTPUT ACCEPT iptables --policy FORWARD ACCEPT

通过默认接受规则,您可以使用iptables拒绝特定的IP地址或端口号,同时继续接受所有其他连接。我们马上就去处理那些命令。

如果希望拒绝所有连接并手动指定允许连接的连接,则应将链的默认策略更改为drop。这样做可能只对包含敏感信息并且只有相同IP地址的服务器才有用。

iptables --policy INPUT DROP iptables --policy OUTPUT DROP iptables --policy FORWARD DROP

连接特定响应

配置了默认的链策略后,您可以开始向iptables添加规则,以便它知道在遇到来自或到特定IP地址或端口的连接时该怎么做。在本指南中,我们将介绍三种最基本、最常用的“回答”。

接受–允许连接。

断开-断开连接,假装从未发生过。如果您不希望源代码意识到您的系统存在,这是最好的。

拒绝–不允许连接,但发回错误。如果您不希望某个特定的源连接到您的系统,但是您希望他们知道您的防火墙阻止了他们,那么这是最好的。

显示这三个规则之间差异的最好方法是显示当一台PC尝试ping一台为每种设置配置了iptables的Linux机器时的样子。

允许连接:

iptables初学者指南,linux防火墙

正在断开连接:

iptables初学者指南,linux防火墙

拒绝连接:

iptables初学者指南,linux防火墙

允许或阻止特定连接

配置策略链后,现在可以配置iptables以允许或阻止特定的地址、地址范围和端口。在这些示例中,我们将连接设置为DROP,但您可以根据需要和策略链的配置将连接切换为ACCEPT或REJECT。

注意:在这些示例中,我们将使用iptables-A将规则附加到现有链中。iptables从列表的顶部开始,遍历每个规则,直到找到一个匹配的规则。如果需要在另一条规则的上方**规则,可以使用iptables-I[chain][number]来指定它应该在列表中的编号。

来自单个IP地址的连接

此示例显示如何阻止来自IP地址10.10.10.10的所有连接。

iptables -A INPUT -s 10.10.10.10 -j DROP

来自一系列IP地址的连接

此示例显示如何阻止10.10.10.0/24网络范围内的所有IP地址。您可以使用网络掩码或标准斜杠符号来指定IP地址的范围。

iptables -A INPUT -s 10.10.10.0/24 -j DROP

iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

连接到特定端口

此示例演示如何阻止10.10.10.10中的SSH连接。

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP

您可以用任何协议或端口号替换“ssh”。代码的-p tcp部分告诉iptables协议使用哪种连接。如果要阻止使用UDP而不是TCP的协议,则需要使用-p UDP。

此示例演示如何阻止来自任何IP地址的SSH连接。

iptables -A INPUT -p tcp --dport ssh -j DROP

连接状态

正如我们前面提到的,很多协议都需要双向通信。例如,如果您想允许SSH连接到您的系统,那么输入和输出链需要添加一个规则。但是,如果您只希望允许SSH进入您的系统呢?向输出链添加规则不也允许传出SSH尝试吗?

这就是连接状态的来源,它提供了允许双向通信但只允许建立单向连接的能力。看看这个示例,其中允许10.10.10.10的SSH连接,但不允许10.10.10.10的SSH连接。但是,只要会话已经建立,系统就可以通过SSH发回信息,这使得这两个主机之间的SSH通信成为可能。

iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

保存更改

您对iptables规则所做的更改将在下次iptables服务重新启动时取消,除非您执行保存更改的命令。此命令可能因您的发行版而异:

乌班图:

sudo /**in/iptables-save

红帽/CentOS:

/**in/service iptables save

或者

/etc/init.d/iptables save

其他命令

列出当前配置的iptables规则:

iptables -L

添加-v选项将为您提供数据包和字节信息,添加-n将以数字形式列出所有内容。换句话说,主机名、协议和网络都列为数字。

要清除当前配置的所有规则,可以发出flush命令。

iptables -F

  • 发表于 2021-04-11 11:45
  • 阅读 ( 169 )
  • 分类:互联网

你可能感兴趣的文章

linux上应该有5个安全工具

... 1防火墙管理:gufw ...

  • 发布于 2021-03-15 01:11
  • 阅读 ( 192 )

初学者的nmap:获得端口扫描的实践经验

如果您曾经执行过任何网络监视,您应该熟悉Nmap。它是一个强大的端口扫描器,允许管理员定位他们网络中的弱点。 ...

  • 发布于 2021-03-28 11:48
  • 阅读 ( 179 )

针对初学者系统管理员的10个linux强化提示

... 初学者通常需要几年的时间来为他们的机器找到最好的安全策略。这就是为什么我们要为像你这样的新用户分享这些基本的Linux强化技巧。试试看。 ...

  • 发布于 2021-03-28 14:39
  • 阅读 ( 248 )

如何设置和使用最好的android防火墙:afwall+

... 防火墙可以帮助你在这个窥探统治,最好的安卓防火墙应用程序是AFWall+。下面是如何设置它。 ...

  • 发布于 2021-03-29 05:56
  • 阅读 ( 704 )

如何使用fail2ban保护您的linux服务器

...以下命令查看空规则集: sudo iptables -L 相关内容:iptables初学者指南,Linux防火墙 安装fail2ban 在我们用来研究本文的所有发行版上安装fail2ban都很简单。在Ubuntu 20.04上,命令如下: sudo apt-get install fail2ban 在Fedora 32上,键入: sudo...

  • 发布于 2021-04-02 03:13
  • 阅读 ( 176 )

如何使用lynis审核linux系统的安全性

... 下面,Lynis警告我们,我们使用的Ubuntu虚拟机上没有配置防火墙。 滚动查看结果以查看标记了什么。在审计报告的底部,您将看到一个摘要屏幕。 “硬化指数”是你的考试成绩。我们100分中有56分,这不太好。执行了222个测试...

  • 发布于 2021-04-02 03:25
  • 阅读 ( 165 )

如何在linux上使用端口敲打(以及为什么不应该)

端口敲打是一种通过关闭防火墙端口来保护服务器的方法,即使您知道这些端口将被使用。当且仅当连接请求提供秘密敲门时,这些端口才按需打开。 左舷敲击是“秘密敲击” 在20世纪20年代,当禁酒令如火如荼的时候,如果...

  • 发布于 2021-04-03 02:18
  • 阅读 ( 153 )

5个杀手把戏让wireshark发挥最大效用

...ark有很多技巧,从捕获远程流量到基于捕获的数据包创建防火墙规则。如果您想像专业人士一样使用Wireshark,请继续阅读一些更高级的提示。 我们已经介绍了Wireshark的基本用法,所以请务必阅读我们的原始文章,了解这个强大...

  • 发布于 2021-04-11 05:46
  • 阅读 ( 156 )

如何在无线网络上启用来宾访问点

... br1 -p tcp --dport https -j REJECT --reject-with tcp-reset 单击“保存防火墙”并重新启动路由器。 这些额外的防火墙规则简单地阻止了两个网桥(专用网络和公共/客户网络)上的所有东西进行通信,并拒绝客户网络上的客户机与telnet、SSH...

  • 发布于 2021-04-11 21:43
  • 阅读 ( 153 )

如何配置ubuntu内置防火墙

Ubuntu有自己的防火墙,称为ufw,是“简单防火墙”的缩写,ufw是标准Linux iptables命令的一个更易于使用的前端。您甚至可以从图形界面控制ufw。 Ubuntu的防火墙被设计成一种简单的方式来执行基本的防火墙任务,而不必学习iptables...

  • 发布于 2021-04-12 10:22
  • 阅读 ( 124 )
eS745A
eS745A

0 篇文章

相关推荐