Linux

总共有 2 篇文章

Linux nofile 限制

在上一次游戏测试中,因为用了新的机器,并且从 ansible 切换到了 salt stack,其中 nofile 相关的配置步骤漏掉了,结果所有进程的 nofile 限制是默认的 1024。结果就是当在线人数达到一定数据之后,出现大量 lua 找不到文件的错误,导致后来的玩家没法登录,已经在线的玩家也没法正常游戏。 开发服务端程序,nofile 是很重要的配置。它限制了一个进程最多能够打开的文件数量。对于高并发的服务,每个连接都会打开一些文件,尤其是使用像 Lua 这样的脚本语言,更是要打开大量的文件。 当前的限制可以使用 ulimit -a 查看。 要修改也比较简单,以 Ubuntu 为例,最简单的就是修改 /etc/security/limits.conf,在该文件中添加下面内容即可,不需要重启,新创建的进程会使用新的配置。 * hard nofile 1000000 * soft nofile 1000000…

更新于  •  2 分钟读完

从 Redis 攻击例子谈谈基本的 Linux 服务器安全

最近看到一篇文章详细说明了如何通过 Redis 获得 SSH 登录权限。简单来说就是如果 Redis 开放了外网端口访问,又没配置防火墙,也没有配置任何 Redis 的连接验证,而且还是用很高权限的用户在运行 Redis,就可以通过 dump 数据库把任意 key 注入到 authorized_keys 文件中,从而获得用户的 SSH 登录权限。条件很苛刻,但是很容易自动化,估计还是可以扫描到不少肉鸡的。 比较惭愧,最近部署的一台服务器就被该方法攻击了。主要原因是之前我已经书面说明了防火墙如何配置,所以想当然的认为拿到的机器已经配置好了。为了让 Redis 在内网内能访问,配置脚本中将监听的地址改成了 0.0.0.0,也没有配置连接验证,结果就是任何人都能连接上这个数据库。不过因为还是用的单独的 redis 用户运行,权限有限,攻击者并没有拿到 SSH 登录权限,只是把数据库清空了。所幸是测试服务器,数据库中的数据并不重要。 下面说明下我所了解的保护服务器安全的一些常识。

更新于  •  3 分钟读完