修改iOS系统的hosts文件

iOS系统通常是指运行在iPhone或者iPad上的操作系统。

出于开发、调试等不同原因,我们可能要对其hosts文件进行修改。未越狱的手机或者平板已经被苹果公司限制权限,禁止修改hosts文件。

因此,对于这种情况,我们需要使用另一种方法来达到曲线救国的目的。

  1. 自己设立一个DNS服务器,如在外网则依然无法避免DNS污染问题;
  2. 使用Fiddler架设代理。

第二种方法比较适合新手操作,具体步骤如下:

  1. 下载Fiddler安装;
  2. 打开Tools>Telerik Fiddle Options>Connections;
  3. 勾选左侧全部四个复选框,确认;
  4. 重启Fiddler,在移动设备上设置代理服务器即可。

参考链接

iPhone iPad等iOS 设备上配置修改 hosts 方法

文件完整性校验——关于散列值和数字签名

  • 什么是”完整性校验”?

所谓的”完整性校验”,顾名思义,就是检查文件是否完整。那么,什么情况下会导致文件不完整呢?大概有如下几种情况。

1. 感染病毒
比方说你的系统中了病毒,病毒感染了某个软件安装包或者某个可执行程序。那么该文件的完整性就被破坏了。

2. 植入木马/后门
还有一种文件不完整的情况,是被别有用心的人植入木马或后门。比方说某些国内的软件下载站点,它们提供的 Windows 安装光盘镜像已经被安置了后门。

3. 传输故障
这种情况主要发生在网络下载时。因为网络传输是有可能发生误码的(传输错误),另外还有可能下载到快结束的时候断线(下载不完整)。这些情况就会导致你下载的文件不完整。
如今的上网环境相比当年的Modem拨号,已经有明显改善。所以这种情况应该不多见了。 继续阅读文件完整性校验——关于散列值和数字签名

使用密钥自动登录ssh

编辑 ssh 配置文档
sudo vi /etc/ssh/sshd_config

Protocol 2 ← 这行表示仅使用SSH2
ServerKeyBits 768 ← 如果需要可以改成 1024 ,而 puttygen.exe 默认是1024 bit
PermitRootLogin no ← 这行表示不允许用root进行登录
PermitEmptyPasswords no ← 这行表示禁止空密码进行登录
PasswordAuthentication no ← 添加这行表示不允许密码方式的登录
增加安全性,按需设置
sudo vi /etc/hosts.deny
sshd: ALL ← 添加这一行,屏蔽来自所有的SSH连接请求
sudo vi /etc/hosts.allow
sshd: 192.168.0. ← 添加这一行,只允许来自内网的SSH连接请求
下面生成公钥和私钥,在普通用户下:
ssh-keygen -t rsa ← 建立公钥与私钥
Enter file in which to save the key (/home/comet/.ssh/id_rsa): ← 钥匙的文件名,这里保持默认直接回车
Enter passphrase (empty for no passphrase): ← 输入私钥密码
Enter same passphrase again: ← 再次私钥输入密码
Your identification has been saved in /home/comet/.ssh/id_rsa ← 私钥的路径
Your public key has been saved in /home/comet/.ssh/id_rsa.pub ← 公钥的路径
cd ~/.ssh ← 进入 /home/comet/.ssh
cp id_rsa.pub authorized_keys ← 复制公钥为验证文件
chmod 400 authorized_keys ← 设置验证文件为 root 只读
复制 id_rsa 到 windows 的机器上。
使用 PUTTYGEN.EXE 转换成 putty 可以使用的。
打开 PUTTYGEN.EXE ,点击 Load,选取服务器端生成的私钥,如果上面设置了私钥密码,这里就会提示输入。修改一下 key comment,如果需要密码,可以在 key passphrase 输入并确认。
点击“Save private key”,保存为 .ppk 文件,这里是 uServer.ppk
在 putty 中使用转换后的私钥登录。
打开 putty.exe ,设置好IP,然后在 Connection – SSH – Auth 的 Private key file for authentication 中选择 uServer.ppk 。然后 open 就可以使用密钥登录而不用密码了。
如果在生成 uServer.ppk 的时候没有输入密码,那么可以在 putty.exe 的 Connection – Data 的 Auto-login username 中输入私钥的用户,那么打开 session 之后就可以自动。

Windows7环境下配置IPv6

以前经常见 google reader 里出现如何设置 ipv6 的文章。讲的比较通俗易懂的我都自己试了一下,但一直都没有配置成功。只能说不是人家教程写的太差就是我自己悟性太低了。今天突然点开 gmail 最下面的访问记录看见有一个从 ipv6 地址发起的访问,仔细一看才发现是我自己东搞西搞,已经把 ipv6 配置成功了。只不过这个成功不太容易看得出来。经此一事,对 ipv6 又多了一些了解。

我的网络环境:中国电信 2M ADSL 路由器拨号上网,windows 7 64位操作系统。

以下是隧道方式连接 ipv6 的设置方法:

