UCenter验证码无法正常显示黑色模糊

        把论坛迁移到另一台服务器上,在登录UCenter的时候遇到了个问题,就是验证码无法正常显示,图片为黑白色,很模糊,看不清验证码的字母。起始很是纠结,最后发现php中没有安装gd库。

        安装gd库,配置php.ini 加载gd.so模块。重启httpd 即可。

        我系统为centos5.3,默认情况下,gd库是安装的,但是我这台服务器是经过订制的,当初就没有安装gd库。

       命令:yum install -y php-gd

       GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。在PHP处理图像,可使用GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从GD-1.6开始,GD库不再支持GIF,改为支持更好的,无版权争议的PNG。

从apache错误日志中找攻击方法

       在大多数服务器攻击中,都是找web程序中的bug或者是不良的习惯,达到攻击目的。比如程序的注入漏洞,软件的本身漏洞,如phpmyadmin,不良习惯比如说把网站的备份放到网站根目录。都很容易才出来。

先来截取下我服务器中的部分错误日志:

[Thu Jun 09 17:30:31 2011] [error] [client 114.228.105.189] File does not exist: /var/www/nq/wp/fckeditor

FCKeditor 是一个十分强大的网页文本编辑器,它支持多种脚本编程语言,据我所知这玩意儿是有漏洞滴

[Thu Jun 09 21:15:57 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/wyeymirserver.rar
[Thu Jun 09 21:16:06 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/mirserver.rar
[Thu Jun 09 21:16:07 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/mirserver.rar
[Thu Jun 09 21:16:07 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/buptCmirserver.rar
[Thu Jun 09 21:16:07 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/Cmirserver.rar
[Thu Jun 09 21:16:07 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/Cmirserver.rar
[Thu Jun 09 21:16:07 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/algawolserver.rar
[Thu Jun 09 21:16:07 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/wolserver.rar
[Thu Jun 09 21:16:10 2011] [error] [client 125.90.64.243] File does not exist: /var/www/nq/wp/wolserver.rar

这就是由于不良习惯的备份,放到网站根目录,黑客就会猜测你的备份名称,下载下来直接找漏洞,并且mysql数据库密码明显的暴露出来。给提权打开了大门。

[Thu Sep 01 00:07:38 2011] [error] [client 176.9.9.156] File does not exist: /var/www/nq/wp/robots.txt
[Thu Sep 01 00:18:20 2011] [error] [client 206.113.193.50] File does not exist: /var/www/nq/wp/robots.txt
[Thu Sep 01 00:24:25 2011] [error] [client 123.125.71.95] File does not exist: /var/www/nq/wp/apacheguide
[Thu Sep 01 00:25:36 2011] [error] [client 123.126.50.71] File does not exist: /var/www/nq/wp/apacheguide
[Thu Sep 01 02:08:13 2011] [error] [client 66.249.71.12] File does not exist: /var/www/nq/wp/robots.txt
[Thu Sep 01 02:17:45 2011] [error] [client 65.52.108.12] File does not exist: /var/www/nq/wp/robots.txt
[Thu Sep 01 02:25:06 2011] [error] [client 122.224.49.106] File does not exist: /var/www/nq/wp/hbcxmirserver.rar
[Thu Sep 01 02:25:06 2011] [error] [client 122.224.49.106] File does not exist: /var/www/nq/wp/mirserver.rar
[Thu Sep 01 02:25:07 2011] [error] [client 122.224.49.106] File does not exist: /var/www/nq/wp/mirserver.rar
[Thu Sep 01 02:58:45 2011] [error] [client 209.249.53.32] File does not exist: /var/www/nq/wp/robots.txt
[Thu Sep 01 03:28:18 2011] [error] [client 202.160.189.232] File does not exist: /var/www/nq/wp/robots.txt
[Thu Sep 01 03:44:57 2011] [error] [client 157.55.116.45] File does not exist: /var/www/nq/wp/robots.txt

其次说一下robots.txt这个文件,它是用于对于搜索引擎而出现的一个标准,表明了哪些搜索引擎可以爬行本网站,而且可以定义可以爬行哪些url路径,这个文件位于网站的根目录下,一般来说我们是不希望搜索引擎会收录我们的后台登陆地址,那么就会在此添加禁止搜索引擎收录某个url,同时,如果说黑客把robots.txt直接在url中键入,那么规则就显示出来了,后台地址就暴露了。又是双刃剑···

      再比如说常见的,黑客会去猜测phpmyadmin的路径,进一步攻击。

      所以常看日志(apache日志、secure日志、maillog 等),还是能学到很多的。

服务器集群中应用程序的数据同步

公司做了一个电子商务网站,考虑到负载及以后可能会添加服务器,用了两台linux做了个小型负载,采用深信服AD-M5500做应用交付。之后考虑到,在服务器集群环境中到底用什么方法实现数据的同步。

当第一次会话,可能会分配到服务器A中,那么我后台添加商品的话,会含有图片,那么这张图片会上传到第一台服务器中,客户端查看这个商品时,会话也被分配到A服务器,那么商品显示没问题,如果说会话被分配到B服务器中,但是B服务器并没有这张图片,那么,就出现问题了,图片不显示!这就考虑数据同步问题,那么我们会想到,做一个图片服务器,在程序中调用图片服务器中的图片地址,考虑到当前对于前期技术实力、投资、时间来说都有些不足和紧迫。

之后在网上寻找了N久,方法有:drbd、rsync之类的数据同步软件,在网上有很多东西无法搜索到的,或者是没有解答的,比如这种同步问题,大都搜出来的都是数据库的同步,应用程序的同步很少,可以说没有,XXX 说这种解决方案,都得花大刀买!最后分析一番,drbd还无法加入到运行环境,这个类似于阵列等级中的RAID1,镜像卷,当一台服务器发生改变时会向其他服务器进行同步,正常情况下只有主节点可以挂载。rsync是做任务计划定时同步,不考虑,最后我选择了NFS服务(相关资料大家可能自己知道,或Google之~)。把网站程序放到服务器A中,A服务器挂载着一台阵列,采用了光纤加HBA卡,提高读写、传输速度,然后通过nfs服务把网站数据目录共享出去,在服务器B中挂载nfs服务的共享目录,实现A、B服务器的数据共享。网站到现在运行良好。但是始终觉得不是完美的解决方法。