woshisongzhe
V2EX  ›  站长

拒绝 TCP 协议,发现还能访问网站

  •  1
     
  •   woshisongzhe · Aug 18, 2016 · 10221 views
    This topic created in 3729 days ago, the information mentioned may be changed or developed.
    以前一致认为 HTTP 协议是建立在 tcp 协议之上的,如果禁了 tcp 协议之后,那么就不能访问网站了,现在我尝试把 TCP 协议禁了之后网站也能访问,看来如果网站不是需要保持长连接需要 tcp 协议,那么可以把它禁了,这样,网站安全性就更进一步了
    Supplement 1  ·  Aug 18, 2016
    问题总算研究清楚了:理论和实践上是可以“拒绝” TCP 协议的,这种方式是在进入后端服务器之前要设置一个代理服务器,这个代理服务器替代后端服务器进行三次握手之后才把访问内容传递到后端服务器,这样,后端对于 SYN Flood 类型的 DDOS 攻击完全无视,当然要求这代理服务器能辨别哪些流量属于 SYN Flood ,比如在第一次握手以及第二次握手在限定时间内没有得到反映时立马丢弃

    最后,感谢回复“哈哈哈哈哈”的同学
    Supplement 2  ·  Aug 19, 2016
    本帖有一些同音字,比如开头的“一致”实际为“一直”,本帖实则是一个分享贴,虽然有错误,但对个体的防护有很大的启发与借鉴作用,具体措施本人不再提供
    58 replies  •  2016-08-19 11:22:24 +08:00
    justfly
    justfly
    Aug 18, 2016
    1
    什么鬼
    aprikyblue
    aprikyblue
    Aug 18, 2016 via Android
    2
    什么鬼
    hahiru
    hahiru
    Aug 18, 2016 via Android
    3
    蛤?
    aprikyblue
    aprikyblue
    Aug 18, 2016 via Android
    4
    你确定。。不是禁错了??
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    5
    @aprikyblue 我在阿里云后台禁的
    just1
    just1
    Aug 18, 2016 via Android
    6
    消失的 2 楼
    我猜是浏览器缓存
    Hanxv
    Hanxv
    Aug 18, 2016 via Android
    7
    你确定不是缓存?
    HTTP 就是建立在 TCP 协议之上,它需要可靠传输。如果使用 UDP ,你能想象你的网站会是什么样子么?

    还扯淡,安全性。传输都不可靠,你还敢说安全。
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    8
    @just1 不是缓存,我测试了好几次了,也重启了服务器
    cloverstd
    cloverstd
    Aug 18, 2016
    9
    一个河,你把桥给撤了,你咋过去
    bdbai
    bdbai
    Aug 18, 2016 via Android
    10
    楼主试试 telnet 你服务器的 80 端口,把请求手打进去看看情况。
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    11
    @Hanxv 之前我就只开放 tcp ,其他的都封了

    我昨晚开始封了 TCP 之后发现网站也能访问

    TCP 协议是指握手之后才进行数据传输,所说 http 协议是建立在 TCP 上,但 HTTP 是无状态响应
    jasonyang9
    jasonyang9
    Aug 18, 2016
    12
    恭喜 LZ 发现外星科技。强烈建议抓包看看到底是什么鬼
    rock_cloud
    rock_cloud
    Aug 18, 2016
    13
    用 curl 试试?
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    14
    @bdbai 提示‘不是内部命令。。。。’
    0TSH60F7J2rVkg8t
    0TSH60F7J2rVkg8t
    Aug 18, 2016
    15
    楼主从哪里访问的?访问地址确定不是运营商给返回的缓存页面吗?
    iyaozhen
    iyaozhen
    Aug 18, 2016 via Android
    16
    楼主也是叼啊。去 17ce 啥的测试下,你会发现全国都红了。
    rphoho
    rphoho
    Aug 18, 2016❤️1
    17
    0.0 火钳刘明
    derpc
    derpc
    Aug 18, 2016 via iPhone
    18
    瓜子饮料可乐
    cocochan
    cocochan
    Aug 18, 2016❤️2
    19
    完全可以, OVH 的防火墙就是这样在遭受 DDoS 攻击后会阻断所有的 TCP 但是 HTTP 流量会被转发

    149.56.231.130

    www.nyavm.com

    各位可以试试看
    bdbai
    bdbai
    Aug 18, 2016 via Android
    20
    @woshisongzhe Windows 需要启用功能, Linux 从包管理器装。
    无状态跟 TCP 没关系吧。
    jasontse
    jasontse
    Aug 18, 2016 via iPad
    21
    mark 等真相
    RobertYang
    RobertYang
    Aug 18, 2016 via Android
    22
    难道你是 QUIC ? 23333
    xmh51
    xmh51
    Aug 18, 2016
    23
    坐等真相 阿里云被打脸?? 后台 tcp 被禁 网站还能访问 23333
    dndx
    dndx
    Aug 18, 2016
    24
    楼主这不是高级黑吧。
    wsy2220
    wsy2220
    Aug 18, 2016 via Android
    25
    火钳刘明
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    26
    @jasonyang9 我现在在服务器外套了个均衡负载,但是我把内外网出入口的 tcp 也都封了,但是也是可以访问,感觉非常奇怪,难道通过阿里云的控制端封禁无效?但是我设置其他的比如 22 端口只留下白名单等设置也都有效

    @ahhui 直接通过浏览器输入网址以及通过 app 链接都能获取到结果,包括查询数据库等都能获取到正确结果

    @iyaozhen 测了,不过访问的是均衡负载的 ip ,但是我明明把所以内外网的出入口的 tcp 全都封了,也能访问到网站,真是奇了怪了

    @xmh51 我刚才直接把域名指向后端服务器,吃完饭回来发现又访问不了,但是通过均衡负载那个域名还能访问,问题是我内网也把它给封了的,难道 tcp 对内外不起作用还是说内网采取的不是 TCP 协议?
    jy01264313
    jy01264313
    Aug 18, 2016
    27
    什么鬼,没听懂?
    Citrus
    Citrus
    Aug 18, 2016
    28
    阿里云的负载均衡分七层和四层,目测楼主配了一个七层 HTTP 负载均衡然后把四层全封死了。。。这样不能访问才奇怪呢。。。
    Citrus
    Citrus
    Aug 18, 2016
    29
    不过楼主这从现象推原因的逻辑也是挺牛逼的。快去证伪万有引力和牛顿定律吧!
    crab
    crab
    Aug 18, 2016
    30
    那你 80 端口监听用啥协议啊
    zealic
    zealic
    Aug 18, 2016
    31
    阿里云的防火墙我就不说了,各种逻辑不通顺,封了的端口可以继续访问,出口流量配置允许所有流量无效,必须配置指定的外部入站随机端口端 40000+ 允许才能正常工作
    UnisandK
    UnisandK
    Aug 18, 2016
    32
    验证到后来楼主变成了阿里黑。。
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    33
    @Citrus 不是,我只配了 4 层的均衡负载

    @crab 均衡负载的 80 端口是监听 tcp

    @zealic 阿里云的流量、内存、 cpu 抓取的是误差非常大的,你能想象 cpu 的利用率达 100 网站还能打得开么?根据阿里云的抓取,是的,还能打得开,而我抓取的就 8 点几,不知道他们是怎么抓取的,流量我如果抓取了 100Kb/s ,阿里云的抓取肯定达到 500Kb/s 了

    @UnisandK 楼主从来不去黑别人
    zealic
    zealic
    Aug 18, 2016
    34
    @woshisongzhe 阿里走的是双向流量收费,本身内网 NAT 貌似也是要收费的;由于它定制了操作系统在内部加入了一些 agent 和内部系统通信和动态更新,所以对于网络防火墙限制有许多例外,总体来说非常恶心。
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    35
    @zealic 问题是他们宣称的单向收费(收取出口流量),但是目前也就是在研究研究,先不管那么多了
    FreeDog
    FreeDog
    Aug 18, 2016
    36
    那个防火墙不是只针对 CentOS 有效吗?之前看到的提示是那样子,所以就没有用它
    qzy168
    qzy168
    Aug 18, 2016
    37
    ban 了 TCP 还能访问网站是什么原理?
    whahugao
    whahugao
    Aug 18, 2016
    38
    马克一下 坐等下文
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    39
    @qzy168 现在的情况是,直接指向 ECS 是访问不了网站的,但是通过均衡负载即使后段的内网出入口封了 tcp 后还是能访问,我怀疑是均衡负载的内网 ip 直接与后端的服务器绑上了,无论后端怎么封,都是可以通过均衡负载访问,因为均衡负载没有设置封禁 tcp
    mengzhuo
    mengzhuo
    Aug 18, 2016
    40
    哈哈哈哈 今日最佳笑话!!!
    intsilence
    intsilence
    Aug 18, 2016
    41
    哈哈哈哈哈。
    iamzhuyi
    iamzhuyi
    Aug 18, 2016 via Android
    42
    楼主是宋喆
    goodryb
    goodryb
    Aug 18, 2016
    43
    哈哈哈哈哈哈哈哈,楼主 NB
    9hills
    9hills
    Aug 18, 2016
    44
    看到后来,发现『拒绝』 TCP 协议的办法就是做一个七层的转发。。。。。。

    喂喂,这个还用发现么
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    45
    @9hills 假如没有现成的七层转发你这么做?
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    46
    @9hills 另外,阿里云的 7 层负载不负责给你防 DDOS ,流量过来照样给你导进来
    oska874
    oska874
    Aug 18, 2016
    47
    好奇,怎么禁掉 tcp ?
    liyvhg
    liyvhg
    Aug 18, 2016 via Android
    48
    楼主试一下
    sudo iptables -I INPUT -p tcp -j DROP
    彻底丢掉 TCP 的包,温馨提示:提前做好备份
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    49
    @liyvhg 我是通过阿里云的 ECS 控制台设置的,没有对 iptables 设置
    @oska874 通过阿里云的 ECS 控制台
    liyvhg
    liyvhg
    Aug 18, 2016 via Android
    50
    @woshisongzhe 估计阿里云自己做了一些控制,放开了常用端口
    9hills
    9hills
    Aug 18, 2016
    51
    @woshisongzhe 7 层负载均衡会把 SYN flood 给你导进来?
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    52
    @9hills 客服工单就这么回复:不具有防 DDOS 功能
    woshisongzhe
    woshisongzhe
    OP
    Aug 18, 2016
    53
    @liyvhg 据我深入了解,均衡负载可以从另一方来说是替换了原 ECS 的公网 ip ,导致你对这个 ECS 怎么设置只要通过均衡负载访问的都无效
    usernametoolong
    usernametoolong
    Aug 18, 2016
    54
    从上到下看了一遍。。。。。真的是。。。。。
    无言以对。。。。。。。。
    justfly
    justfly
    Aug 18, 2016
    55
    大致看明白了 一台阿里云主机本来有外网 IP 后来在上面加了一个负载均衡 就把原来外网 IP 网卡的 tcp 禁掉了,然后去访问负载均衡器发现能访问。所以得出帖子的结论。
    crazycen
    crazycen
    Aug 19, 2016 via iPhone
    56
    看了评论回复,发现是伪证!
    veelog
    veelog
    Aug 19, 2016 via Android
    57
    传输层都被禁用了,应用层是如何通信的???
    woshisongzhe
    woshisongzhe
    OP
    Aug 19, 2016 via iPhone
    58
    @justfly 是的,这也是我后来才发现的,但还不够完整,因为我也把内网的也给禁用了
    @veelog 这需要对阿里云的均衡负载分析才知道,而不是只针对后端的 ECS
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4461 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 100ms · UTC 09:59 · PVG 17:59 · LAX 01:59 · JFK 04:59
    ♥ Do have faith in what you're doing.