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 / 问题 / 714741
Accepted
user3783243
user3783243
Asked: 2015-08-18 09:00:03 +0800 CST2015-08-18 09:00:03 +0800 CST 2015-08-18 09:00:03 +0800 CST

iptables ip地址块被忽略?

  • 772

在我们的服务器上运行top给了我们

平均负载:68.67、63.48、60.30

我们怀疑这是由于太多的 httpd 连接造成的。

跑步:

netstat -tun 2>/dev/null | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

给我们(所有 IP 转换为私有地址):

418 
176 192.168.1.1
 41 192.168.1.2
  8 192.168.1.3
  5 192.168.1.4
  5 192.168.1.5
  4 192.168.1.6
  2 192.168.1.7
  2 192.168.1.8
  2 192.168.1.9
  2 127.0.0.1
  1 servers)
  1 Address
  1 192.168.1.10
  1 192.168.1.11

正如您所看到的192.168.1.1(从 WAN 地址转换而来,仅用于此处),它似乎有 176 个连接到我们的服务器。远程查找此 IP 可将其重新解析为 DDOS 服务。

我们跑了

sudo iptables -I INPUT -m iprange --src-range 192.168.0.0-192.168.0.255 -j DROP

尝试删除与其完整范围相关的所有范围,但在运行 netstat 命令时仍会显示请求。

IPtables 命令或 netstat 命令有问题吗?

我们跑

 sudo service iptables save
 sudo service httpd restart

存储它并使其处于活动状态,然后

sudo iptables --list

确认它已添加,它是。不确定我们是否缺少某些东西。谢谢。

更新

跑步iptables -L -nv节目

pkts bytes target     prot opt in
30179 1793K DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           source IP range STARTRANGE-ENDRANGE

这是否意味着30179请求被阻止?

我们的 IPtables 也看起来像这样(STARTRANGE/ENDRANGE 是实际的四字节地址)...

Chain INPUT (policy DROP)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            source IP range STARTRANGE-ENDRANGE 
DROP       all  --  anywhere             anywhere            source IP range STARTRANGE-ENDRANGE 
DROP       all  --  anywhere             anywhere            source IP range STARTRANGE-ENDRANGE 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql 
DROP       all  --  anywhere             anywhere            source IP range STARTRANGE-ENDRANGE  

缩短的 Netstat 输出(命令运行:)netstat -n | grep '192.168':

tcp        0      1 OUR_SERVER_IP:44531          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44675          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44600          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44587          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44641          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44578          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44626          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44604          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44541          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44678          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44625          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44661          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44543          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44602          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44644          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44580          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44688          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44683          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44588          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44556          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44681          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44631          192.168.1.1:443          SYN_SENT 
linux
  • 3 3 个回答
  • 2429 Views

3 个回答

  • Voted
  1. Best Answer
    MadHatter
    2015-08-18T12:00:15+08:002015-08-18T12:00:15+08:00

    现在您终于发布了netstat有问题的输出(感谢您),我们可以看到它获取的连接几乎肯定不是来自远程服务器,正如您所想的那样。相反,您的服务器正努力在端口 443 (HTTPS) 上启动与该远程服务器的连接。这就是为什么他们没有被INPUT链式规则阻止的原因;第一个数据包是出站的 - 只有远程服务器生成的响应被INPUT规则阻止,连接SYN_SENT一直保持到超时。

    的使用netstat -apn表明,建立这些连接的是系统上的 HTTPD 服务器。您不知道您的服务器应该这样做的任何原因,因此您将离开仔细研究它的设置。

    • 3
  2. Mircea Vutcovici
    2015-08-18T09:19:11+08:002015-08-18T09:19:11+08:00

    iptables -L -nv如果规则匹配,您可以使用它进行故障排除。您将在第一列pkts中看到匹配每个规则的数据包数量。

    如果您的规则不匹配,则可能是它之前已被另一个防火墙条目(规则)匹配。

    • 1
  3. André Fernandes
    2015-08-18T09:54:55+08:002015-08-18T09:54:55+08:00

    确保iptables -I INPUT (...)使用rulenum参数运行。您要确保-j ACCEPT在 http 端口的任何规则之前插入此规则。此参数的默认值为 1,因此它应该已经在顶部。

    iptables -nvL --line-numbers将打印出您当前的 iptables 以及规则的编号。

    $ iptables -nvL --line-numbers
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    num   pkts bytes target     prot opt in     out     source               destination
    
    1      52  2640 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80
    2       0     0 ACCEPT     tcp  --  eth0   *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:443
    3     415 42229 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited
    

    运行iptables -I INPUT 2 <your-rule-here>将在输出中的规则 #2 之前添加规则,将其推入表格中。

    iptables -I INPUT -m iprange --src-range 192.168.0.0-192.168.0.255 -j LOG --log-prefix "BADGUYS"您可以用而不是替换您的规则-j DROP。这会将日志数据写入系统日志,您可以在其中按BADGUYS上面给出的值进行过滤。如果这显示在 syslog 中,那么您的过滤器是好的,应该丢弃流量。

    您可以在 iptables 规则中同时保留 aLOG和DROP一行(按此顺序)。

    • 1

相关问题

  • 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