最近学校的板报上,常常看到大字写的“青春、青春”,可能是5.4这个节日的原因。
青春,其实你也不必再自欺欺人了,你可笑的青春早就在18岁那年,从你说不再写故事的那天起消失了,连背影也没有留下。三年,你站在21岁的尾巴回头看,其实疯狂的也就是那几年,过了就再也回不去了。
昨天晚上偶然在邮箱的垃圾桶里找到一封主机商给我的邮件,说主机即将被关停,我需要更换机子。这台VPS上放了许多东西,都是我自己的研究成果,包括我的博客、我的WAF、还有前几天开源的Minos。
不知道我究竟是不是一个能够坚持的人,但我坚持过几件事,写博客是一件,是最珍贵的一件。我见过很多人很多博客,多半是半年不更新,更新等半年。然后买一年的域名,域名过期了也就不写了。但我却坚持了两年半。
我常常会翻看自己的博客,从第一篇日记开始看:《我的学习与成长》。不知道当初我抱着怎样的心情写下这段文字,现在看起来其实挺可爱的,我确实做到了当时自己写的那些东西,我依旧喜欢分享,我能上网已经两年了,我也学会了C语言和Windows的很多API。
只是《副站》再也不在了,我都忘记什么时候副站消失的,大概也不是和流量有关吧。
经常有人问我,我是怎么成长起来的。我今天在这里分享一个最简单的答案:对技术,我是有目标的,我的目标很简单,就是让我的博客不停更。如果有一段时间我博客一个月没有新文章,我就会特别着急,我会想我能研究什么东西,然后写一篇日记。
当然,慢慢的我发现,自己经常会有时间研究各种东西(不用愁没有东西写),当然也会失败,失败并不可怕,可怕的是没有竭尽全力就半途而废。我也做过很多半途而废的事情,也说过很多不负责的言论,但这些点滴都在我的博客里我永远不会删。
不过,该关停的还是要关停,该搬家的还是要搬家。
服务商给我换了个vps,但系统没法备份过来了,我需要重装系统。我觉得,也的确到一个对自己vps大更新的阶段了。我毫不犹豫地安装了最新版64位debian8,linux内核是传说中无需重启即可打补丁的4.0+。
装好以后感觉一阵爽。考虑一下,我需要安装nginx + php + mysql才能恢复博客。当然,还有WAF,所以我选择安装openresty(http://openresty.org/)。openresty是一款基于nginx的全功能web服务器,打包了很多必要的module。其中就有lua,openresty是自带luajit、nginx-lua-module的,所以我可以无需再手工编译lua相关的模块。
php我选择最新的php 5.6.7,mysql选择5.5。
其他方面,我选择软件都尽量选择最新且稳定的版本。~~这里亮出来博客的一些配置,不希望被日呀。~~
当然php和mysql我没自己编译。特别是php,要编译的东西太多了(特别是一些扩展),直接找了个新的源apt-get装好。这一次博客的更新,我希望是一个新的开始,我也会迎接下一个三年。
Linux vps的配置,我大一大二的时候一直依赖于“一键安装包”,我用过很多一键安装包,包括windows下的“wamp”、“phpstudy”、“phpnow”,Linux下的WDCP、LNMP、AMH、Kloxo。一键安装包对于当时的我来说确实带来了很多便利,我腾出很多学习linux的时间去先学习写代码,同时又能把博客持续开办下去。
对于种类繁多的一键安装包,windows我不想说,linux下的这几个一键包我说下体验:
- LNMP:简洁、方便、安全。因为这个一键包是没有WEB页面的(所以安全),只是一个单纯的一键包,只是负责帮你安装好nginx、php、mysql,甚至apache。所以我用的最多。
- AMH:这个面板开源,而且web控制面板很友好。最大的优势是他有很多官方、第三方的插件(比如有个FTP自动安装+创建账号+分配配额的插件),可扩展性非常好。缺点是好像只支持nginx(不知道现在怎么样了)。
- WDCP:这也是一个有web页面的面板,在我看来显然是不及AMH的。他不开源,而且漏洞特别多。但这个面板是支持apache的,当时我需要一个apache的服务器,所以选择过这个面板。
- Kloxo:这个我只用过一次,印象不深。我记得这个包好像很重,而且是国外的面板,出过很多问题当时的我解决不了,后来就卸载了。
我是一个并不喜欢折腾的人,我一旦学习一个东西,我会去规避那些不重要的知识。我深知,一旦一个东西折腾起来,很可能就是无边无际的,而我并没有那么多时间。所以一键安装包对于一个linux新手来说,是一个很好的入门工具。
我后来做的很多研究,都是基于LNMP一键安装包环境下的(比如 https://www.leavesongs.com/PENETRATION/nginx-safe-dir.html)。包括现在的我,在编译nginx的时候还是会选择装在/usr/local/nginx中,我的web目录还是会选择/home/wwwroot,即使我不再使用一键安装包。
很多东西慢慢会变成自己的习惯,每个程序员、每个黑客都有自己的习惯。我知道这些习惯很可能变成别人入侵你的一条途径,但我更喜欢做一个真实的自己。安全界有个很知名的理论:“不能够相信用户的所有输入”,但我坚决不支持这句话被放到现实生活中,我选择相信而不是怀疑。怀疑的生活会变得很累,如果你总是考虑怎样去防范他人。
不过的确是我和一键安装包作别的时候了。在慢慢学会了linux简单使用后,深入学习的过程中,一键安装包就变成阻碍我前进的绊脚石。它通常安装的软件库很固定(扩展性不行),版本固定且太低,比如wdcp我记得当初装上的php版本才5.2,LNMP可以选择安装的版本也只有5.3和5.2 。
5.3、5.2早就已经不再维护了,以后爆出的所有php漏洞都会因为5.3没有补丁而打中它,而大多数国内厂商却还坚持使用这样的版本。我觉得这样的现象一半是因为开发者的问题,很多程序甚至只支持在5.2环境下使用,还有些程序是因为使用了破解版的某某程序,导致只能够运行在5.2下,因为高版本没有破解。
还有一半是因为运维的惯性与惰性。运维多半是为了保证系统的稳定,不去升级软件版本。说到底,升级也是一种折腾,如果不是万不得已的情况下(万不得已,比如心胀滴血漏洞,这种严重影响系统安全的情况下),不会去选择升级。求稳是一种消极的心态,很多运维当一天和尚敲一天钟,明明现在的服务器运行稳定,为何要去折腾着升级。
当然,我认为这样的想法很正常,一个中小型企业运维可能就一两个,如果你升级导致企业网络出问题了,那么全部责任就是你担着了。
对于我这种个人玩家,就完全不存在这种顾虑。装坏了又怎样,大不了重新装,大不了博客宕机几个小时。最重要的是升级的过程中培养解决问题的能力。
还是那句话:问题总会不可避免地出现,解决问题越多,成长越快。
最近在PHP里被炒得很火的一个“==”、“===”的问题,其实已经被说了好多年了。那么,你如果用过php5.5以上的版本,简单使用这几个函数做密码的加密与比较,就可以避免类似问题了:password_hash、password_verify、hash_equals。
举这个简单的例子,只是想说明,php自身在不断改进自身的缺点,但这一切改变也需要我们开发者去支持与适应。如果开发者还保着老思路去开发程序,还在用5.2、5.3这种低版本的php,那么php的安全性究竟什么时候才会改变?
按Ryat的说法就是:“这个怎么能算 PHP 的缺陷?明显是程序员的脑子有缺陷。。。”
一句打趣的话,但说出来确实无法反驳。
作为一个黑客,有时候我的确很希望php5.2永远不消失,那么我能挖到更多漏洞。但作为一个安全从业者(或即将的安全从业者),我更希望能推动安全技术的进步,而不是靠漏洞闷声发大财。
再说说Minos吧,其实很多话我在Minos置顶的文章《关于Minos,我想说的一些话》里都说了。有些人可能觉得我是一个激进分子,神马东西都想要最新的。好叭我承认比起老旧的东西我更喜欢新的,这也是我决不能偷懒的原因之一。
Minos原来放在我的VPS上,这次事情以后我把Minos搬家到香港另一个VPS上了。两个机子的访问速度都不错,当然也是一分价钱一分货,linode要10刀一个月,HK的机子也要10刀左右一个月。
我还记得3年前我,甚至4年前我读高中的时候,曾经多少次用的免费主机和免费域名(羞愧的是免费域名我现在还在用,比如 http://waf.science/)。倒不是我真穷到买不起虚拟主机,当时没有办网银也没有支付宝的情况下,我有次为了买一个域名还得让别人帮我去银行汇款。
高中喜欢写一些比较文艺的博客,现在想来,像lofter、FarBox之类的第三方平台也能做到,不用再单独买博客空间了。
不过虚拟主机的价格也是慢慢变得便宜,我高中一直续费的主机叫保罗主机,当初保罗的一个工作人员告诉我他是我的初中校友,我惊讶了很久。当时的保罗主机10块一个月,而且是美国的速度并不理想。而现在很多虚拟主机价格都低至5、6块,而且多半还是HK和日本的。
我的博客曾经在虚拟主机中住了一年半载,包括wopus、野草主机、枫叶主机。wopus价格比较高,但面板是cpanel,相对功能比较多,野草和枫叶都是属于那种“廉价多销”的类型,管理面板是directadmin。
最后结果是,野草主机说我的博客是黑客网站,强行关闭了。搬家到枫叶主机后,有一次遭受了DDOS攻击,耗尽了流量,我也只好搬出来。我下了决心,一咬牙买了现在的VPS。
虚拟主机对于财力不足的同学,还是很合适的,正常的虚拟主机价格在5~10/月,一顿饭的钱而已。对于选购虚拟主机的同学,我也有几个经验:
- 我只购买WHMCS+cpanel/directadmin面板的虚拟主机。whmcs是国外一款收费的虚拟主机销售系统,cp和da面板也是国外收费的虚拟主机管理面板,只有配备了这样架构的主机商才不会很快跑路,毕竟这三者的价格都不菲。(我曾经用免费的域名+30一个月的vps+免费的虚拟主机销售系统+免费VPS面板搭建过一套IDC,像这种近乎0成本的IDC可信么)
- 不要购买淘宝或用N点这类国产面板做的虚拟主机,安全性根本得不到保障,这些虚拟主机妥妥的跨站,想黑你只要买/黑个同服的站点就好了。相对的,DA和CP面板在跨站方面做得很好,在没有0day的情况下不存在被跨站的风险。
- 速度理论上香港>日本>美国,但实际上速度跟服务器有很大关系。现在市面上虚拟主机大部分是Apache,很吃内存和CPU,其实就算不是Apache,如果一个VPS上开的站太多(>100),速度绝对降下来。特别是大多数站都是Wordpress,对速度的影响很大。所以,能月付就先月付,尝试效果和速度以后再考虑是否季付或年付。
对于我来说,自己挖洞的一些积蓄也能把博客一直续费下去,所以我选择更稳定自定义性更好的VPS。
说了这么多,分享了三年里关于自己博客、VPS的一些想法。故事和人生总是三年三年地过,可能是因为自己的感情还没有深到能一下写下十年的东西。三年是一个节点,真想有那么一天我能回过头,告诉三年前的自己:
我依旧喜欢分享,我能上网已经两年了,我也学会了C语言和Windows的很多API。
我做到了很多你当年想象中的事情。