7 linux iptables spoofing apache-2.2
我在 Linux 上的 Apache 网络服务器被对不存在文件的大量请求所淹没。直接影响是访问和错误日志的快速增长。我已经通过不记录这些请求(如果它与特定字符串匹配)来解决这个问题。我们谈论的是每秒来自多个 IP 地址的40 到 50 个请求(对于同一个文件)。
我最初认为它是一个僵尸网络,但我相信它是一些欺骗源 IP 的脚本小子。我在服务器上运行 iptables,我想知道这些数据包是如何绕过 TCP/IP 初始握手到达应用层(HTTP 服务器)的?如果我有:
--Default Policy for INPUT chain is to DROP
<snip>
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
<...>
<snip>
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
...我的服务器响应的 SYN/ACK 不应该在初始连接请求之后发送到欺骗的 ip 吗?并因此失去了?如果数据包是精心制作的,似乎来自已建立的连接,netfilter 的状态跟踪机制是否应该处理这个问题(通过上面的 RELATED,ESTABLISHED 行)并将它们识别为不是已建立会话的一部分,因此删除它们(通过默认策略:DROP)?
提前致谢,克拉科尼亚
pd 请求来自有效的互联网地址。
即使他们欺骗源 IP,在连接到 Apache 之前也需要 SYN/ACK TCP 握手。这有效地防止了欺骗性 TCP 连接。因此,您可以非常确定所有连接都是从您可以在日志中看到的 IP 地址建立的。
僵尸网络或开放代理更可能是罪魁祸首。那或某个网页中的漏洞。一个经典的漏洞利用是在网站的 HTML 中嵌入一个指向您的网络服务器上的大对象的链接,使所有客户端都试图从您的服务器获取对象。
您的 IPTABLES 规则现在确实有意义;)
你的iptables规则很好。除了确保您不会被使用源路由的人捕获之外,您在防火墙的上下文中实际上无能为力。Linux 内核中有一个称为rp_filter(反向路径过滤器)的设置,您可以打开它来阻止指定源路由的数据包。由于源路由几乎从未在诊断上下文之外使用,因此阻止此类数据包是安全的。
大多数 Linux 系统都有/etc/sysctl.conf,其中包含内核设置。将以下行添加到该文件中:
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.all.rp_filter=1
Run Code Online (Sandbox Code Playgroud)
然后重新启动以确保设置这些变量。或者,您可以通过常规方式在运行时在各个网络接口上设置它们,例如
echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth1/rp_filter
...
Run Code Online (Sandbox Code Playgroud)
或者
sysctl -w net.ipv4.conf.eth0.rp_filter=1
sysctl -w net.ipv4.conf.eth1.rp_filter=1
...
Run Code Online (Sandbox Code Playgroud)
您是如何消除僵尸网络的可能性的?
攻击者是否可能使用IP 源路由?
从上面的网址
不幸的是,源路由经常被 Internet(和其他地方)上的恶意用户滥用,并用于使机器 (A) 认为它正在与另一台机器 (B) 通信,而实际上它正在与第三台机器通信 ( C)。这意味着C出于某些目的可以控制B的IP地址。
根据微软的一篇文章
远程攻击者可能试图访问受 TCP 包装器保护的 UNIX 系统,或受基于源地址的访问列表保护的 Windows NT Internet Information Server (IIS)。如果攻击者只是欺骗允许的源地址之一,则攻击者可能永远不会得到响应。但是,如果攻击者既欺骗地址又设置松散源路由选项以强制响应返回攻击者的网络,则攻击可能会成功。
(我的重点)
| 归档时间: |
|
| 查看次数: |
13345 次 |
| 最近记录: |