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服务器的数据共享。网站到现在运行良好。但是始终觉得不是完美的解决方法。

hillstone防火墙整理的入门命令

支持 命令自动补全 命令缩写  ?号提示/列出当前模式可用的命令  上下查找历史命令  快捷键参考手册

接口模式下:

manage telnet

manage ssh

show interface e0/0   //查看接口信息

命令模式:

hillstone#

在命令模式输入 configure  进入全局模式

全局配置模式:

hillstone(config)#

子模块配置模式:

hillstone(config-if-eth0/0)#

退回到上一级模式:exit  从任何模式退回到执行模式:end

常见命令语法错误信息:

unrecognized command  命令错误、未被接受  [‘rekeɡnaiz]

incomplete command 命令不完整

ambiguous command 参数不完整

设置连接超时:

configure->ssh/console/telnet timeout 1-60 分钟 默认10分钟

恢复默认设置超时时间:configure->no ssh timeout

设置主机名:configure->hostname NQ

添加管理员admin:

hillstone(config)# admin user admin       //添加admin用户并自动进入用户配置模式

hillstone(config-admin)# ?      

  access            Configure admin’s allowed login access

  password          Configure password of administrator

  privilege         Configure privilege of the administrator

  clear             Reset functions

  debug             Debugging functions

  delete            Delete a file

  end               Exit from configure mode

  exec              Perform command operation

  exit              Exit from Admin configuration mode

  help              CLI help

  no                Negate a command or reset to default

  ping              Test network connectivity

  rollback          Rollback to previous saved configuration

  save              Save configuration

  show              Show running system information

  terminal          Configure terminal line parameters

  traceroute        Trace route to destination

  undebug           Negate debugging functions

  unset             Back to the default configuration

hillstone(config-admin)#

hillstone(config-admin)# privilege RXW //设置完全权限

hillstone(config-admin)# password admin123 //设置密码

hillstone(config-admin)# access https      //添加用户以后是无法登陆的,必须为用户添加可登陆类型的权限,否则会提示密码错误。

hillstone(config-admin)# show admin user  //查看系统中的用户

========================================================

Username        Privilege  Console Telnet SSH HTTP HTTPS

——————————————————–

hillstone       RXW        Y       Y      Y   Y    Y

admin           RX         –       –      –   –    –

hillstone(config)# no admin user admin    //全局模式下删除用户

hillstone(config)# show admin user hillstone   //查看用户具体信息

============================================

admin    : hillstone

privilege: RXW

access   : console telnet ssh http https

password : 52/rxu0vP8f9jQ2alM9l7tQyM

hillstone(config)# show admin host  //查看可信主机配置(访问设备的地址段)

=========================================================================

IP range                                Login type

————————————————————————-

0.0.0.0/0                           Telnet  SSH     HTTP    HTTPS  

————————————————————————-

hillstone(config)# admin host {A,B,C,D A,B,C,D | any } {http | https | ssh | telnet | any }

hillstone(config)# ssh port ?  //设置ssh端口

  <1-65535>         SSH service port(22: default, or <1-65535>)

hillstone(config)# ssh port

hillstone(config)# show ssh  //查看设置ssh的信息 或者是show http

SSH server options:

=============================================================

SSH idle timeout is: 20 minute(s)

SSH server listen port is: 57891

SSH server accept connection interval: 2

=============================================================

hillstone(config)#

hillstone(config)# http port ?  //设置http端口

  <1-65535>         HTTP port (1-65535)

hillstone(config)# https po 

hillstone(config)# https port ?  //设置https端口

  <1-65535>         HTTPS port (1-65535)

hillstone(config)# https port

hillstone(config)# show http  //查看http /https信息

HTTP server options:

=============================================================

web(HTTP/HTTPS) idle timeout is: 10 minute(s)

HTTP port is: 65499

HTTPS port is: 65498

HTTPS trust domain is: trust_domain_default

=============================================================

hillstone(config)#

指定https方式访问时使用的pki信任域,当https启动时,https服务器将使用指定的pki信任域中的证书,默认使用trust_domain_default

在登陆https时无法打开,选用http登陆,修改此项试试。