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 / 问题 / 689875
Accepted
Wes Cossick
Wes Cossick
Asked: 2015-05-06 15:48:42 +0800 CST2015-05-06 15:48:42 +0800 CST 2015-05-06 15:48:42 +0800 CST

iptables 删除了到 localhost 的 cURL

  • 772

我正在尝试在外壳上使用 cURL 连接到本地主机。我是curl http://localhost:80用来连接的。不幸的是,它被 iptables 阻止了。这是 iptables 日志中的错误原因:

IPTables-Dropped: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.1 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=TCP SPT=80 DPT=58617 WINDOW=32768 RES=0x00 ACK SYN URGP=0

这是iptables:

iptables -L -v
Chain INPUT (policy DROP 314 packets, 19725 bytes)
 pkts bytes target     prot opt in     out     source               destination
30731 4342K ACCEPT     all  --  eth0   any     anywhere             anywhere             state RELATED,ESTABLISHED
  255 31984 ACCEPT     all  --  eth1   any     anywhere             anywhere             state RELATED,ESTABLISHED
    6   360 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:https
  207 28142 ACCEPT     tcp  --  any    any     localhost.localdomain  anywhere             tcp dpt:6379
  173  9634 ACCEPT     tcp  --  any    any     localhost.localdomain  anywhere             tcp spt:6379

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 31748 packets, 2974K bytes)
 pkts bytes target     prot opt in     out     source               destination

我想我已经将其范围缩小到 cURL 似乎使用的目标端口不是 80 的事实。每次我发出新的 cURL 请求时,它也会发生变化。您可以在日志条目中看到这一点:SPT=80 DPT=58617. 解决这个(我想)应该解决这个问题。

一些注意事项:

  • 运行 Debian Wheezy
  • 网络服务器是 nginx
  • 从 localhost 到本地 Redis 服务器的连接工作正常。

更新:添加以下规则-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT可解决问题。允许基于源端口而不是目标端口的连接是否存在安全问题?

linux
  • 1 1 个回答
  • 2466 Views

1 个回答

  • Voted
  1. Best Answer
    Ale
    2015-05-06T16:28:25+08:002015-05-06T16:28:25+08:00

    您RELATED,ESTABLISHED只有接口 eth0 和 eth1 的规则,因此 web 服务器对 cURL 连接请求的回答将被 iptables 丢弃,因为它不被任何规则接受。更改RELATED,ESTABLISHED规则使其适用于所有接口应该可以解决问题。

    不要使用接受来自特定源端口的流量的规则,除非您出于非常特定的原因需要它们:拥有接受来自端口 80 的所有流量的规则意味着任何人都可以连接到您的任何服务,如果他/她可以打开连接端口 80(对于任何攻击者来说都是微不足道的)。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

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