Browsed by
Author: YI

SSH 配置证书登录

SSH 配置证书登录

SSHd 配置采取了一些安全措施,比如:修改端口、禁止 root 远程登录(这里)、启动 fail2ban 防止恶意登录(这里),等等。目前看这些措施基本满足了日常的维护管理需求。

通常还会采取证书登录方式,禁止密码鉴权登录。不过以往考虑到密码方式更方便,因此没有动力去修改。时间就这么过去了……

最近登录服务器检查日志, 惊讶地发现 fail2ban 每日的日志居然有十几M之多,全是各类奇葩以各种方式尝试登录 SSH。虽然 fail2ban 工作得很好,但是万一出现了 bug 呢? 万一哪个变态就是锲而不舍、经年累月地尝试登录呢?应该下狠手,让老铁们彻底绝望,因此决定禁止密码方式登录,要求采用证书登录。

配置不复杂,涉及客户端生成证书密钥,以及将公钥上传到服务器等。主要参考 Linode 的两篇配置文档(这里这里)。 以下是详细步骤:

生成证书

客户端也是 Linux 系统,因此相当简单:

ssh-keygen -b 4096

该命令在当前用户的 .ssh 目录下创建了两个文件: id_rsa 以及 id_rsa.pub 。

其中 “id_rsa.pub” 是当前用户的公钥文件,将其上传到服务器上,然后添加进 ~/.ssh/authorized_keys 文件中:

cat id_rsa.pub >> ~/.ssh/authorized_keys

添加完成后,服务器上的 id_rsa.pub 文件不用再保留,删除即可。要注意,authorized_keys 文件应该设置为别人不允许访问,确保足够的安全性。例如设置文件权限为600:

chmod 600 authorized_keys

当 SSH 客户端登录时, SSHd 默认读取该用户的 authorized_keys 信息进行证书鉴权。

修改 /etc/ssh/sshd_config 文件

PasswordAuthentication no

然后重启 sshd 即可:

sudo systemctl restart sshd

之后,客户端如果采用密码鉴权方式登录,或者粗暴破解,将被无情拒绝。

如果有多个客户端需要登录服务器,则需要各自生成证书,并将公钥上传到服务器,并添加到 authorized_keys 文件中即可。

Cloudflare 返回的DNS结果

Cloudflare 返回的DNS结果

最近查一个客户遇到的 SIP 呼叫问题,发现在检查 DNS 记录时有问题,没有正确获取 DNS 记录。切换了几个 DNS 服务器测试,只有 Cloudflare DNS 服务器(1.1.1.x 系列) 返回的DNS记录会触发问题。

这并不是说 Cloudflare 的DNS记录有错误,而是我们自己实现的 DNS 库没有考虑到该记录的不同寻常之处。Cloudflare 的返回结果确实有点与众不同。

下图是Google DNS 以及 Ali DNS 返回的DNS结果,请注意其中的 Name 字段的内容(0xC0 0x0C)

Google DNS 结果
Google / Ali DNS 返回结果

很明显,这种DNS结果采用了 compress 方式,通过 offset 来获取真正的Name。图中的 0x0C 实际就是偏移量,指向了包中的另一处地址。Compress 方式最直接的好处就是节省了包大小。

而 Cloudflare 的 DNS 结果如下图所示,直接将域名包含在 Name 中,以 0x03 标注开始,以 0x00 表示字符串结束。不再需要偏移指向其他地址。

Cloudflare 的 DNS 记录
Cloudflare DNS 返回的结果

这种方法的好处是够直接,不再需要跳转获取真实的域名信息。当然坏处是增加了数据包的大小。

我们测试了网络上大部分的 DNS 服务器,目前仅发现 Cloudflare 采取了这种方式,其他服务器都是采用 compress 方式。

站在“人”的体验角度,似乎 Cloudflare 更合理一些。但是要注意,compress 方式更符合计算机的处理,毕竟前面的 Queries 部分已经解析过 Name 了,没必要再解析一次。另一方面,直接 offset 寻址,也远远快于再一次通过判断0x00来解析Name 字符串。

因此我个人认为 Cloudflare 的处理方式,即拖慢了速度,又增加了数据包消耗。当然,以目前计算机的处理能力以及网络速度,这些都是浮云。我们的解决方式也是淡定地接受这个结果,并修改 DNS 库进行适配即可。