1,首先,如果你以前配置过 ipv6 的话,最好能把那些配置都还原回来。我这个方案不需要安装任何第三方软件,所以如果你安装过什么隧道软件的话,现在就可以卸掉了。如果经过以下配置,还不能配置成功的话,建议重新安装操作系统,用一个干净的系统开始配置。

2,使用管理员权限运行 cmd,打开命令行窗口。

3,根据使用路由器的方式不同,选择运行不同的命令:

・ 直接在电脑上新建拨号连接,每次开机需要拨号的电脑:(有外网 IP 地址的电脑。因为 state 默认就是 client,所以如果没有动过这个的话就不用执行该命令)
继续阅读Windows7环境下配置IPv6

google talk的加密问题

 

翻出多年未用的Gtalk来用,用着用着就想到了安全性的问题,于是通过抓包发现Gtalk的安全性还是比较堪忧的。于是上网查找解决方法,找到大牛(tombkeeper)正好有一篇关于Gtalk加密的博文,下面转给大家,希望能帮助大家完善Gtalk的安全性。

 

下午写了一篇《talk about google talk》,里面提到,虽然google talk本身还不支持加密,但是目前至少用Gaim这样的客户端已经可以进行加密通信了。

晚上吃饭的时候,我想应该找一个既能用标准客户端,又能加密通信,还要简便易行,老少皆宜的法子出来。要不然总觉得有点对不起观众。

我对jabber协议一无所知,也不打算花时间去看文档,索性就硬上。先抓gaim的加密通信包和官方客户端的非加密包看看再说。

官方客户端的身份认证是通过gmail.com来做的,这个过程基于HTTPS,是加密的;聊天数据通过talk.google.com,不加密。

Gaim的认证和聊天都通过talk.google.com,而且必须选择加密。talk.google.com不支持非加密的身份认证过程。

奇怪的是,无论是加密还是不加密,聊天数据都是通过talk.google.com的5222端口。根据抓包看到的数据,和对5222手工SSL协商失败这个结果来看。jabber所支持的加密方式和HTTPS、POPS等是不完全一样的。也就是说,不能简单的通过stunnel来建立加密隧道。

事情就这样结束了么?当然不会,否则我现在一定正在郁闷,而不是写这篇文档。

像我这种人,看到一个5222端口,就不可能不去看看有没有5221、5223、5224……这是多少年养成的习惯。我发现talk.google.com上就有5223和5224端口。简单测试了一下,发现这两个端口都支持标准SSL协商。那么这能用否这两个端口进行通信呢?

我做了下面这几件事:

1、在机器上的%SyetemRoot%/system32/drivers/etc/hosts中加了这一行:

127.0.0.1 talk.google.com

2、在stunnel.conf中加了这些:

[Google Talk]
accept = 127.0.0.1:5222
connect = 216.239.37.125:5223

然后重新启动Stunnel,再运行google talk。

OK,现在google talk完全可以正常使用,并且这时所有来往的数据都是经过加密的。

看我blog的朋友不一定都搞技术,所以这里科普一下:上面做的第一件事是让google talk客户端认为我本机就是聊天服务器talk.google.com;第二件事是在本机建立了一个加密隧道,google talk用非加密数据和本机的Stunnel通信,Stunnel把数据加密后传递给能接收标准SSL加密的talk.google.com:5223,并把服务器的加密数据解密后交给google talk客户端。

打个比方,google talk是一个只会说汉语的人,Gaim懂意大利语,Stunnel既懂汉语又懂阿拉伯语,talk.google.com:5222懂意大利语和汉语,talk.google.com:5223只懂阿拉伯语。

现在我们要和talk.google.com说话。虽然google talk和talk.google.com:5222可以直接用汉语沟通,但是这样会被偷听。所以我们让google talk先把要说的话用汉语告诉Stunnel(这个过程是在自己家完成的,不会被偷听),然后Stunnel用阿拉伯语对talk.google.com:5223转述。或者,用Gaim和talk.google.com:5222说意大利语也是一个选择。

PS:又看了一下google的文档,这个5223是为了兼容某些jabber客户端而留的。可能目前就是有两种jabber加密方式并存,不同客户端用了不同方式。
文档里面没有提5224,以我恶毒的心来揣测,估计是因为加密对系统负担比较大,google的人特意开了这个口给熟人用的,这个没什么人用的端口速度应该比较快――哈哈哈哈,纯属玩笑。

备注一下:在windows环境下按原文在添加stunnel.conf记录后会出 “SSL3_GET_RECORD:wrong version number” error的错误。此时只需将记录改为

[Google Talk]
client = yes
accept = 127.0.0.1:5222
connect = 216.239.37.125:5223

就可以解决了。

 

参考资料:

再谈google talk的加密问题

[stunnel-users] “SSL3_GET_RECORD:wrong version number” error

[stunnel-users] How to disable SSLv2

RE: “SSL3_GET_RECORD:wrong version number”