技术与实践: April 2005 Archives

关于Jabber服务器SSL证书的问题

| | Comments (4) | TrackBacks (0)

ieasy.org上的jabber服务开始支持SSL了,它的SSL证书由CAcert.org签署。 CAcert.org是一个提供免费安全认证的站点。这也是我选择它的原因。

但是,问题在于CAcert.org的根证书并没有为大部分软件所包含,像Firefox、IE都没有包含,所以你得去https://www.cacert.org/cacert.crt 来安装证书才行。当然常用的jabber客户也没有包含,你需要手工的设置才行。

对于Psi的用户,可以简单的安装这个文件cacert.org.xml到psi所安装的目录(一般是c:\program files\psi\)下certs目录就可以了,关于这份证书的正确性,你可以到https://www.cacert.org/index.php?id=3下载CAcert.org的根证书对比一下即可。你也可以手工添加:)

关于CAcert.org 还想说两句,它提供了客户端证书用于验证客户,也提供了服务器证书。挺不错的。不过好像客户端的证书用于加密邮件在thunderbird 和 outlook上都没有成功。主要是导入证书的问题。回头有时间再仔细研究:)

MSN Transport for jabber ready

| | Comments (2) | TrackBacks (0)

这里下载了jabberd 1.4,从这里下载了jabber's msn transport. 遵照邮件列表中的
这篇email,我终于安装调试好了MSN Transport :) 以后不用出过代理,就可以上msn了:P

jabber server ready

| | Comments (8) | TrackBacks (0)

几天以前,ieasy.org上的jabber服务搞定了。以后有兴趣的可以使用ieasy.org作为jabber服务器。现在支持注册新用户。暂时还不支持SSL和其它的Transport服务。以后有时间会逐步摸索把服务都建立起来。

接触jabber这个东东,主要我是想在我的Palm Tungsten W 上使用MSN, 找到了Chatopus, Chatopus是一个palm os上运行的jabber客户端。依仗着jabber server的msn transport服务,我就可以用我的pda上msn了。

现在的问题是,palm os 4上QQ的客户端很少,有的话也很不好用,j2me的。如果能有支持transport 到QQ的jabber服务就好了。可惜经过考察,现在没有:(。 于是我打算自己写一个,第一步就是架一个jabber服务器啦,呵呵。然后考察现有的QQ客户端实现:OpenQ, perl-oicq,lumaQQ. 研究jabber transport的工作原理。 这些天太忙了,等忙过了这段,就开始研究,有了好结果再向大家汇报:)。

我的JID是我的JID,欢迎加我为好友

用socks代理 fetchmail from gmail

| | Comments (0) | TrackBacks (0)

在学校里,不能直接连接国外网站,当然我们有办法找到代理来浏览网页 :P . 不过对于fetchmail + mutt的邮件解决方案,fetchmail怎么利用代理收gmail的信呢?

首先你得有能用的socks代理。

其次,你需要有runsocks或者tsocks这一类socks客户端。这种客户端当你配置好配置文件以后,可以用runsocks command的方式运行你的程序“command”,它就会用socks代理出去了.关于这么配置,我就不赘述了,请参照文档。

这时,你可能已经想到,那我直接用runsocks运行fetchmail不就行了么? 没错, 当然可行,不过前提是你的fetchmail是支持SSL的。而且有些小问题:

1。有可能你的fetchmail不止收取一个gmail的信件,还有其他服务器的,比如(eyou.com? :P),他就是国内的了,用了代理反而慢了。(当然这个问题也能解决,比如你自己在本地建一个socks代理,配置成访问指定目标地址时使用另一个站外socks服务)

2。还有可能,你的整个Linux系统就只运行了一个fetchmail daemon他是全局的,读取所有用户的配置文件,你没法让它以runsocks运行,或者你不想修改配置好的/etc/init.d/fetchmail启动文件。 那就可以用我下面说的方法:

答案是:stunnel . stunnel可以建立一个SSL的tunnel. 看下面这个命令

runsocks stunnel -d 10000 -c -r pop.gmail.com:995

-d 10000 表示在本地监听10000这个TCP端口。-c 表示使用client模式。 -r pop.gmail.com:995 表示连接远程的服务器以及端口。

运行完这条命令之后,你在试一下telnet localhost 10000 ?然后再输入 user yourid, pass yourpass , list, exit等POP3会话命令试试,可以了吧? 没错,我们在本地10000端口和远程的pop.gmail.com:995建立了一个tunnel,而且是脱掉了SSL的,就是明文,(没关系,这是本地的连接,不怕sniffer的).

利用这种方法,你只需要在你的fetchmail配置文件中配置主机为localhost,端口为10000就可以了。


BTW:值得提到的是,fetmail是支持plugin的,在命令行里写 --plugin "command %h %p" 或者在配置文件里写 poll xx.xx.xxx.xx plugin "command %h %p", command就是你提供的程序,%h是host,%p是port,fetchmail从command的stdout读东西,把要写数据写给command的stdin,
所以我们又有了一个方案,前提是fetchmail支持ssl, plugin里面写

plugin "runsocks nc %h %p"

其中nc就是有着TCP/IP瑞士军刀之称的 netcat

About this Archive

This page is a archive of entries in the 技术与实践 category from April 2005.

技术与实践: March 2005 is the previous archive.

技术与实践: July 2006 is the next archive.

Find recent content on the main index or look in the archives to find all content.