AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 825229
Accepted
Bruno Bronosky
Bruno Bronosky
Asked: 2017-01-10 21:25:34 +0800 CST2017-01-10 21:25:34 +0800 CST 2017-01-10 21:25:34 +0800 CST

iptables -i lo vs. -s localhost 和 -j REJECT vs. -P INPUT REJECT

  • 772

前言

就像 Linux 中的所有内容一样,我确信有很多方法可以使用iptables. 我想将答案限制在以下类别:

  1. 选项之间有什么区别?
  2. 哪个选项最好(或者它们是否相同)?
  3. 为什么你更喜欢其中之一?

并且请清楚您在说什么类别。陈述偏好是可以的,但不要暗示它是最好的。

例如

我更喜欢把--jump它作为第一个参数,因为我认为首先有意图会更好,而且我喜欢垂直对齐多个命令的参数。

问题

其中一个比另一个更好吗?

iptables -I INPUT --jump ACCEPT --in-interface lo
iptables -I INPUT --jump ACCEPT --source localhost

其中一个比另一个更好吗?

iptables -A INPUT --jump REJECT
iptables -P INPUT REJECT
security iptables
  • 2 2 个回答
  • 2326 Views

2 个回答

  • Voted
  1. Best Answer
    Michael Hampton
    2017-01-10T21:41:22+08:002017-01-10T21:41:22+08:00

    在这两种情况下,您要比较的两个 iptables 命令具有不同的语义,并且彼此的行为也不同。这不一定是哪个“最好”的问题,而是你试图匹配或提供什么行为的问题。

    第一的:

    iptables -I INPUT --jump ACCEPT --in-interface lo
    iptables -I INPUT --jump ACCEPT --source localhost
    

    其中第一个接受lo接口上的所有本地流量,无论其 IP 地址如何。第二个接受来自 127.0.0.1 的所有流量,无论它到达哪个接口。

    在这种情况下,第一个显然更好。在第一种情况下,本地流量不一定使用 127.0.0.1 作为其 IP 地址,但您可能希望接受它,(其中最著名的是 Debian 的奇数 127.0.1.1,但可以附加全局 IP 地址to lo),在第二种情况下,有人可能会向您发送以 127.0.0.1 作为其源地址的欺骗数据包,而您可能不想接受。

    第二:

    iptables -A INPUT --jump REJECT
    iptables -P INPUT REJECT
    

    这些通常在功能上相同,除了:

    当有人在 INPUT 链的末尾添加更多规则时,这些规则将没有任何效果。这里的档案中有很多人对此感到困惑的例子。所以你可能想使用第二种形式。

    链策略不能接受参数,但 REJECT 目标确实接受参数。如果你想指定拒绝原因,或者想在不同的情况下给出不同的拒绝原因,你必须使用第一种形式(iptables-extensions拒绝原因列表见手册页)。

    • 9
  2. anx
    2017-01-11T01:34:54+08:002017-01-11T01:34:54+08:00

    关于偏好,我设置 iptables 使其易于管理且难以管理不善。

    1. 对于无意义的格式,我更喜欢按这样的顺序记下我的规则,以便我可以最轻松地验证防火墙状态,无论使用的工具多么简单。检查更改应该是微不足道的diff -wu <(iptables-save | egrep -v ^#) <(egrep -v ^# rules.v4)

    2. 当常见配置下的两种类似方法导致相同行为时,我选择一种即使在不常见配置下也能表达我真正意思的方法。因此我更喜欢后者,因为后者带有一个假设(在健全的设置中,没有其他接口可以接收这样的数据包)-A INPUT -i lo -J ACCEPT-A INPUT -s localhost -J ACCEPT

    3. 当 2 个限制意味着相同的事情时,我会选择两者或不能无意解除的一个。虽然-A INPUT -j REJECT可以-R替换规则,但此类错误不会影响链策略,例如-P INPUT REJECT

    • 1

相关问题

  • OpenSSH 漏洞 [重复]

  • 选择什么安全套件?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve