SSLv3漏洞
这次是Google发现的一个漏洞,而且又是一个很严重的漏洞。现在暂时还没有补丁解决,但是可以关闭apache的SSLv3来屏蔽这个漏洞。修改方法如下(Debian7.x环境):
修改/etc/apache2/mods-enabled/ssl.conf文件, 找到SSLProtocol所在行,去掉SSLv3即可
SSLProtocol all -SSLv2 -SSLv3
最后当然需要重新启动apache。
学海无涯
这次是Google发现的一个漏洞,而且又是一个很严重的漏洞。现在暂时还没有补丁解决,但是可以关闭apache的SSLv3来屏蔽这个漏洞。修改方法如下(Debian7.x环境):
修改/etc/apache2/mods-enabled/ssl.conf文件, 找到SSLProtocol所在行,去掉SSLv3即可
SSLProtocol all -SSLv2 -SSLv3
最后当然需要重新启动apache。
最近安装和试用了一些软件(例如qq输入法),卸载之后在【开始】菜单中留下了一些垃圾文件夹,看着很不爽。于是打算删之。一试之下才发现与XP系统有很大差异。【开始】菜单实际上分布在两个不同的地方:系统【开始】目录以及用户自己的【开始】目录。
比如我的用户名是yxh,那么如果需要整理开始菜单栏,则可能需要修改以下两个目录:
C:\ProgramData\Microsoft\Windows\Start Menu
C:\Users\yxh\AppData\Roaming\Microsoft\Windows\Start Menu
这两天什么事都没做,就顾着看这几本书。的确是好书,印象中已经有很多年没有看过小说了,三体的确是很吸引人的科幻小说,是我非常喜欢的风格。
看完之后感觉还是有破绽:三体在发现人类文明后,为什么不直接向宇宙公布地球的位置坐标呢?非得大老远地跑过来灭掉地球?向宇宙发送地球坐标对三体文明而言,应该是非常简单的事,这点科技甚至连地球文明都能做到。
2014-10-23 updated: 嗯, 逻辑没有破绽. 三体星人处在悲惨的轮回中, 迫切希望跳出这个轮回, 因此当发现地球文明时, 想到的是占有而不是摧毁, 目的是拯救三体自己的文明.
平时工作时除了笔记本电脑,还有就是旁边放ipad mini辅助。ipad mini有个很大的问题,wifi信号实在太弱了!同样一个桌面,笔记本、手机都可以收到无线信号,可是ipad mini就是不行,常常断网,十分烦恼。
于是在网络上搜了一下,结合几位网文的建议,在windows7系统下启动虚拟无线网卡供ipad mini上网。注意,网络上其他一些文章建立在计算机有两块物理网卡的情况下,而我的电脑里只有一个可以work的无线网卡,因此需要采用虚拟无线网卡方式。
以下命令都必须以管理员身份运行。
创建虚拟网卡,并设置ssid和访问密码:
netsh wlan set hostednetwork mode=allow ssid=think-yxh key=123456
启动虚拟无线网卡:
netsh wlan start hostednetwork
然后在网络管理中,选择物理网卡,修改“共享”属性,允许其他网络设备访问,并选择上述创建的虚拟网卡即可。
下面是一些常用的命令用于修改虚拟网卡的属性:
停止网卡: netsh wlan stop hostednetwork 修改访问密码: netsh wlan set hostednetwork key=1234 修改SSID: netsh wlan set hostednetwork ssid=work2 删除虚拟网卡:netsh wlan set hostednetwork mode= 重新开启虚拟网卡: netsh wlan set hostednetwork mode=allow
电脑重启后,虚拟网卡没有运行,需要手工启动,有些不方便。可以创建任务,让电脑在启动时或者用户登录时重新启动虚拟网卡即可。
点击菜单“启动 – 所有程序 – 附件 – 系统工具”,运行“任务计划程序”。创建一个基本任务即可。需要注意:
(1)只需要运行命令:netsh wlan start hostednetwork
(2)必须设置任务“使用最高权限运行”。
在Ubuntu中使用mercurial命令行提交修改(hg commit)时,出现上述错误提示。出问题的原因大约是当前linux用户与mercurial中的用户不一致。修改方式比较简单:
修改本地库.hg/hgrc文件,根据实际用户信息加入以下配置即可:
[ui] username=yxh <yxh@myvoipapp.com> editor=vim
上述示例中,同时指定默认的编辑器采用vim。
subversion是个很不错的集中式版本管理工具,我们一直在使用。可是缺乏分支功能的确也感觉十分不方便,尤其是我们的版本区分LTS、Stable以及Dev等各种情况时尤其如此。
Git据说是个很不错的分布式管理工具,不过感觉和svn差别太大,十分不适应。因此选择了mercurial,各项操作类似于svn,同时也具备brach等分布式版本管理的特点。
在mercurial中使用branch开发非常方便,下面是几条简单的命令:
$hg branch mss_lts <--创建mss_lts分支 $hg commit $hg push --new-branch <-- 提交新branch到库中 $hg branches <-- 查看分支 $hg update default <-- 切换回主分支 $hg merge mss_lts <--将mss_lts分支的修改merge回主分支
采用SIP-INFO消息来传递DTMF信号,似乎只是Cisco的定义,没有一个成文的标准,但是目前主流的SIP厂家基本都遵循了相同定义,主要采用‘Signal’参数传递DTMF值:
Signal=1
Duration=160
其中,Signal与DTMF信号对应如下:
DTMF Signal ------------------------- 0--9 0--9 * 10 # 11 A--D 12--15 Flash 16
这种映射关系与RFC2833规范一致。但实际上,SIP-INFO既然是文本消息,其实没必要进行转译。例如,传递‘*’信号时,目前的处理是:
Signal=10
Duration=160
这样的定义非常不直观,完全可以直接传递,如下:
Signal=*
Duration=160
SIP-INFO这样传递显得非常直观。RFC2833二进制协议,只能进行定义转换,但是SIP本身是文本协议,足以进行文本性描述。可惜当初不知道为什么非要按照2833方式进行定义,也许这就是为什么这种方式始终没有成为正式规范的原因。
基本上与mysql数据库是完全兼容的,各项命令以及库的名字都与mysql相同。当然目前还没有深度应用,不知道在库、api等方面是否完全兼容。
启动数据库:
service mysql start
修改root用户密码:
mysqladmin -u root password "xxxx"
将数据库加入自动启动列表:
chkconfig --add mysql <-- Redhat/CentOS/openSUSe 或者 update-rc.d mysql defaults <-- Debian/Ubuntu
访问数据库:
mysql -u root -p
传统电信网的各项规范往往经过了很多专家的讨论以及厂家的验证,因此显得比较严格和规范,例如传统的ISDN规范,定义都很明确。
而因特网的各项规范对比之下就显得很随意,往往是一个规范出来之前就考虑不周全,然后根据情况,又补充出一堆的规范。即使这样,仍然是显得有很多漏洞,或者说有很多不规范、不明确的地方,导致各厂家各说各的道理,给互联互通造成很大的困扰。
当然不是说传统电信规范没有漏洞或者定义含糊的地方,只是相比之下,因特网的规范实在是过于随意。
比如说SIP呼叫中的主叫号码。
在电信网规范中,与主叫相关的号码定义非常明确,主要就这么几个:主叫号码、原主叫号码以及显示号码。各号码的应用场景也非常明确,号码格式中的显示属性等也很明确。
在SIP规范中,与主叫相关的头域有这么几个:From, Contact, P-Asserted-Identity, P-Preferred-Identity, Remote-Party-ID等。这些定义要么没有明确规范好,要么就是多次一举,多半是RFC定义者遇到情况时,拍脑袋一想:算了,加个新的定义搞定吧。结果就让人很无语了。
From和Contact在标准的SIP code规范RFC3261中有明确定义,通常我们都认为From域中携带主叫号码,可惜规范并没有明确限定,因此有一些厂家往往在Contact域中携带主叫号码,而在From域中只携带地址信息。
而显然在实际应用中又遇到一些主叫号码显示的场景(估计主要是电信专家考虑3GPP网络的各项应用时,遇到了与传统主叫号码类业务的冲突),于是乎RFC3325规范就粉墨登场,一举增加了P-Asserted/Preferred-Identity两个头域,也是用来携带主叫号码信息。其中,P-Asserted-Identity主要在信任域的server之间、proxy之间、server与Proxy之间进行传递,而P-Preferred-Identity主要在UA与server/proxy之间传递。看,无聊不?折腾不?
而在正统的P-xxx-Identity头域出来前,民间的野路子显然也遇到了同样的主叫号码类业务的问题,于是乎定义了Remote-Party-ID,并基本参照了ISDN的一些定义,例如号码是否显示等属性,很多SIP厂商已经很high地支持了这个定义,比如说Asterisk。发现没?有了这个定义,还要P-xxx-Identity等定义干什么呢?但是不幸的是P-xxx-Identity已经是正式RFC规范,而Remote-Party-ID还停留在draft-xxx-04阶段(目前已经超时,不知道还会不会升级到正式RFC规范),因此SIP厂商不得不同时支持上述各个定义了。
我有没有提到:有些SIP设备在From/Contact等常见域中根本不携带号码,只在www/proxy-authorization中携带鉴权用户的号码,往往也就是作为主叫号码?
晕倒吧!
网上的一些文档大部分是基于其他linux的版本,因此对比之下配置比较复杂,让人望而却步。而Ubuntu则已经将一些基本的配置都打包好了,只需要稍做修改即可。
以下配置基于Ubuntu10.04,全部从官方软件中心下载安装。采用Postfix+Dovecot搭建邮件系统。请先切换到root用户安装和配置。
apt-get install postfix
安装时,会提示选择类型。一般选择”internet site”,输入网站域名即可。安装后,先不要着急配置postfix,我们在后续dovecot安装成功后,大部分配置会自动完成。
一般网文介绍是直接安装dovecot,实际上Ubuntu提供了与postfix配合的dovecot包,因此请按以下方式安装:
apt-get install dovecot-common dovecot-postfix
安装时,系统会自动根据dovecot的要求,对postfix进行配置。
配置文件为:/etc/postfix/main.cf。如果不对email进行限制的话,其实已经不用再配置了。下面我们修改该配置文件,增加一些额外的控制,例如用户邮件大小等:
mailbox_size_limit = 20000000 <--限定邮件账户不超过20M字节 message_size_limit = 200000 <-- 每封邮件不超过20K字节 myhostname = mail.xxxx.com mydomain = xxxx.com
一般也不需要配置,但是在使用gmail托管时,ssl/tls似乎没起作用,因此稍作修改采用普通访问方式即可。注意,此时dovecot的配置文件是/etc/dovecot/conf.d/01-dovecot-postfix.conf
listen = * disable_plaintext_auth = no
缺省情况下,dovecot没有被配置为自启动,因此我们需要手工添加:
update-rc.d dovecot start 99 0 1 2 3 4 5 6 .
email用户账户就是当前Ubuntu的用户。建议对email用户单独处理,并设置在mail组内,设置单独的用户目录等,如下所示,创建一个名为support的用户:
mkdir /home/mail-users useradd -m -d /home/mail-users/support -g mail support passwd support
如果需要支持pop3的話,需要安裝以下軟件:
apt-get install dovecot-pop3d