Apache虚拟主机对网站目录或特定文件进行访问控制的小结

这个问题的学习起因于前几天一个叫Mike的马来西亚的ip连续几天往我的博客里灌垃圾评论。一天大概10条,每条大概5屏那么多内容。我用的Akismet反垃圾评论插件还是需要人工核实一下看错杀没有,而且,几乎一半的垃圾评论都会漏掉。我的博客垃圾评论不多,一天就20条左右。一般的短的垃圾评论一分钟就处理了。可那个Mike的垃圾评论太长了。于是,我只好封了他的ip了。几天过去了,再没见他的垃圾评论了。下面说一下我在这个问题上的一些心得小结。

我用的虚拟主机是盘古的linux+cpanel主机,在cpanel控制面板有一个功能叫“IP Deny Manager”,在里面把你要禁止访问你的网站的ip加进去就行了。如果要封一个IP段,把IP段的开始部分填上。如封1.2.3.*这个IP段的所有IP,就填1.2.3.。如果要封来自一个网站的访问,就填上这个网站的域名,系统自动把域名解析成IP再填进禁止列表。如果不作进一步的深研,你要禁止一个IP也就到此为止了。但是我还朝前走了几步。

那么cpanel控制面板是怎么实现对IP的禁止的呢?答案是它把配置信息添加进了网站根目录的.htaccess文件中。假如我禁止了两个IP,1.2.3.4,1.2.3.5,那么cpanel在.htaccess文件的最后添加了下面一段内容:

<Files 403.shtml>
order allow,deny
allow from all
</Files>

deny from 1.2.3.4
deny from 1.2.3.5

相应基础知识请查看我的网摘在apache下实现网站目录的访问控制(links for 2007-10-07)。这里要特别提一下<Files>片断的意思,上面这个片断的意思是允许任何人(包括后面被禁止了的IP)都可以访问403.shtml这个403出错文件。这个403.shtml你可以在cpanel的相应功能中编辑,可以返回给被禁止IP的用户。我的内容是:

Sorry, your IP is forbidden. If you aren't a spams spreader, please contact me with this email: mdx-xx#tom.com(change # to @ for email). Thanks.

被我误禁止IP的朋友可以用其中的邮件和我联系。

另外,同理,如果你想对特定文件名的文件进行访问控制,如禁止IP 1.2.3.4 访问文件test.html,可以再在前面的<Files>...</Files>加上一个片断如下:

<Files test.html>
order allow,deny
allow from all
deny from 1.2.3.4
</Files>

意思是除了IP 1.2.3.4 外,所有人都可以访问系统中名为test.html的文件,片断中间的order指明allow和deny起作用的顺序,如上面,因为“order allow,deny”中deny在allow后面,所以deny就会排除掉allow中允许的IP 1.2.3.4 了。详情见上提的网摘。这里还要特别注意的是,写在这个根目录.htaccess的文件名的设置会对各级目录中相同的文件起作用!例如,在根目录下有个子目录中包含了名为test.html的文件,那么这个文件同样是除了IP 1.2.3.4 不能访问外其余人都可以访问。

写在子目录中的.htaccess文件中的访问控制配置以此类推。

实际上,cpanel的一些配置管理就是通过操作根目录下的.htaccess文件进行的。如:转向设置。所以,如果你同时用手工在对这个文件进行操作的话,在cpanel的操作结束后,最好检查一下你的这个文件。以防止冲突。

Apache的配置功能非常灵活和强大,上面的这点知识只是一点皮毛。

下面是两点存疑:
1、我在上面网摘中的文章中看到可以把域名直接写在.htaccess文件中,从而禁止对应域名的IP。但是我试了一下,手工把域名加进禁止列表如“deny from adomain.com”,并不能实现对这个域名所在IP的禁止。我是通过一个代理服务网站来做测试的。不知道这个是什么原因?是cpanel的虚拟主机对这个直接写域名的方式不允许吗?

