给 HAProxy 增加第三方登录保护

HAProxy 作为一个非常强大且高效的负载均衡软件,真的是想做啥都可以了。最近就比较头疼某个很多人使用的 SSH 端口整天被人扫,想做一个动态 IP 白名单。顺着这个思路下去,就做了一个 HAProxy 的第三方登录保护的方案出来。

SSH 端口的保护

由于 SSH 协议的鉴权通常没法做到 reject,我也不大想去研究协议的细节,于是就准备直接从 4 层 TCP 的位置去保护。HAProxy 端想做一个动态白名单,本来是想用 acl file list 实现的,然后发现只有收费版 HAProxy 才有一个定时重载文件列表的模块 lb-update。看了看 HAProxy 的管理接口似乎可以实现动态维护 acl 列表,于是准备写一个小的 Web 应用去维护这个列表。

仔细看了看这个接口,似乎还有一个 table 的特性更符合需求,还可以动态记录访问次数什么的,于是就搞起来了。 继续阅读“给 HAProxy 增加第三方登录保护”

趟水身份认证管理 IAM

身份与认证管理的大课题需要面对什么概念和难题?现阶段有什么技术轮子?LDAP、OIDC、RBAC 又是个啥?

这堆幻灯片是给 NetPlanet 准备的,经过了我 N 次砍内容以及可预见的推迟,感觉还是先发出来共享(peer review)好一些。

今天读了篇网课教学的文章,感觉可能还得加一些互动性的内容(于是相应地一些内容就会被砍掉),但总体来说干货就这些了。可能并不是那么系统性的严谨,但愿会对有人有帮助吧。

P.S. 看起来我博客万年没更新的 hacklog 插件出了点兼容问题导致 WordPress 在前台没法正常显示缩略图了,所以下面大概需要 2MB 流量,并且我还得找时间修 = =

继续阅读“趟水身份认证管理 IAM”

麻省理工的信息服务“客服”

最近听说,学校里有位新来的老师,登不上自己的学校邮箱,然后抱怨(翻译的版本俏皮了一些):

行吧,我试着在两个地方登录我的邮箱:(……),在哪边我都看不到登录页面。今日头条——都 9102 年了,电子邮件都已经 20 多年了。你们能不能招一些麻省理工的学生把你们的系统搞好……

不想评价这个老师的态度和“提问的智慧”(他的“建议”似乎也被自动忽略掉了),麻省理工的学生愿不愿意做这个工作也是个问号。不过我们可以类比一下,麻省理工自己的信息服务水平如何呢?他们会招“麻省理工的学生”吗? 继续阅读“麻省理工的信息服务“客服””

意想不到的「重设密码」挑战 / 理想园

去年我提了一嘴,现在在做一个客服的工作。不做不知道,电脑常识的下限真的让我永远想不到。

对方的提问常常让我反思,为什么会造成这种情况。作为一个技术员,换个角度看看普通人的操作,其实对更友好的工程设计还是挺有帮助的。

这一篇,来看个似乎简单、但不少人会有奇奇怪怪的问题的业务:「重设密码」。以下提到的虚构问题,基本上都有真实案例支撑,毕竟生活比故事更精彩。 继续阅读“意想不到的「重设密码」挑战 / 理想园”

猪年前夕的一点回望

预告:本文纯属个人的思绪宣泄。

时间真快呀,这可能对于所谓年轻人来说是一种新奇的感觉吧。都已经 2019 了,来一点什么十年挑战,然后就会想着怀旧,于是就发现自己已经再也不是那个「宝宝」了,自己却依然是一无所有。

这也是为什么这一年我写的东西越来越少的原因吧。除了抱歉之余,也请不要带着什么改变的期望。手头堆的事情太多了,写东西的(一些可能莫须有的)顾忌也越来越多了。

回想起来,2018 的上半年可能是我这些年来最充实的半年了,四处奔波,赚几份钱,认识了不少人,简历也莫名其妙地多了好多能写的东西。然而一切就在我夏天第二次从北京回家之后就结束了。可能是因为平衡,马上人就颓了下来。

继续阅读“猪年前夕的一点回望”

信息中心客服的 4 小时

中午 12 点,吃完午饭的我走进了学校信息中心的客服中心。正午的阳光透过落地窗从街头照进房间,显得有些慵懒。我找了个位置坐下,脱下外套,工服、工牌就位。

今天是我在客服中心上班的第三天,按计划还在培训的阶段。我跟第一次见的主管(老师)郭姐姐打了招呼,她就告诉我“今天有点难办,我去问问要怎么弄”。过了会她把她的主管带到了房间,说了下情况:下午这边只有我跟另外一位学生李斯,李斯老哥也没来几周,而我还在第一周培训。大主管问了问我培训的进度,接着问我:“你今天自己接电话感觉行吗?”我有点懵,就说“我试试吧”,两位主管接着就跟我说“有啥问题你让对方稍等,放下电话问我们谁都行,不用慌,大家都是提问题过来的”。

于是,我在我的工位坐下,登陆电话系统,打开工单界面,试了试耳机。两位主管还在谈笑风生的时候,我的第一个电话就毫无防备地打进来了。

继续阅读“信息中心客服的 4 小时”

对一列微信小程序比赛作品的想法

一堆事情没做,又厚着脸皮来写好久没有写过的博客了。今年真是神奇,参加了个小程序比赛,莫名其妙地进了地区选拔赛,虽然成绩并不理想(自费旅游),但也算是领略学习优秀大学生风采了。趁着比赛完想不到要干啥,北京的天也没黑,就斗胆来评论一下前十好了。

我来参加这个比赛的时候,想法是觉得,既然是小程序比赛,选题总该是适合小程序的,才能代表小程序的先进方向。一些 PWA 甚至网页就已经足够实现功能、又没结合微信小程序特点的作品,我总觉得蛮尴尬的。可能并不是每个人都会这么去执着平台依赖这个国内不大关注的问题的吧。答辩的时候并没想到要提小程序与 PWA 区别的思考,结果还剩了几分钟时间,后来发现一整天没人提 PWA 相关,想想还是挺遗憾。

先进一下前情提要。这轮选拔赛的前十都是有奖金的,其中前二可以晋级进入全国决赛。这个名次是现场公布的,不知道最后会不会公示。下面就按名次说好了,我也是这几天才第一次接触到这些小程序;如果没有特别说明,可以直接在微信里搜到这些小程序。 继续阅读“对一列微信小程序比赛作品的想法”

ROS catkin 和 catkin_make 在 overlay 上的区别

TL;DRW

catkin_make 先造的轮子,catkin 后造的轮子(看得到那个 shell 界面优化得也是出神入化了)。

overlay 是个啥?当你想把多个 workspace 同时使用的时候(通常是有一些底层的库被魔改的情况),就需要一层一层地 overlay,其中最底层是 /opt/ros/kinetic,然后就是一层一层的 workspace 了。

今天下午一不小心拿(MoveIt! 推荐的) catkin 做 underlay 的底层 workspace,后面一层的 catkin_make 就死活识别不到 overlay 了。最终两层 workspace 都用 catkin_make,成功。

查了下 catkin 的 issues,似乎是已经修复了 overlay 异常的问题(刚仔细看了下好像是读 underlay 有问题,还不大一样)?然而我用的 ROS Kinetic 下自带的依然有问题啊。