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 / 问题 / 650351
Accepted
user35042
user35042
Asked: 2014-12-10 10:59:31 +0800 CST2014-12-10 10:59:31 +0800 CST 2014-12-10 10:59:31 +0800 CST

使用 iptables 记录两个地址以外的连接

  • 772

我们想使用 iptables 记录所有网络连接,除非连接地址是A.B.C.D或连接地址是E.F.G.H。如果没有包含我们想要包含的地址的范围,这两个地址就不能组合成一个 CIDR 范围。通过添加以下 iptables 规则,我可以部分实现:

-I INPUT ! -s A.B.D.E -p tcp -m tcp --dport 3306 -m state --state NEW  -j LOG --log-level 1 --log-prefix "New Connection "

但是,这仍然会记录来自E.F.G.H. 有没有办法在不记录的情况下获取所有内容?

(这两个地址产生了很多连接,我们不需要记录它们。)

iptables
  • 3 3 个回答
  • 1785 Views

3 个回答

  • Voted
  1. Best Answer
    Hyppy
    2014-12-10T11:02:24+08:002014-12-10T11:02:24+08:00

    在您引用的特别允许 ABCD 或 EFGH 的行上方添加一两条规则,然后在其下方进行日志记录。iptables按照规则的顺序工作,因此允许较早通过是处理的结束。

    这也是您在大多数防火墙规则集的末尾添加通用“全部拒绝”的原因。如果您的上述规则未涵盖某些内容,请拒绝它,因为它是意料之外的并且可能是不受欢迎的。

    示例(根据需要进行调整,不要只是复制粘贴):

    -A INPUT -s A.B.C.D -p tcp -m tcp --dport 3306 -m state --state NEW -j ACCEPT
    -A INPUT -s E.F.G.H -p tcp -m tcp --dport 3306 -m state --state NEW -j ACCEPT
    -A INPUT -p tcp -m tcp --dport 3306 -m state --state NEW  -j LOG --log-level 1 --log-prefix "New Connection "
    -A INPUT -j DROP
    
    • 1
  2. kasperd
    2014-12-10T11:05:25+08:002014-12-10T11:05:25+08:00

    您可以创建一个自定义链,可以命名为LOG_UNLESS,然后您可以执行以下操作:

    -A INPUT -p tcp -m tcp --dport 3306 -m state --state NEW -j LOG_UNLESS
    -A LOG_UNLESS -s 192.0.2.1 -j RETURN
    -A LOG_UNLESS -s 203.0.113.2 -j RETURN
    -A LOG_UNLESS -j LOG --log-level 1 --log-prefix "New Connection "
    
    • 0
  3. pepoluan
    2015-01-02T23:33:10+08:002015-01-02T23:33:10+08:00

    另一种选择是使用ipset.

    首先,创建正确的 IP 集:

    ipset create DO_NOT_LOG hash:ip
    

    然后,添加要排除的地址:

    ipset add DO_NOT_LOG A.B.C.D
    ipset add DO_NOT_LOG E.F.G.H
    

    最后,在 iptables 日志记录规则上,添加一个否定匹配:

    -I INPUT -m set ! --match-set DO_NOT_LOG src -p tcp -m tcp --dport 3306 -m state --state NEW  -j LOG --log-level 1 --log-prefix "New Connection "
    

    ! --match-set DO_NOT_LOG src意思是:“匹配源(src)地址不在DO_NOT_LOG集合中的数据包”

    • 0

相关问题

  • OpenVPN 的 Linux IP 转发 - 正确的防火墙设置?

  • iptables 单个规则中的多个源 IP

  • 存储 iptables 规则的规范方法是什么

  • 使用 iptables 和 dhcpd 进行端口转发

  • 根据 Apache 日志数据自动修改 iptables 以阻止行为不良的客户端

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