2、如何在顶级目录的.htaccess中实现对特定目录的访问控制?如实现对/test/subdir目录的访问控制?我知道可以在/test/subdir目录放一个.htaccess文件的实现方法,但是在根目录下的.htaccess文件中怎么实现呢?我也知道一个叫<Directory>的片断应该可以实现这个的,但是没有进一步去学习了,存疑于此。

如果我的日记中有什么错漏的话,请朋友提示一下。谢谢。

在apache下实现网站目录的访问控制(links for 2007-10-07)

Pidgin IM集成软件及数个网站收藏(links for 2007-10-05)

Ubuntu Forums和ubuntu下不能用ntp服务网络校时的讨论(links for 2007-09-30)

  • Ubuntu Forums

    Ubuntu is a complete Linux-based operating system, freely available with both community and professional support. By JOINING US today you can participate in our active and growing community.

    (tags: linux ubuntu forums 网站收藏)

  • Can't synchronize time with Internet servers - Ubuntu Forums

    I've read a few threads here about trying to get the system clock to sync with Internet servers, and they all seem to go into "nightmare territory" (by my definition). I don't know why this is... if it's not ready, maybe it shouldn't be an option ...

    (tags: linux ubuntu ntp)

Ubuntu的网络校时怎么不起作用?

我在ubuntu下使用的是ADSL拨号上网,系统启动自动拨号连接。

昨天,我在ubuntu6.0.6下修改系统时间的时候发现可以使用网络校时(即ntp)。点击设置界面上的“立即同步”,系统时间就自动修正了。这个选项上面有一项“定期与internet服务器同步时钟”的选项,我勾选了,默认的服务器有”ntp.ubuntu.comt和127.127.1.0“,我又添加设置了另外两个ntp服务器为“cn.pool.ntp.org和hk.pool.ntp.org”,时区选的是“Asia/Chongqing”。在勾选的时候,系统要求安一个ntp的包,也按照提示安上了。确认后退出。

但是,我发现这个“定期与internet服务器同步时钟”没有起作用!我把时间故意修改成多一个小时,然后重新启动系统。时间还是我修改过的,没有被更正过来!那这个有什么作用呢?!我搜索有关ntp的网页(Linux架设网络校时服务器、Linux和windows操作系统网络校时(links for 2007-09-28)),查看了一下相关的文件。在ntp服务的日志里(/var/log/ntpstats),查看当天的记录,确实每隔一分钟就记录了一次,部分日志记录如下:

54372 35619.638 202.130.120.114 9014 -3596.757066134 0.112971837 0.001455873 3597.447984995
54372 35621.527 127.127.1.0 9014 0.000000000 0.000000000 0.000945000 0.000001907
54372 35622.606 218.75.4.130 9414 0.619085926 0.076016308 0.002438134 1359.704375162
54372 35625.011 91.189.94.145 9614 0.661968500 0.462467000 0.004347983 1359.715265621
54372 35683.702 202.130.120.114 9014 -3596.757066134 0.112971837 0.002246536 3330.589801081
54372 35685.672 218.75.4.130 9414 0.619085926 0.076016308 0.003047042 1922.914781665
54372 35687.585 127.127.1.0 9614 0.000000000 0.000000000 0.000990000 0.000001907
54372 35690.059 91.189.94.145 9014 0.661968500 0.462467000 0.005074957 1922.927712896

其中202.130.120.114(hk.pool.ntp.org)中反映出了一个小时的差异,127.127.1.0是本地的错误的时间中反映的是没有差异,而另外两个服务器却是不到1秒的差异(我猜测数据的第5列是时间差),明显是错的。不知是否这两台服务器当时不能连接?

从日志中看到,ntp系统发现了错误,却没有自动把系统的时间给纠正过来,不知是怎么一回事?是不是我在什么地方没做对?

