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

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

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

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

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

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

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

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

攻击量太大还是前面加个高防TCP转发吧,不要以任何形式透露出后端服务器的真实IP。
Andy1999
2015-07-24 00:40:09 +08:00
@wkdhf233 主要是有人ping 了我 mc.moecraft.net(现已删除) 这个域名出了真实IP,直接D一下秒死。
目前已经用了TCP转发,SRV指向了,而且支持无限换IP,打起来也比较累。
现在准备把这个域名写入到MC客户端里,并且不让查看,不让修改。
那么就剩下一个防火墙查看连接的问题了,我想让服务器与客户端建立一个socks连接,那么显示的IP就是内网了(不太确定)。
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
2015-07-24 03:19:53 +08:00
攻击者一样可以 dig srv 一下得 IP 呀..
phoenixlzx
2015-07-24 06:43:51 +08:00
说句题外话
这么招攻击,我觉得楼主该找找自己的原因了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/207813

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX