文章主要是针对Linux主机谈的。
一、堡垒往往是从内部被攻破的,小心你身边的人。
经验表明,绝大多数的网络攻击,来自同事、网友和主机用户。
这些人能直接或者间接地进入你的主机系统,甚至有可能知道你的密码。小小的疏漏,都会造成致命的错误。我曾经给我同事演示盗取他论坛密码,方法很简单,INCLUDE,然后ECHO,变量值就显示出来了,变量值里就存有密码,只有几行代码。我告诉他把密码直接写到论坛源码里去,这样就没事了。换个角度,你不是网管,只是主机上的用户,网管一个小小的失误,很可能会毁掉你的网站。
二、经常翻看服务器日志。
日志里有各种访问信息,通过分析日志文件,你很容易发现试图进入你管理后台或者试图探测主机的人。11月初的时候,以为学校的小路由器总断线,我改用服务器代理上网,用的是红帽子9。服务器运行不到一个月,我翻看了一下日志,发现至少有五个国家和地区的IP试图探测我的系统,有美国、韩国、日本、中国台湾、印度。于是我做了IPTABLES,对那几个IP网段做了屏蔽,倒是安静了一些日子,服务器上只产生了很少的日志信息。后来我发现,试图探测系统的IP有不少是国内的,屏蔽IP显然不是什么好办法,好好做做IPTABLES比什么都强。举个例子,我服务器上的SSH和WEBMIN服务限定为只有葫芦岛铁通的IP才可以访问,这样很容易查到试图入侵系统的黑客。说到翻看日志,我居然发现有网络监控部门的访问记录,劝大家以后开网站小心点,别以为别人不知道你做了啥~
三、别相信法律武器
如果你是政府网站的网管,你大可不必担心别人黑你,一般人他不敢。多数情况下,别人黑了你,你都没有办法。就算你有足够证据,也未必会得到法律的有效保护,更何况你的网站没有注册登记,被人黑了也就黑了,真是没处告去。所以安全防护还要靠你自己。
四、我的网站安全策略。
现在大部分的网站,尤其是单位和个人网站,都是用CMS做的。CMS一般都有漏洞,包括论坛在内,这是不可避免的,脚本对数据过滤不严就会产生SQL注入漏洞,你的数据库内容很可能被篡改。我是这么做的。
1、禁止FTP登陆主机,这么做很不方便,因为FTP空间经常使用。
2、把CMS源码文件OWNER设成ROOT,其实很简单,登陆超级用户后,拷贝一下目录就可以了。
3、改源码。因为CMS不会反复打开后台数据库,打开数据库的指令通常只有几条(多数时候是两条,前台源码里一条,后台源码里一条),过滤一下,很容易找到相应的脚本行。
4、ZEND优化类似编译,实际上它还有源码加密的功效,这样隐藏在源码里的数据库密码就不会露出来了。
5、一个数据库用两个用户名打开。MYSQL的权限管理可以到字段。添在你源码里的打开数据库的那个用户,权限尽可能降低,而另一个管理用的用户名,则拥有对数据库的全部权限。权限设好了,就算把管理密码贴到大街上,别人也奈何不了你。
6、该数据库原始文件权限,SU后拷贝一下目录,这样即使是数据库管理员,也黑不了你的网站~一般来说是不用这么做的。
7、物理上的安全措施,媒体资料、数据库、网站前台、后台分别放在不同服务器上。这么做有点BT了,不过安全没的说,除非关键系统,否则没必要搞这么严格。什么是关键系统呢?不只是国防、经济建设、金融等等系统才是重要系统,有一定规模的网站都属于关键系统,安全漏洞可能使数年心血毁于一旦。
五、我的具体做法
这两个月以来,我做了两个网站。一个是学校的www.lnjxgx.cn因为下学期要换别人做,现在已经废弃了,开学就要删掉了。我把数据库的权限设成“选择”,同时屏蔽了FTP主机用户。除非管理员,不然没人能黑掉那个网站(我现在是唯一的管理员)。当然,数据库不可写,APACHE要报错,我取消了APACHE和PHP的报错功能。
第二个网站是放假以后做的www.y768.com/mil,一个小小的音乐网站。只有大约1000首歌曲。别看它小,功能却很强大,我一个人整理资料,一天至少可以放一百张专集(大约一千多首歌曲)上去,CMS功能还是相当强大的。同样,我把数据库权限设成了“选择”,对个别的表,则放开权限,比如留言板、用户登陆对应的三个表,这么做最坏的情况是留言被删掉,网站的内容是无法更改的。后台我剥离出来,放到家里服务器上。
开始的时候,我在学校主机上设了个只有葫芦岛铁通宽带用户才能登陆的远程MYSQL用户,用来管理网站数据库,后台部分剥离开来放到我家里服务器上,后来觉得没什么必要,我改在家里整理资料,然后用MYSQL管理软件上传数据,效率是一样的。我家有个淘汰的K6-2,做的Linux RH9服务器。即便如此,我还是经常做数据备份。
说句不太中听的话,被黑的网站,就跟那“豆腐渣”工程一样,光注重外表,金玉其外,败絮其中。安全防护比外观更重要。
嘿嘿,看到此文的黑客朋友,你还有兴趣黑我么?黑客技术应该用于正途,你黑别人是犯法的事,又没有人给你工钱;但反过来你把你的技术用在安全防护上,却可以给你自己创造利益。