WordPress遭遇密码暴力破解

On

今天发现我的blog很慢,老是不能访问,进到AWS的后台发现CPU出奇的高,使用top查看显示大部分cpu是httpd进程占用掉了。 像我这样的个人博客,又不是什么知名人士,不会有这么多访问量呀。奇怪。 tail了一下apache的access log,发现有大量的ip不停的访问wp-login.php和wp-cron.php。看样子,是在尝试请举密码呀。怎么会有这么好的闲情雅致啊! 开始我尝试在.htaccess里添加deny纪录,但是效果好像不太明显。而且过来的ip还挺多的。 后来就不停的用tail查找,过来的ip,有新的就加到iptables里去。结果加了一大堆,也不知道有没有误杀的 iptables里添加了那些规则可以使用iptable -L查看。 如果真的有误杀的,可以通过iptables -D命令取消对应的规则。 如果搞乱了,也可以使用iptables -F清空所有规则。 关于如何使用iptables,NetTuts上有一篇很好的文章:The Linux Firewall,简要讲解了iptables的管理,还介绍了如何用iptable做NAT。 但是被动的封ip有时候还是太慢,要盯着,不能自动完成。后来就看到了这个在Wordpress里限制密码重试次数的插件:Limit Login Attempts。现在基本上能满足防止暴力破解Wordpress密码的需求了。

PHP里的md5函数与linux的md5sum命令的区别

On

有好几次碰到使用Linux的md5sum命令产出的散列值,跟PHP的md5函数,或者MySQL的md5函数产生的不一样的问题. 通常比较懒,就没细想,直接使用PHP产生的算了;没想过难道算法还会有不同. 其实没有不同的算法,md5在哪里的计算方法只有一个.原因不过是因为使用md5sum时,有时候不小心会把换行符也作为计算的内容,结果实际上是散列的对象不同,自然结果也就不同了.而在Linux命令行状态下,我通常注意不到换行的存在. 以字符串’123’为例,PHP的计算结果是: 比如下列语句实际上是对”123\n”进行求散列,而不是对’123’求散列. 正确的写法应该是通过echo的’-n’选项,让echo不要输出换行符,这样结果就一样了.

ubuntu 11.04 登录界面死循环

On

昨天不知道安装什么东西把ubuntu 11.04搞坏了。现在卡在了登录界面。不管是登录Gnome还是Unity,都一样。输入完用户名和密码以后,登录界面消失,屏幕闪了一下,然后没有进入桌面,而是又回到了登录界面。这时候通过Ctrl+Alt+F1到tty1,登录终端一切正常。 在askubuntu搜了一下,大多数人建议清除GDM的配置,重装GDM。 还好有人提醒先去看看”~.xsession-errors”里有什么出错信息。结果里面有一句说im-config找不到。看来是我安装中文输入法时,不知道那一步搞错了。sudo apt-get install im-config 后, 重新登录,一切正常了。

debian 6下升级vim 7.2到7.3

On

首先确保debian上安装了python和ruby的开发包 sudo apt-get install python-dev ruby-dev liberuby-dev 下载vim 7.3的源代码 hg clone https://vim.googlecode.com/hg/ vim_src 生成配置文件. 我要使用支持python和ruby编写的vim插件, 当然也要支持多字节的环境了. ./configure –enable-rubyinterp –enable-pythoninterp –with-features=big|grep “python” 编译 make 检查一下看看python特性有没有问题 src/vim –version|grep python 安装 sudo make install 运行vim. 发现Buffer Explorer插件报错. 到官网下载更新.

Linux系统在虚拟机里的时区问题

On

缺省情况下Debian的时间是根据系统时间设置成UTC时间的,然后再根据用户的时区设置做相应的调整。这通常没有问题,但是当我通过VirtualBox来在虚拟机里运行Linux的时候,问题来了。 因为VirtualBox是根据它的宿主操作系统来设置虚拟机的系统时间的,而这并不是Debian想要的UTC时间,除非你正好在0时区。这时Debian再根据用户时区设置调整时区,时区相当于被被处理了两次。这是我就不知道被从东8区扔到什么地方去了。 修正办法是不让Debian再做用户时区调整,直接使用系统时间就可以了。这时候我们需要把/etc/default/rcS文件里的”UTC=yes”改成”UTC=no”。保存,重启,OK。不知道这样有没有别的什么副作用,先用着看吧。

vim下按Ctrl+S造成程序“僵死”

On

我在使用vim的时候,偶尔会碰到vim莫名其妙的僵在那里。在界面上输入什么都没有反应。甚至Ctrl+C、Ctrl+D也没有反应。 由于不是经常发生,也就没在意。每次很麻烦的关掉putty的窗口,重新再打开putty。今天发生了好几次,很是郁闷。就想看看究竟是怎么回事,结果发现每次按下Ctrl+S就会出现这个问题。 由于以前碰到过vim有些扩展有问题,这次就也怀疑是vim扩展的问题。结果删除了所有扩展和.vimrc文件,问题依旧。通过putty登录到别的系统,也是一样的问题。直接在ubuntu的命令行,按下Ctrl+S,问题也一样! 奥,原来是Linux的一个快捷键呀,干什么用的? 原来Ctrl+S在Linux里,是锁定屏幕的快捷键。如果要解锁,按下Ctrl+Q就可以了。 好吧,接受教训吧。以后碰到问题要勤快点,越早解决越少麻烦。 现在让我记牢点这两个组合键Ctrl+S和Ctrl+Q。

Linux下如何拷贝整个目录下的所有文件

On

如何在Linux下拷贝一个目录呢?这好像是再如意不过的问题了。 比如要把/home/usera拷贝到/mnt/temp,我首先想到的就是 cp -R /home/usera/* /mnt/temp 但是这样有一个问题,/home/usera下的隐藏文件都不会被拷贝,子目录下的隐藏文件倒是会的。 那如何才是正确的方法呢?有人说用-a选项,有人说用find加管道。 其实没这么复杂,Google了之后,学了一招。原来只有用“.”当前目录代替“*”就好了。 cp -R /home/usera/. /mnt/temp ### update 2013/06/11 那如果`/mnt/temp`里面已经有文件了,你只想把`/home/usera/`下的新文件copy过来,却不想覆盖`/mnt/temp`里面已有的文件怎么办呢?有点像合并两个目录对吧。 对付这种情况`cp`有一个选项`-n, –no-clobber`,就是不覆盖已有文件。应该也是蛮有用的。

cheat & ztd

On

cheat sheets 是个不错的网站,在通过gem在命令行下能显示常见工具的cheat sheet。下面是ZTD的sheet的输出结果。 $cheat ztd ztd:   Zen Things Done (ZTD)   aka "Minimal ZTD: The Simplest System Possible"   For more info see   http://zenhabits.net/2007/04/minimal-ztd-the-simplest-system-possible/      The Four Habits   ————-   1. Collect     * Write down any tasks, ideas, projects, or other information that pop into…