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

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日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装