在本次查问题中,测试了网上公布的香港 DNS 服务器,全部拒绝了来自大陆 IP 地址的 DNS 请求,真有意思。

做馒头、肉包子

做馒头、肉包子

包含两个部分:(1)和面 (2)做肉馅。其中,对做馒头而言,只需要关注“和面”这部分即可。

与传统的中餐描述方式类似,没有精确描述各种食材的用量,只会描述诸如“一勺”、“少许”等模糊字眼,默认是我自己家的普通勺子,或者我自己认为的“少许”,毕竟佛曰“不可说”。

和面(做馒头)

(1) 40度左右的温水一小碗,加5克酵母,一勺白糖,发酵大约10分钟。发酵成功时,小碗内应该明显看到发酵起来的泡沫。

(2)面粉8大勺(可能有500克或者更多),少量、多次倒入上述发酵水,用筷子不停搅拌面粉。如果喜欢的话,此时也可以加入新鲜牛奶,尤其是喜欢奶香馒头的话。最终面粉应该搅拌成絮状、小块状。

(3)揉面大约十分钟。表面光滑、不粘手即可。

(4)盖保鲜膜,密封发酵到两倍大小,时间大约是一个半小时,或者两个小时。

(5)发酵后重新揉面排气,大约10~20分钟,其中分批加入少许干面粉,这样的口味会更有嚼劲。

(6)切成小块,放入锅中(铺湿纱布干纱布),盖盖子,二次发酵大约20分钟。

(7)冷水上锅,大火15分钟(如果是肉包,则是20分钟),关火焖3~5分钟后再揭盖。

肉馅

(1)制姜葱水: 大葱一段,切丝;生姜一块,去皮切丝;少许花椒;放入小碗,倒入开水浸泡,直到开水变凉,去除这些材料,只留姜葱水即可。

(2)两根小葱,洗净后切葱花,备用。

(3)五花肉(或者前腿肉)切小块,搅碎成肉馅。

(4)肉馅入盆,加入上述葱花、加入一个鸡蛋(可以有蛋黄)、适量生抽蚝油五香粉(或者十三香)、胡椒粉,顺时钟方向搅拌。中间分批次加入少许生姜水(如果是饺子馅,不用加水),注意始终同一个方向搅拌。

(5)最后加入适量香油,继续顺时钟方向搅拌。肉馅略显粘稠即可。

(7) 如果希望吃白菜猪肉馅,则按照1:1比例配置白菜(比如500克猪肉,加500克白菜),白菜之前应该切碎,放适量盐,然后保鲜膜腌制大约10分钟,用纱布包住白菜碎,将水挤掉。将去水后的白菜馅和肉馅混合,同样顺时钟方向搅拌即可。

升级 windows 10

升级 windows 10

目前日常使用的是一台老旧的Thinkpad T430,运行 windows 7 (专业版),以前也收到过windows提示升级 win10。一来没有时间, 二来一直工作很好, 因此完全没有升级的想法。

这个春节由于流行肺炎的原因,基本上就呆在家里了,极度无聊。想到windows 7已经结束生命周期,上网搜了搜,似乎微软仍然保留了免费升级的通道, 干脆就升级windows 10算了 。

从微软的网站下载 media creation tool,选择升级现有电脑,过程非常简单顺滑。个人配置也完全平滑的升级到新的系统,基本上除了点击next,就没什么可以做了。不得不说, 在工程兼容性方面,微软简直做到了极致!

升级后的win10桌面
windows 10 桌面

平时常用的软件都没有问题,非常顺利。新系统与win7有些差异,略感怪异,尤其是那个磁贴(谁设计这货的?),实在太不好用,而且老是出意外,希望以后能逐步适应。

2020-01-28更新: 不知道是什么原因, 笔记本的风扇一直转,时大时小,以前windows 7时没有这种现象。看了任务管理器,CPU和内存占用都非常小,真是奇怪。

推荐一个lua的小插件

推荐一个lua的小插件

以前一直用Geany编辑器编写Lua程序。其实这个工具很垃圾,只是别的工具更垃圾。要求也不高,无非就是变量、函数等跳转、列表,工程范围内查找,基本的编辑功能即可,不要求调试功能。