根据我在前面搜索的资料和这篇文章Bug #48506 in ntp (Ubuntu): “Run ntpdate after ppp interface comes up”,我把原本是在/etc/network/if-up.d下的ntpdate和ntp-server两个文件拷贝到/etc/ppp/ip-up.d目录下,当系统启动后,错误的时间就自动纠正了。我估计前一个目录下的内容是网卡启动执行,后一个目录下的内容才是ADSL连接成功后执行。

根据我的理解,这个纠正是ntpdate 命令的功劳,并不是启动了ntp server的ntpd的功劳。而据文章Time Synchronisation with NTP的内容,ntp server的ntpd可以有规律的根据远程ntp服务器校正本地时间。而我的实验这个ntpd却是不起作用的。前面只拷贝那个ntpdate文件应该就行了。或者,自己写一个包含类似“ntpdate hk.pool.ntp.org”内容的文件放在里面也应该行。

这是怎么一回事?

Linux架设网络校时服务器、Linux和windows操作系统网络校时(links for 2007-09-28)

linux删除菜单项和Google adsense优化、繁体支援论坛及博客、作弊代价(links for 2007-09-24)

查看网站历史的网站;总统博客;阿里妈妈、Text Link Ads、google adsense广告网络赚钱(links for 2007-09-19)

试试安全、开放的firefox浏览器吧!

Firefox浏览器,也就是“火狐浏览器”。我用了有几年了,有一些心得和感想,概而言之就是:安全、开放、自由。详情如下:

一、相对比较安全。

1、很多针对IE的病毒在firefox身上不起作用,主要是firefox不运行极不安全的ActiveX插件,免疫网页病毒、木马。

而有些网页病毒、木马就是您打开防病毒软件也不起作用,像有一次我用IE打开一封邮件,结果中了“番茄花园”病毒,弄得我重装系统 ;还有一次用IE浏览一个网站的后台帐号管理页面时,杀毒软件连报两个病毒!

所以,现在有些网站挂了木马什么的(有被动和主动两种),您用IE浏览的话,保不准哪天就中了招。像在现在的谷歌搜索结果中,对一些可能有危害的网站标上“该网站可能含有恶意软件,有可能会危害您的电脑。”,打开链接像下面这样的,如果必须查看的话,这样的网站用firefox去“深入虎穴”可能要保险一点。

20070824harmful_site2.png

所以,如果常在网上冲浪,搜索资料,最好是用firefox浏览器增强安全性。

二、firefox是开放源代码项目,它是一个开放的平台,全世界任何一个人都可以在上面增加您的扩展(extensions)、插件(plugins)、定制您的主题(themes),几乎可以说,“只有您想不到的,没有firefox做不到的“,来享受一下DIY的快乐吧 🙂 相关的知识您可以看看 这里:firefox附加软件,还有月光博客的这篇提高浏览体验的五十个最佳FireFox扩展插件也值得一读。

所以,如果您是一个程序员,您喜欢hacking,那么,挑战一下开放的firefox浏览器吧。

三、使用firefox,尝试一下不同于windows世界的另一种风格。

四、firefox的问题。

由于IE已经造成的垄断局面,一些不符合W3C标准的极少数网站可能只能用IE浏览,用firefox可能会出问题。如:点不到链接、表格变形等等。但是仅是极少数,用firefox来上网查资料、冲浪应该是不会受到明显影响的。

五、下载。

点击这里下载共41种语言3种操作系统(windows, Mac Os X, Linux)下的firefox。

下载带有google工具栏的firefox。Google工具栏是google公司在firefox上集成的一系列有用的工具,如:搜索,即时翻译,书签,显示当前浏览页的pagerank值等等。点击这里下载。

ps: 这篇百度的贴吧文章在激烈的讨论浏览器,有兴趣去看看:挑战IE的声音:Firefox到底好在哪里?

如果您对浏览器有什么不同的见解,欢迎留言交流。Good luck!

WordPress留言本插件(links for 2007-09-16)