Mar 282007
 

情景:
买了一台微型PC做二奶机,无光驱软驱,又懒得从主PC上拆下来用,于是打算通过网络安装的方式来装操作系统。
需求:
可以支持PXE启动的网卡,经检查版载的Reltek 8110是支持Intel PXE Rom的;
网络环境,没问题,有一个一个宽带路由器;
DHCP Server/TFTP Server,自然是在主PC上搭咯;
PXE Server,根据PXE协议设计的服务,关键问题就在于这里的选取和实现了。
Continue reading »

Mar 272007
 

发现通过pfsense这个强大的工具来学习pf规则的使用是再好不过的了,先按照应用环境配置好pfsense,然后ssh登录到服务器上检查所配置的pf rule,然后挨条解读这些Rule。

首先是NAT规则,这个我本来已经比较熟悉了,而且pfsense安装好之后默认就是开启NAT的,因此纯记录之,

fxp0为LAN接口,fxp1为WAN接口,内网IP为10.111.5.0/24,去除了无关紧要的行。

# pfctl -sn

nat on fxp1 inet from 10.111.5.0/24 port = isakmp to any port = isakmp -> (fxp1) port 500 round-robin #将LAN外联WAN的isakmp<->isakmp连接nat到WAN的500端口,这个服务不知道是干什么的,忽略之。
nat on fxp1 inet from 10.111.5.0/24 to any -> (fxp1) round-robin #关键在这里,将LAN网段在WAN口做NAT,使用round-robin(默认)方式

no rdr on fxp0 proto tcp from any to port = ftp #禁止LAN与VPN之间的21端口转发
rdr on fxp0 inet proto tcp from any to any port = ftp -> 127.0.0.1 port 8021 #将LAN内21端口转发至本机8021

NAT核心语句就只是第二条。
FTP服务的转向是因为FTP命令中有打开额外数据端口的指令,这些指令在NAT环境下需要做一下伪装,因为Internet中的FTP Server接收到类似 PORT 10.111.5.123 12345这种地址的命令是不会找到正确的端口的,在此需将其masq至WAN口的IP和端口,具体是通过运行在8021端口的ftp-proxy实现的。

Mar 272007
 

上周末公司的ISA网关崩了,是硬件原因造成的。虽说这个ISA是我当年捡了一台废弃的双P3机器装起来的,虽说从安装到投入使用只有几个小时时间,然而基于Windows 2003的这个玩意儿却是出奇的稳定,几年下来没出过任何问题,只有因为硬件故障造成的几次死机而已。微软的东西只要调教的好,还是很不错的。 Continue reading »

Mar 172007
 

本来自己在VPS上玩BLOG的时候是直接对于apache的配置文件做修改来实现的,也就是通过对于传递到PHP的环境变量中的Referer字段的判断来实现,具体可以看这篇文章无良的百度MP3搜索,然而现在在虚拟主机环境下就没有这么随心所欲了。

然而Dreamhost对于.htaccess的支持和mod_rewrite的支持,使得我可以通过URL Rewrite实现同样的功能,具体方法也很简单,就是在.htaccess中写入如下语句块

RewriteEngine On

RewriteCond %{HTTP_REFERER} mp3\.baidu\.com [NC,OR]
RewriteCond %{HTTP_REFERER} box\.zhangmen\.baidu\.com [NC,OR]
RewriteCond %{HTTP_REFERER} 220\.181\.27\.54 [NC,OR]
RewriteCond %{HTTP_REFERER} m\?ct=
RewriteRule .* – [F]

前面两句是禁止mp3.baidu.com和box.zhangmen.baidu.com(不知道这个域名是干什么用的,然而从日志来看这个域名爬走的流量一点不比mp3.baidu.com小)这两个域名Referer过来。
第三句是禁止这个IP的Referer,这个也是mp3.baidu.com的IP。
第四句是禁止Referer为类似“http://xxxx.com/m?ct=XXXXXX”这种形式,这是为了避免mp3.baidu.com以其他域名或IP过来爬,从我前几个月的日志来看,还是有不少IP是这样爬过来的,真不知道mp3.baidu.com的爬虫还有多少版本。

Mar 142007
 

  使用上海电信宽带接入的朋友可能最近也经常像我一样在浏览网站时莫名其妙地输入网址后转向了114查询的页面,此类事故在以前曾听过有类似的传言,而以前我个人并未碰到,所以并不在意,但如今我是天天被114这个破烂页面骚扰,于是也不得不仔细找找原因了。
Continue reading »

Mar 122007
 