平时写脚本一般都是采用visual studio code,很棒的工具,就简单编辑功能而言,vsc 做得相当好。因此也试图尝试 vsc 的插件,看看能否满足上述编写Lua脚本的要求。

看到 vsc 推荐作者sumneko 的插件,名字居然就叫 Lua,如下图所示。简单试了一下,感觉不错,符合上述各项需求,值得推荐。

Lua 插件
Lua 插件
2019汽车年审

2019汽车年审

去年的流程基本类似,不过现在不需要上交警的网站预约,直接在“深圳交警”的微信公众号里就可以办理预约。

在深圳交警的微信公众号里,也可以直接查询和办理交通违章, 这个要赞一下。以前要专门跑一趟交警中心以及银行,现在轻松多了。当然,最轻松还是不要违章,那就什么事都没有。

预约时需要选择检测点,这个需要特别注意一下。比如我以往常去的检测点关门了,就要注意选一个新的检测点。好在检测点非常多,南山区、宝安区等都有很多,挑一个地理比较近的就可以。现在各检测点的服务态度都很好,毕竟很多工作都自动化了,大家都轻松愉悦。

今年的费用是290元,年年都涨啊!这个似乎只能向交管部门抱怨,检测点也只是按规矩办事。

提交资料包括:(1)身份证 (2)行驶证。我的保险是人保,没有要求提交保单。现场有些人被要求提交保单进行拍摄,具体情况也没有去做详细了解, 建议带上保单副本或者电子档以防万一。

现在检测流程非常舒服:将交通三脚架放副驾驶位置、 缴费、 然后将车钥匙给工作人员,就没有其他操作了,在检测中心的休息室等着检测完即可。

同样,只有一个年审标,没有单独的绿标。

快手菜:牛肉

快手菜:牛肉

内容主要来自微博视频:小颖美食

主料:牛肉,也就是一大块后腿牛肉。

辅料:辣椒、土豆、大蒜瓣。

调味料:生抽、食用油、耗油、黄豆酱、淀粉、胡椒粉。

(1)牛肉逆纹路切成薄片;

(2)一勺淀粉、适量清水,搅均匀,倒入牛肉中,再加入一勺生抽、适量食用油,手抓均匀,腌制20分钟

(3)适量青、红辣椒切圈,大蒜瓣切成末;土豆切成小块,泡水5分钟后,控干水分。

(4)锅中油烧热,倒入土豆,先炸一下,表面微黄即可,倒入盘中备用。

(5)牛肉腌制好后,加入黄豆酱、耗油、胡椒粉,搅拌均匀;然后一片片铺在土豆上面。

(6)水提前烧开,然后将土豆牛肉盘放入锅中,隔水蒸,大火10分钟

(7)另一锅中热油,炒香辣椒大蒜末,加入生抽调味,翻炒均匀,然后加入一碗水淀粉,煮到粘稠。

(8)牛肉蒸好后,将芡汁淋在牛肉上即可。

一道菜:鸡腿

一道菜:鸡腿

在网上看到的,略微作了点改良,适合自己就好,快乐做鸡!

主料:大鸡腿两个(注意,是大鸡腿)。

辅料:洋葱(一个,切片)、辣椒、生姜(四、五片即可)、大葱(一根)、大蒜瓣(四、五瓣即可,切片)、盐(?似乎不需要强调)、芝麻香油、蚝油、生抽。

(1)大鸡腿在40度的水中浸泡,约30分钟,然后清水洗净二、三遍,去掉鸡腿的血水。

(2)用刀背敲打鸡腿,让肉质松软一些,然后放入大碗中,撒一勺盐、一勺芝麻香油,手抓大约2~3分钟,让鸡腿和佐料充分混合,然后腌制10分钟。

(3)鸡腿放盘中隔水蒸,水开后,中火或者小火再继续蒸大约25分钟。

(4)稍放凉鸡腿,然后手撕成小鸡块。

(5)另起一锅,多放油,放入辅料(洋葱、辣椒、生姜、大葱),翻炒。待洋葱、大葱等基本变色后,倒入小鸡块、蚝油和生抽(事先可先调制好),稍微炒炒即可出锅了。