Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

因为放在VPS上的博客一直Nginx 502和500,我去看了一下access.log,不看不要紧,一看下一跳。我的博客是个没多少访问量的博客,竟然每秒也能产生数十条的log,而最糟糕的是,这些log,都指向了同一个文件,xmlrpc.php。

这个xmlrpc.php,其实是WordPress博客提供的一种API接口,如果你使用Live Writer或者MarsEdit这类软件,这个xmlrpc.php就是必不可少的一个东西了。其实就是使用xml文件描述的,远程方法调用。频繁地访问这个API,非奸即盗啊!试密码,或者发垃圾评论,或者发垃圾文章,太糟糕了。虽然这么久了,没有被攻破,但是看着总归不爽。

一般方法是将访问的IP都找出来,然后全部iptables禁用掉。如果你不用客户端,直接把xmlrpc禁用掉好了,省得让贼惦记着。

1
2
3

grep "POST /xmlrpc.php" access.log* awk '{print $1}' sort uniq -c sort -nr

上述命令,用倒序列出所有攻击得IP和攻击次数,对于攻击最多的,直接iptables就好。

然后,以前ishow也谈过的,ssh试密码的问题,可以对auth.log搜索一下“Failed password”这个关键词。我看了,我自己的,是没有的。又看了管理的两台朋友的服务器,都有10万这个量级的攻击次数。我大体想了想,可能因为我一开始习惯性更换了sshd的端口,导致攻击者找不到目标了的关系。所以这个问题,我建议直接更换sshd的端口,很方便。

应朋友的要求,帮他做了一个WordPress的镜像站点。一般的个人博客是用不着做镜像站点了,就我的观点来看,如果不是追求极致的访问速度,一般都没有必要做镜像站点。但是如果为了服务的稳定性,做镜像站点还是有必要的。比如,创业团队用廉价云服务器来提供Web服务的情况下,受到国内云服务质量的影响,会经常停服,如果对稳定性有极致要求,就需要多点、多机房去部署。也就有了镜像的需求。

阅读全文 »

http://stackoverflow.com/questions/172303/is-there-a-regular-expression-to-detect-a-valid-regular-expression

由此衍生的一个问题,是不是可以写一个正则表达式,来判定一个字符串是不是正则表达式。

答案是否定的:

http://stackoverflow.com/questions/2789407/regular-expression-for-regular-expressions

昨天晚上,我打算自己实现一个使用Redis作为对象存储的模型,并且提供一个类似CActiveRecord的接口,做事情之前,我非常小心的搜索了一遍,基本确定没有人已经实现过我的理念,所以放心大胆开始写了。在开始真正的对象存储模型编写之前,我还是忍不住自己创造轮子,就是用CCache接口封装Redis,开始我没搞懂addValue和setValue有什么区别,就按照我一般使用的经验去实现了,然后今天早上,我在别人的项目YiiRedis里看到了一个RedisCache的实现,发现跟我写得很不一样,主要是一上来没看懂,就觉得人家写错了,还跑twitter上骂了一句,哈哈,太傻逼了。

阅读全文 »

工作中,发现鄙厂使用的服务器监控系统,非常牛逼,CPU,内存,UDP,TCP,eth包量,各种监控应有尽有,此外,还有自定义上报。不光上报,还能对上报数据做绘图,异常数字报警,能发短信、邮件、RTX消息、微信消息等等,无所不能!于是乎,不禁对此类系统神往之,要是自己也能有一套就好了。于是,我找到了Zabbix。

阅读全文 »

如题,一般我们写Shell脚本的时候,都倾向使用绝对路径,这样无论脚本在什么目录执行,都应该起到相同的效果,但是有些时候,我们设计一个软件包中的工具脚本,可能使用相对路径更加灵活一点,因为你不知道用户会在哪个目录执行你的程序,就有了本文的题目。

阅读全文 »

在我印象里,我大概做了许多次这个事情了,拿到一台新的Linode,或者将某个Linode实例彻底清空而变成新的Linode,然后从0开始装成一个Web Server。本文,我就记录一下这个过程吧,省得以后用到了,又去各个服务器上拷贝。

阅读全文 »

其实一直以来都没把nodejs当成一回事情,看到广大前端同学那个雀跃劲,好像得到个宝一样。不就是又多了一个后端语言么?不就是语法跟js很像么?那又怎么样?其实后端语言多的很,node.js单从feature上看,貌似没什么绝对优势,要说有的话,我觉得就是js语法了~估计就这一点,就够博取一大票前端开发同学的好感了。

今天打开主页看了下,感觉还是不错的,小清新的一个技术,把Google的V8引擎一封装,然后弄套包管理,就吭哧吭哧上线了,制造一个技术,还真容易,难为那么多人为它写插件。

如今的互联网高度异构,然后大多数产品以服务形态出现,久而久之,服务的对接势将成为必然,又由于js浏览器端语言的天赋,所以很多Service都提供js调用的接口,如果说,有一门用js解释器来运行的后端语言,作为异构网络的粘合剂,那其方便程度可想而知了。从这个角度看,nodejs还真是解决了一大难题 呢!

其实很早就知道了GitHub,我看网站上的注册时间,竟然追溯到2010年的7月,那个时候,对Git很陌生,对GitHub更陌生,就知道是一个写代码的社区。连写代码,都可以弄个社区出来,实在是佩服老外的想象力。

阅读全文 »