阴天不下雨by 2022-01-13 14:48 采纳率: 100%
浏览 169
已结题

centos防火墙,我没有开启端口,但是我却建立起了服务,求解答

问题遇到的现象和发生背景

img

问题描述

我尽量描述清楚这个现象
两个服务器上有strongswan的vpn服务,描述A->B建立服务发生的现象,B->A现象一致
服务器情况概述
A、B两台服务器目前均开启firewall防火墙,VPN的协商端口为udp500,两端防火墙均没有配置放开udp500端口
操作
A向B发起建立连接服务,数据包源端口500,目的端口500,在B机器抓包,发现没有相关数据包,证明防火墙将包丢弃
此时在B机器上向A发起建立连接服务,服务正常建立了起来

我的疑问和猜想

疑问,在没有开启防火墙端口的情况下,服务应该不能建立

猜想:
由于查看防火墙的机制,只有与传出流量有关,其余流量流量均拒绝(没有其他规则的情况下),是否A->B发起服务时,源目的端口都是500,B的防火墙拒绝后,由于A还有建立服务的尝试次数,依然在发包,B这时向A发起服务,A会认为这是与传出流量相关所以不拒绝数据包

希望有明白的人可以答疑解惑

  • 写回答

1条回答 默认 最新

  • 於黾 2022-01-13 14:53
    关注

    恭喜你独立自主的发现了数据穿透的原理
    p2p传输建立点对点连接的时候就是利用了这个原理
    正常情况下,客户端只能对服务端发起连接,客户端之间都在局域网内部,互相是不可见的
    但是防火墙只拦截从外部向内部主动发起的数据包,而如果是从内网向外网请求,返回的数据包是不拦截的,(否则你根本没法上网,所有网站只能接到你的请求,返回的页面你一个都看不见)
    那么只要服务器向你发送的数据包还利用你发出数据时的端口号,就能骗过防火墙

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月21日
  • 已采纳回答 1月13日
  • 创建了问题 1月13日