使用 Docker 部署 Concourse CI
Concourse CI 是个很不错的开源持续集成工具,安装和上手都相当简单。如果没有在用 Gitlab 又想自己架设 CI 服务的话是个不错的选择。 Concouse CI 提供了 Docker 镜像,部署起来相当方便。不过可能会踩到一些坑。
Concourse CI 是个很不错的开源持续集成工具,安装和上手都相当简单。如果没有在用 Gitlab 又想自己架设 CI 服务的话是个不错的选择。 Concouse CI 提供了 Docker 镜像,部署起来相当方便。不过可能会踩到一些坑。
公司主要用 skynet 和 cocos2d-x Lua 来开发游戏。两者都采用了嵌入 Lua 来开发。因为性能,要和原生代码交互等原因,需要在 Lua 和其它语言之间进行交互。最近做了挺多这样的工作,积累了一些心得,会陆续总结分享出来。 这一篇是 Lua C API 的简单介绍。
最近已经把 Bear 作为自己的主力笔记应用了,之前是同时用 Day One 和 Ulysses 。Ulysses 还会偶尔用到导出和发布到 Medium 的功能,以及 把富文本或者网页上内容转成 Markdown ,Day One 基本上不用了。 Day One 和 Ulysses 都是很优秀的笔记应用,但是都会有一些不符合我使用需要的一些地方,导致不得不两个一起用,形成互补,但是内容分散在两个应用里还是非常不方便。而 Bear 的出现基本满足了我的需求。
UCloud API 需要把所有请求参数拼接起来进行签名。在 Paw 中测试 API 时可以添加 URL Params…
最近看到一篇文章详细说明了如何通过 Redis 获得 SSH 登录权限。简单来说就是如果 Redis 开放了外网端口访问,又没配置防火墙,也没有配置任何 Redis 的连接验证,而且还是用很高权限的用户在运行 Redis,就可以通过 dump 数据库把任意 key 注入到 authorized_keys 文件中,从而获得用户的 SSH 登录权限。条件很苛刻,但是很容易自动化,估计还是可以扫描到不少肉鸡的。 比较惭愧,最近部署的一台服务器就被该方法攻击了。主要原因是之前我已经书面说明了防火墙如何配置,所以想当然的认为拿到的机器已经配置好了。为了让 Redis 在内网内能访问,配置脚本中将监听的地址改成了 0.0.0.0,也没有配置连接验证,结果就是任何人都能连接上这个数据库。不过因为还是用的单独的 redis 用户运行,权限有限,攻击者并没有拿到 SSH 登录权限,只是把数据库清空了。所幸是测试服务器,数据库中的数据并不重要。 下面说明下我所了解的保护服务器安全的一些常识。