iptables防火墙规则导致端口不通的案例分析-阿里云开发者社区

开发者社区> 舟翁> 正文

iptables防火墙规则导致端口不通的案例分析

简介: iptables防火墙规则导致服务器的8080端口访问不通,telnet连接测试提示 No route to host
+关注继续查看

iptables防火墙规则导致端口不通的案例分析


  • 问题现象:

一台服务器的8080端口访问不通,但其他端口正常,例如ssh的22端口,ping也正常。

从其他机器上进行telnet连接8080端口测试,显示是下边这个结果。


[root@iZ25a9b7bpcZ ~]# telnet xx.xx.xx.xx 8080
Trying xx.xx.xx.xx...
telnet: connect to address xx.xx.xx.xx: No route to host

从telnet测试的结果,仔细看其实会发现有问题,这里提示了错误“No route to host”。

正常进行telnet端口测试,如果端口不通,返回是这样的情况,会提示“Connection refused”


[root@iZ25a9b7bpcZ ~]# telnet xx.xx.xx.xx 9999
Trying xx.xx.xx.xx...
telnet: connect to address xx.xx.xx.xx: Connection refused

而访问8080端口会提示“No route to host”,没有路由能连接到目标地址。但实际ping是通的,路由肯定没有问题,这个异常的提示就是最大疑点。


  • 排查过程:

首先想到是进行抓包,具体看下网络连接情况。

在客户端机器上,进行telnet连接测试,然后用 tcpdump 抓取访问目标ip 120.xx.xx.xx 的数据包。


[root@iZ25a9b7bpcZ ~]# tcpdump -i any -s 0 host 120.xx.xx.xx
19:58:07.985224 IP 101.200.xx.xx.33631 > 120.xx.xx.xx.webcache: Flags [S], seq 783998905, win 14600, options [mss 1460,sackOK,TS val 624230653 ecr 0,nop,wscale 6], length 0
19:58:08.018285 IP 120.xx.xx.xx > 101.200.xx.xx: ICMP host 120.xx.xx.xx unreachable - admin prohibited, length 68

从抓包的结果看,客户端访问目标服务器的8080端口(抓包里端口显示webcache),但目标服务器给返回了一个ICMP协议类型的,提示目标地址不可达 。host 120.xx.xx.xx unreachable ,这里明显不正常。

同时也在服务器端进行了抓包,抓取客户端ip 101.200.xx.xx 的连接。


root@iZ94jj4osq9Z:/etc/apache2# tcpdump -i any -s 0 host 101.200.xx.xx
19:57:39.974605 IP 101.200.xx.xx.33623 > 120.xx.xx.xx.http-alt: Flags [S], seq 1047961079, win 14600, options [mss 1460,sackOK,TS val 624202626 ecr 0,nop,wscale 6], length 0
19:57:39.974679 IP 120.xx.xx.xx > 101.200.xx.xx: ICMP host 120.24.183.92 unreachable - admin prohibited, length 68

服务器端也收到了客户端访问8080端口的请求,但没有正常响应客户端发的tcp三次握手的syn包,而是返回了一个异常的ICMP协议数据包,告诉客户端目标不可达。

这里也就可以明白,为什么telnet端口测试,会提示“No route to host”

在Windows上用wireshark进行抓包查看,会看到服务器返回的错误信息“Host administratively prohibited”

服务器返回的ICMP协议的数据包中,是包含了客户端请求的数据包信息。


34460db922ce4ffa87ac28c006df5ecb62a98abb


  • 确定问题:

通过抓包的信息,基本分析清楚了问题。出现连接异常,肯定是服务器上有特殊限制,防火墙之类的。

在目标服务器上查看 iptables防火墙规则。


root@iZ:~# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 limit: avg 100/sec burst 100
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 10
syn-flood tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080

其中有


REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

这条是拒绝所有连接的规则,而允许8080端口访问的规则,是在这条规则之后,优先级没有拒绝的高导致8080端口连接不上。

拒绝连接的规则有 reject-with icmp-host-prohibited 这个选项,所以被拒绝的连接会收到一个icmp,返回目标主机不可达,抓包里看到返回的icmp协议,就是这个拒绝的规则导致。


最后解决方式,关闭iptables防火墙,或者把允许8080端口访问的规则加到前边。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
DLA如何分析Table Store的数据
数据湖(Data Lake)是时下热门的概念,基于数据湖,可以不用做任何ETL、数据搬迁等过程,实现跨各种异构数据源进行大数据关联分析,从而极大的节省成本和提升用户体验。
887 0
Observability:使用 Elastic Stack 分析地理空间数据
在今天的文章中,我们将参考之前的文章 “如何使用 Elasticsearch ingest 节点来丰富日志和指标”。我们可以利用 Elasticsearch ingest 节点来更加丰富我们的数据,并对这些数据做更进一步的的分析。
1291 0
搭建基于netfilter/iptables的防火墙实验环境
 防火墙作为一种网络或系统之间强制实行访问控制的机制,是确保网络安全的重要手段。针对不同的需求和应用环境,可以量身定制出不同的防火墙系统。防火墙大到可由若干路由器和堡垒主机构成,也可小到仅仅是网络操作系统上一个防火墙软件包所提供的包过滤功能。
929 0
从 0 到 1 通过 Flink + Tablestore 进行大数据处理与分析
阿里云实时计算Flink版是一套基于 Apache Flink 构建的⼀站式实时大数据分析平台。在大数据场景下,实时计算 Flink 可提供端到端亚秒级实时数据流批处理能力。表格存储 Tablestore (又名 OTS)是阿里云自研的多模型结构化数据存储,可提供海量结构化数据的存储、查询分析服务。表格存储的双引擎架构支持千万TPS和毫秒级延迟的服务能力,可作为大数据计算的极佳上下游存储。
340 0
linux平台下防火墙iptables原理(转)
原文地址:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html iptables简介     netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
900 0
+关注
舟翁
阿里云售后工程师
6
文章
2
问答
来源圈子
更多
作为全球云计算的领先者,阿里云为全球230万企业提供着云计算服务,服务范围覆盖200多个国家和地区。我们致力于为企业、政府等组织机构提供安全可靠的云计算服务,给用户带来极速愉悦的服务体验。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载