“小博客站点没有攻击价值”这个观点,是个很害人的观点,特别是对很多小白站长们来说,因为现在的互联网环境下攻击你的服务器已经不需要“价值”了,攻击你想要的是你的服务器资源,比如:端口、IP、CPU、硬盘、内存这些,用来当做“肉鸡”出售给需要的人、用来当做“挖矿(可以理解为是赚取比特币行为)”客户端等等。甚至可以说攻击你服务器或者网站的仅仅是个自动执行的爬虫代码而已,无人值守型的还是。所以,不要再抱着“小博客站点没有攻击价值”这个观点来蒙蔽自己了,否则那就真的是“麻木不仁”了!
最近明月碰到了不少站长们的求助都是涉及网站安全的,几乎清一色的不是网站被篡改了就是服务器遭到了入侵,表现形式也是各式各样的,如: WordPress 管理员账号被锁定篡改、服务器密码泄露被人登陆操作、网站被植入恶意跳转劫持代码等等,可以说什么样的情况都有,这些网站几乎都是个人博客一类的站点,也就是大家经常说的“小博客站点没有攻击价值”这类网站。
先不说为啥“小博客站点没有攻击价值”也会被攻击和破坏,明月针对这些站点的情况作了一个简单的分析整理,最后得出的结论凡是被攻击破坏的站点几乎都存在安全上的“疏忽”,比较显著的就是「灯下黑」隐患——账号安全,这里的“账号安全”不是简简单单账号密码长短复杂程度,而是“账号”层面的安全意识。
今天说到的账号涉及服务器 root 账号、数据库账号、站点 FTP 账号、 WordPress 管理员账号以及 WordPress 普通用户账号,所谓的「灯下黑」隐患主要表现在很多站长为了图省事儿上述账号名称和密码都是一样的来使用,无论几个站点数据库账号一律用 root 账号和密码来连接,服务器文件的上传、下载一律使用服务器 root 账号来操作,这样看似效率很高,其实是最不安全的,因为一旦某个环节出现了漏洞被人利用就可以轻松获取到你服务器、网站、数据库的最高权限账号 root 的密码,有了 root 权限的账号密码那么你的服务器、网站、数据库就跟脱光了衣服的美女一样彻底毫无保留的呈现给了别人,然后会发生什么大家自行脑补吧?可以说在文章开头提到的被人攻破的博客网站都多多少少存在上述的这些关于账号的隐患问题,并且大部分都是这样被攻破的。不要怀疑,有时候攻破一个网站或者服务器就是这么简单。
那么我们应该如何防范这类隐患带来的安全危害呢?很简单就是科学的使用这些账号,下面明月给大家一一讲解一下:
服务器 root 账号
无论是 Linux Sever 还是 Windows Server 服务器都有一个所谓 root 权限的账号的, Linux 里一般默认就是 root, Windows 里一般默认是 Administrator,这个账号在操作系统里被赋予了最高的权限,传说中的“删库跑路”都是在这类账号下才会发生的。对于新手或者非老手的站长们来说明月不建议大家修改 root 权限账号的默认名称,因为这会带来一些混淆问题,保持默认即可,都知道 root 是最高权限的账号并不意味着谁都可以轻易获取到密码的,这是衡量一个操作系统安全性的重要指标之一,所以所谓的“默认账号名称有安全隐患”之说是很难成立的。至于说服务器 root 账号如何规避安全隐患最好的办法,以 Linux Server 为例就是尽量少用 root 账号登陆服务器,养成用非 root 权限账号登陆服务器的习惯,在需要 root 权限的时候善于利用 su、sudo 命令来获取 root 权限即可,这样做的好处是在登陆服务器的终端电脑上即使有安全后门和程序获取到了你的登陆密码因为不是 root 权限的其破坏性就可以控制在一定的范围内而不是带来灾难性的后果,至于说对本地电脑安全“迷之自信”的站长,你随意吧!
数据库账号
数据库对于网站来说是至关重要的,所以数据库账号的安全重要性仅次于操作系统的 root 账号,甚至借助于数据库的账号可以通过系统漏洞变相的获取到操作系统 root 账号权限。同样的数据库账号也有一个 root 级别的账号,默认账号名称依然是 root( Linux 操作系统、MySQL 数据库的 root 权限账户名称都是 root,这是在内核里都写死的,那怕你赋予别的账号名称是 root 权限了,这个默认的 root 账号依然是保存并有效的。)以 MySQL 为例,在你的系统里安装的时候一般都会提示你创建 root 账号的密码的,这个密码建议妥善的保存和记录,细心的站长们可能会发现在 MySQL 里创建数据库的时候同样会提醒你创建数据库账号和密码,这里的账号和密码是针对你创建的这个数据库的,不是 MySQL 这个数据库系统的,这点大家一定要区分理解。保证数据库账号的安全最重要的环节就是一个数据库一个账号密码并且就用这个账号和密码来连接使用这个数据库,这里严格杜绝犯懒病统一使用 MySQL 的 root 账号连接使用数据库,因为很多时候连接数据库时这个密码和账号是明码保存的,比如 WordPress 的 wp-config.php 文件、 Typecho 的 config.inc.php 文件等里面都是明码保存的,一旦被人获取到 PHP 文件读取权限你的数据库 root 账号也就泄露了,这样你的整个 MySQL 里的数据就是“公共厕所”的存在了。 而一个数据库一个账号密码的方式就会把这种风险牢牢的限定在“一个数据库”里不会波及 MySQL 里其他的数据库,当然这是指一个服务器绑定多个站点的情况下,总之将账号权限涉及面限制的越宅越安全,带来的损失也越小。
站点 FTP 账号
明月一般在给人部署服务器的时候习惯性的一个站点配置一个 FTP 账号,很多站长说有点儿多此一举,明月倒是不这样认为,FTP 账号存在的意义主要就是需要设计站点文件修、写、读的时候会很高效和安全,虽然 WordPress 支持后台编辑 PHP 文件,但是 WordPress 目前已经不建议大家这样来操作了,因为这真的是很不安全,有些浏览器扩展利用这点就可以不知不觉中给你的 WordPress 站点植入恶意代码。所以一个站点拥有一个独立的 FTP 账号还是很有必要的,当然也有站长嫌麻烦直接使用服务器 root 账号来 FTP 登录这样的方式明月是不建议使用的,偶尔为之可以,长期如此就是“招蜂引蝶”的行为了。服务器端口漏洞、本地电脑后台木马程序、浏览器流氓行为都可以通过你这种“招蜂引蝶”的行为获取到 FTP 的 root 权限,一旦被获取到这个权限,你服务器上的 PHP 源码文件就彻底的对别人开放了,也就意味着你的服务器可能被彻底攻破,“删库跑路”这种事儿也就是分分钟就发生了。所以 FTP 账号的使用上依然要遵循数据库账号的使用规范,一个站点对应一个 FTP 账号,将此账号限定在这个站点根目录,不在这个站点目录范围内的一律没有权限,这样也就没有安全隐患了。
上述可能大家看了会感觉非常的绕,其实 Linux 的账号体系是承金字塔形状的,最高级的就是 root 权限的账号,拥有一切生杀大权。这样的账号是把双刃剑,在这样账号权限下的误操作可能带来的就是灾难性的后果。所以最好的办法就是使用非 root 级别的账号是最保险的,不用担心误操作(没有权限的误操作是不会生效的),也不同担心密码泄露被人利用(不是 root 权限很多涉及读写的操作都需要 root 权限实时验证)。
WordPress 管理员账号
关于 WordPress 管理员账号其实大家都非常的熟悉了,账号名称你可以随意,只要不是默认的就可以,默认的管理员账号很容易招来“枚举”型恶意登陆这种暴力破解攻击。一个让人不容易猜到的管理员账号名称就可以很好的规避这种攻击。至于管理员账号的密码,明月比较喜欢 WordPress 后台的随机密码来生成,虽然比便于记忆和输入,但是借助复制粘贴还是非常的方便的,很多时候自己都记不住的密码或者说无法手动输入的密码才是最安全的,因为 WordPress 管理员账号密码登录都是在浏览器里进行的,浏览器的安全也成了我们密码泄露的最大隐患,特别是喜欢使用除 Chrome、Firefox 之外的国产浏览器的站长们要尤其注意国内众多所谓高速浏览器都是无节操、无底线的,记录用户的输入几乎都是业界公开的秘密了,加上当前国内的安全软件除了推送广告和全家桶的“不务正业”,各种后门、木马、充斥各个电脑终端,过于简单的账号密码真的是没有什么安全性可言的。至于说你装了“某卫士”、“某管家”、“某霸”之流,算了,不说了,洗洗睡吧,孩子!这是一个“套路”的世界。
今天这篇文章总体感觉有点儿“乱”,主要是有些思路很绕,如果你对 Linux 有深入的了解会很好理解的,否则看着会越看越迷糊。如果你当前正面临着安全问题困扰自身又因为各种原因无法应对和解决,明月建议你选择付费来让专业的人给你解决这些问题,比如明月的收费服务,嘿嘿。
原文链接:https://cloud.tencent.com/developer/article/1426931