这两天Cnnic突然发神经将.cn后缀的域名降价为1元RMB1年。于是广大网民乐了,几个顶级注册商接口爆了,其他下级代理们疯狂了,数万人排队抢域名,不管好的坏的能用的不能用的都抢,甚至有人开始穷举4位以下的未注册域名。也不管男的女的老的少的都来,不知道域名为何物的也来了。而注册商这边更热闹,服务器不停的down,n多技术人员火线顶上,呈现一片人工流水线,形势一片大好,貌似全面网上安家的新热潮又出现了。

然而,各位爷们们觉得这样好玩么?
Continue reading »

Mar 052007
 

今天闲来无事,把我的DreamHost主机的Promo Code弄好了,也就是优惠码,如果使用这个优惠码,在购买DreamHost的L1型号主机“Crazy Domain Insane!”可以享受到高达$97的折扣,也就是购买1年的L1主机只需要原价$119.40-$97=$22.4。人民币160左右,比国内的空间商的价格不知道要低多少倍,而各项指标却要强N倍。

当然天大的好事是要付出代价的,DreamHost这么便宜的第一个奥秘就在于这个折扣只是第一年新购买的价格,以后的续费都无法使用优惠码,同时你用于支付的信用卡也会被记录在案,无法享受其他的折扣主机。当然像我这种玩一年就可能搬家的人是最适合的,而那些辛辛苦苦钻营1年建站,年终面临的是每日上百G的流量以及几十G的数据的站长,恐怕就宁可出$119也不愿意搬家了。第二个奥秘就在于这个Promo Code了,DreamHost鼓励购买了他产品的人提供Promo Code给其他人,已吸引其他人来购买DreamHost的产品,当然提供Promo Code的人也有好处,根据Promo Code的设置不同,每个Promo Code在被成功使用后都会给其创建者一定的利益返点,这些钱可以用于创建者来年的续费,甚至还有可能靠这个来赚钱。所以很多站长也乐于提供Promo Code,一来想或许来年能不用花钱继续用,二来还觉得有点可能小赚一笔;而对于DreamHost,Promo Code的使用会给他带来大量的客户,所以这是一个双赢的结果。但是实际想想,这不就是网络传销嘛,呵呵。

不管怎样,我也是把Promo Code公布出来,大家想用的就拿去用吧,Promo Code是– DAWNH ,使用方法是在购买L1时选择1年,并填写入这个代码,则结算时就会发现帐单的价格加上了折扣。我这个折扣码是设定了最大限度的折扣,也就是说我没有办法得到利益返点,全部都给了使用折扣码的人,也就是说这是DreamHost的最低价格了。

如果还有不明白的,参考后面的相关链接,借用了某些DreamHost前辈做的说明文章,但填写折扣码的时候别忘记换成我的DAWNH ,^^

Feb 262007
 

前两天偶然看邮件列表得到的消息,不同于以前的第三方FASTCGI实现,这次是微软IIS小组发布的一个版本,目前正处于technical preview 2状态,但应该已经可以投入使用了,微软的目的似乎是让PHP更好的与IIS结合,实现通过ISAPI无法实现的功能,同时又避免CGI带来的巨大性能损失。
具体参考页面:FastCGI for IIS

难道说IIS7将是无论从架构灵活性还是性能都将全面超越Apache的一个版本?

Dec 052006
 

事情起因是因为公司服务器没有采用vhost方式,而是直接把一个整个站点监听在IP:80上,假定IP为1.2.3.4,公司网站域名为abc.com。
这样我们不论是输入http://abc.com还是http://1.2.3.4都可以正常访问公司网站。
而不知哪个搞笑的家伙竟然把另外一个毫不相干的域名def.com也解析到了1.2.3.4。这样通过http://def.com访问也是访问到了我们公司的网站。
更搞笑的是,这个def.com的域名以前跑的是一个做与我们类似业务的公司的网站,于是这家公司的倒霉客户找到我们这里来,问这到底是为什么,是否def.com被我们公司收购了云云。

于是一边诅咒那个缺德的域名管理员,一方面想办法要让http://def.com访问不到我们的站点,首先我们不可能控制这个def.com的解析,那就只能在我们自己服务器上作手脚了,我想到的是利用Apache的mod_rewrite来实现。

准备工作不详细写了,不过是Load相应模块,设置AllowOveride All等。而详细实现也只有简单的几句代码,在站点根目录建立.htaccess文件,写入如下内容:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !www.abc.com [NC]
RewriteCond %{HTTP_HOST} !abc.com [NC]
RewriteCond %{HTTP_HOST} !1.2.3.4 [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^.* – [F,L]

这样实现的结果是只能通过www.abc.com,abc.com,1.2.3.4来访问站点,用其他的HOST访问都会显示403Forbidden。

备忘:{HTTP_HOST}代表HTTP协议GET动作同时传递的Host的值,[NC]代表忽略大小写;[F]代表动作为禁止;[L]代表最终匹配。
该练习一下正则表达的功底了,越来越多的地方要用到了。