V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Andy1999
V2EX  ›  问与答

请教关于 SRV 解析的一个问题

  •  
  •   Andy1999 · 2015-07-23 15:31:29 +08:00 via iPhone · 5276 次点击
    这是一个创建于 3447 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近游戏服务器总是被DDoS,因为ping域名直接出IP,某天看到一个服务器ping他们的域名出来的是127.0.0.1,但是可以连上。
    通过dig SRV _minecraft._tcp.他的域名可以看到做了条SRV解析到服务器
    请问这是怎么做到的,是不是在客户端上设置过了?
    目前我也加了一条SRV,但只有at才能检测到,还有怎么投入真实生产呢?
    27 条回复    2015-07-24 15:07:40 +08:00
    RIcter
        1
    RIcter  
       2015-07-23 16:03:13 +08:00
    就算是 SRV,知道你 IP 照样 D 啊。
    millken
        2
    millken  
       2015-07-23 16:39:13 +08:00
    走httpDNS,配合HTTPS
    Andy1999
        3
    Andy1999  
    OP
       2015-07-23 16:52:17 +08:00 via iPhone
    @RIcter 但ping就不显示IP了啊,至少可以挡住一些
    @millken 这是啥……
    millken
        4
    millken  
       2015-07-23 17:18:20 +08:00
    既然有SRV,肯定是客户端游戏。

    解析就可以使用httpDNS,比如dnspod 的 https://www.dnspod.cn/httpdns/node。

    如果上面再加上https,抓包都没办法看到解析IP。
    typcn
        5
    typcn  
       2015-07-23 17:18:30 +08:00
    自己重写一个 Minecraft 自动连接暗网并连接服务器,避免泄露IP
    lty1993
        6
    lty1993  
       2015-07-23 17:24:54 +08:00
    @millken 我登陆下游戏然后netstat还不是一样暴露地址
    kenvix
        7
    kenvix  
       2015-07-23 17:29:28 +08:00
    @typcn 重写minecraft,你屌
    millken
        8
    millken  
       2015-07-23 17:47:07 +08:00
    @lty1993 SRV记录本来就是做负载均衡用的,如果你只有一个IP那没办法。

    多个IP+智能解析可以尽量降低风险,攻击者也只能打死一个IP,并且这种攻击成本很高。

    AWS,青云都有动态IP功能,要想绝对防御,走高防吧!
    cylin
        9
    cylin  
       2015-07-23 17:58:11 +08:00
    minecraft客户端不需要特殊设置,在DNS中添加即可
    但是使用起来不是特别好用,找不到A记录才会去查询SRV,会慢一些,有时会刷不出来
    SRV也只能防小白啦
    Andy1999
        10
    Andy1999  
    OP
       2015-07-23 18:22:13 +08:00 via iPhone
    @millken httpdns 其实就是请求 ip/xxxxx.php?域名 然后返回个IP地址

    @cylin 的确不需要,目前已经做到了,现在想讲默认先解析A记录改为直接解析SRV,这样子可以提高速度和成功率吧
    Andy1999
        11
    Andy1999  
    OP
       2015-07-23 18:23:24 +08:00 via iPhone
    @typcn 对于写html都能写错的渣渣,重新MC简直是不可能的。虽然MC是java,源代码都有着,但是他中间混淆代码很多。
    另外你说的应该是Socks连接吧,在客户端上。
    terax
        12
    terax  
       2015-07-23 21:18:30 +08:00
    LZ,你怎么老被攻击啊。。
    wy315700
        13
    wy315700  
       2015-07-23 21:20:54 +08:00
    虽然楼主换了头像,但是我还是想问:

    how old are u
    怎么 老 是 你
    Andy1999
        14
    Andy1999  
    OP
       2015-07-23 22:34:09 +08:00 via iPhone
    @terax 你看我萌不萌
    攻击我的一定是看我这么萌才打的~
    (wu
    @wy315700
    v2015
        15
    v2015  
       2015-07-24 00:01:05 +08:00 via Android
    要找出一个长连接太容易了,
    wkdhf233
        16
    wkdhf233  
       2015-07-24 00:23:40 +08:00
    这只是一个障眼法。
    SRV的子域名是_minecraft._tcp.name,而A纪录的是name,这俩不会冲突
    主要MC服务器那儿不用填应用和协议,所以会给人一种普通子域名的错觉,再绑个A纪录能解析出来,攻击者很可能就被误导了。
    别的不说,装个防火墙,在游戏里点一下连接,你的IP肯定就出来了。SRV它就不是拿来隐藏后端用的。

    攻击量太大还是前面加个高防TCP转发吧,不要以任何形式透露出后端服务器的真实IP。
    Andy1999
        17
    Andy1999  
    OP
       2015-07-24 00:40:09 +08:00 via iPhone
    @wkdhf233 主要是有人ping 了我 mc.moecraft.net(现已删除) 这个域名出了真实IP,直接D一下秒死。
    目前已经用了TCP转发,SRV指向了,而且支持无限换IP,打起来也比较累。
    现在准备把这个域名写入到MC客户端里,并且不让查看,不让修改。
    那么就剩下一个防火墙查看连接的问题了,我想让服务器与客户端建立一个socks连接,那么显示的IP就是内网了(不太确定)。
    wkdhf233
        18
    wkdhf233  
       2015-07-24 01:54:39 +08:00
    @Andy1999 。。后端IP已经暴露的话先把后端IP换了,不然没什么卵用的
    高防转发我没弄懂你弄个SRV然后不断换IP是什么鬼
    高防的防就是拿来扛DDoS的,靠流量清洗把攻击流量去掉。那玩艺扛不住你换IP也不会有什么卵用的,况且不断换IP的话,你建个SRV纪录纯粹是留把柄,几行代码就能完成SRV纪录的解析让攻击自动化,完全没有累这一说
    倒是SRV纪录MC客户端经常解析不出来,你的玩家估计蛮累的
    防火墙看本机和哪些主机建立了连接是肯定不会有问题的,这个你没法动手脚,能做的只有在后端前面加高防转发隐藏后端地址。你想让玩家没法知道他们和哪个远程主机在通信这个是笑话。。

    或者说你受到的其实是DoS攻击?
    1.7版之后的协议出现了一个十分坑的漏洞。在1.6的时候,获取完motd是由服务器关闭连接的,客户端这边无法保持socket。但1.7之后,ping的过程是客户端按当前系统时间给服务端发送一个字母,然后服务端返回相同的字母。坑就坑在这个过程中,关闭socket是由客户端完成的,而且你再发个字母过去服务端还是会返回。后果就是,在初次“握手”之后大量发送ping包会占用服务端极高CPU和内存,让你的服务端在短时间内崩溃掉。
    如果你遇到的是这种,去下个彩色motd插件吧,那玩艺会在发完motd之后由服务段关闭socket,实际上是对协议漏洞的一个修复。无法维持socket的客户端即使并发进程发送ping包,开销比应该都使它无法对你的服务器造成太大影响。
    还有服务器上iptables控制下同IP并发连接,短时间并发太高的ban几个小时。

    DoS一般IP不会多,你可以找下规律,如果是位置比较集中考虑ban掉IP段试试。还有域名的DNS那边也可以分地区解析,把国外/非你玩家地区直接解析到错误的IP去。

    最后说一句,DDoS是很烧钱的。。没什么深仇大恨的话那边一般也不会一直D你,忍一波也差不多了。。
    xierch
        19
    xierch  
       2015-07-24 03:19:53 +08:00
    攻击者一样可以 dig srv 一下得 IP 呀..
    phoenixlzx
        20
    phoenixlzx  
       2015-07-24 06:43:51 +08:00
    说句题外话
    这么招攻击,我觉得楼主该找找自己的原因了
    kn007
        21
    kn007  
       2015-07-24 07:34:41 +08:00
    @phoenixlzx 最近是挺多攻击的,整个博客圈都被攻击了一遍感觉。。。
    Andy1999
        22
    Andy1999  
    OP
       2015-07-24 09:40:25 +08:00 via iPhone
    @wkdhf233 目前找不到和腾讯云通信较好的高防做TCP转发,佛山那边和上海一直掉线,然后我就采用了他们的负载(走内网),负载有个好处是被D死(2G黑洞)后可以直接撤掉,然后换一个新的上去。
    然而其实对方根本没进我的服务器玩,直接ping了域名出来,因为当天我的源服务器被送了十几G后,我立刻换了个SLB上去,不到三分钟(我还没在群内发布,仅仅换了解析)立刻被送了一发ICMPFlood+SYNFlood,所以可以推断是根据域名找的IP。
    @phoenixlzx 这服务器也不是我管,不是我维护的,所有的工作都是别人做的,我仅仅是名义上的管理员。也就是说我买了台服务器+域名,就没我啥事了。
    @xierch 需要特技啦,要dig SRV _minecraft._tcp.moecraft.net 才能出来 增加了一定难度~
    KexyBiscuit
        23
    KexyBiscuit  
       2015-07-24 10:21:13 +08:00 via Android
    SRV 无卵用。
    说句不好听的话,反攻击关键是不要得罪人,没有实力之前夹起尾巴做人。
    腾讯云本身就有高防服务,需要我可以帮你联系。
    Andy1999
        24
    Andy1999  
    OP
       2015-07-24 10:36:26 +08:00 via iPhone   ❤️ 1
    @KexyBiscuit 这服务器也不是我管,不是我维护的,所有的工作都是别人做的,我仅仅是名义上的管理员。也就是说我买了台服务器+域名,就没我啥事了。
    回复之前看看我的回复再发
    腾讯云高防我也可以开,就是贵,所以不想,不用您费心。
    我论坛上的全部都是高防点,每个点都能抗200G+,我不知道你说这话的意义何在
    KexyBiscuit
        25
    KexyBiscuit  
       2015-07-24 11:10:05 +08:00 via Android
    @Andy1999 ╮(╯▽╰)╭╮(╯▽╰)╭╮(╯▽╰)╭
    wkdhf233
        26
    wkdhf233  
       2015-07-24 14:56:46 +08:00
    @Andy1999 真D啊,那只能祝好运了。。不过SRV真没感觉增加攻击难度
    撸个自动换高防IP和入口解析的倒是不错,那边攻击流量也是要钱的,你这边2G不断换跟他耗着他就已经输了
    顺便问问哪家的高防,求个链接→_→
    Andy1999
        27
    Andy1999  
    OP
       2015-07-24 15:07:40 +08:00 via iPhone
    @wkdhf233 http://lmbtfy.retaker.me/?q=%E9%94%90%E8%AE%AF 这网站不知道被哪个小贱人打了,现在可能打不开
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2739 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:10 · PVG 20:10 · LAX 04:10 · JFK 07:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.