242012
 

问题:

最近在教研室上网经常遇到一个问题,IPv6的连接经常不知在什么时候就自己断开了,基于IPv6的一切程序瞬间就不能正常工作。

查看网络设置,发现地址里面多了一条2002开头的IP地址,同时又有Native IPv6分配过来的2001的IP。这很蹊跷,因为这个2002的地址也不是一直都有的,而是时有时无。随着它的出现,IPv6的连接也是时通时断。这很令人烦恼。

晚上终于忍受不了了,到网上查查吧。果然万能的网络、万能的先驱者们已经发现了这中情况并且分析了其中缘由了。很好,顺势跟着看看

解决:

这位博主分析的很透彻,从RFC里面查了这个2002段的用处,原来是6to4隧道使用的IP。另外就是使用
netsh interface ipv6 show prefixpolicies 命令发现的ipv6使用IP段的优先级:
捕获

这个优先级是我使用 netsh interface ipv6 set prefixpolicy 2001::/32 35 1 persistent 命令修改过的了,原本的顺序里面2001::/32的优先顺序只有5,所有当有2002存在的时候就被覆盖了。

原因:

这位博主也分析了蹊跷的2002段的来源,是某个用户的广播:

原来在同一子网内有人在不断广播路由,我的电脑自动使用这个路由,加上学校提供的2001路由和地址,我的电脑有了两条路由路径和两个ipv6地址。

我把之前获取到的IP:2002:xxxx:xxxx:…中的第二和第三部分的数字换算出十进制的IP,发现是学校PPPOE拨号后分配给实验楼的某个IP,联想到有同学反应掉线的情况只发生在实验室,可以判断这个广播路由信息的电脑就在我们实验室里面,然后此时实验室恰好只有我和一位师弟在,看来就是他的电脑的问题了。

去问了一下师弟的IP,刚好就是上面查到的这个地址。

起初怀疑是他中了什么病毒之类的东西,但是心中着实怀疑现在写IPv6的这种病毒有没有什么好处可以赚。细问一下,果然跟病毒没有关系,是他开启了他校园网拨号连接的共享,也就是他是好意向大家共享他的IPv4连接,却是不料会有这种副作用。

212012
 

VPN的流量自己用不完,就想分给同学们用。又怕流量超了,起码得弄个流量的统计吧。老规矩,网上Google一下,果然已经有人做好了。本文的主要参考了这篇文章,首先对原作者表示感谢。

主机为CentOS 5.x,已经安装好了OpenVPN 2.1.1,MySQL 5.1.60,还缺少关键部件libpam-mysql。

1. 先来安装它:

wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz
tar zxvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure && make && make install

2. 配置MySQL:

     先用MySQL管理员账号登陆数据库,添加用于VPN操作的账号和记录用的数据库、数据表。

mysql -uroot -p
-- 创建数据库
CREATE DATABASE openvpn;
 
-- 切换数据库
USE openvpn;
 
-- 创建用户,用户名openvpn,密码openvpn(可自行设定)
GRANT ALL ON openvpn.* TO 'openvpn'@'localhost' IDENTIFIED BY 'openvpn';
 
-- 创建用户数据表
CREATE TABLE IF NOT EXISTS `user` (
  `username` char(32) COLLATE utf8_unicode_ci NOT NULL,
  `password` char(128) COLLATE utf8_unicode_ci DEFAULT NULL,
  `active` int(10) NOT NULL DEFAULT '1',
  `creation` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `name` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  `email` char(128) COLLATE utf8_unicode_ci DEFAULT NULL,
  `note` text COLLATE utf8_unicode_ci,
  `quota_cycle` int(10) NOT NULL DEFAULT '30',
  `quota_bytes` bigint(20) NOT NULL DEFAULT '10737418240',
  `enabled` int(10) NOT NULL DEFAULT '1',
  PRIMARY KEY (`username`),
  KEY `idx_active` (`active`),
  KEY `idx_enabled` (`enabled`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
 
-- 创建日志数据表
CREATE TABLE IF NOT EXISTS `log` (
  `username` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `end_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `trusted_ip` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
  `trusted_port` int(10) DEFAULT NULL,
  `protocol` varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,
  `remote_ip` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
  `remote_netmask` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL,
  `bytes_received` bigint(20) DEFAULT '0',
  `bytes_sent` bigint(20) DEFAULT '0',
  `status` int(10) NOT NULL DEFAULT '1',
  KEY `idx_username` (`username`),
  KEY `idx_start_time` (`start_time`),
  KEY `idx_end_time` (`end_time`)
) DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

3. 配置PAM for MySQL:

vim /etc/pam.d/openvpn

        进入输入模式,输入以下配置并保存。

Continue reading »

182012
 

昨天闲的蛋痛的时候,拿起以前从网上下载的一个反rootkits软件扫描了一下自己的电脑。

大部分项目都是正常的,没有可疑进程,没有可疑服务,没有可疑端口被打开。然而在内核模块的扫描中却发现了一些莫名其妙的东西。
先是有个奇怪的驱动程序加载进来了,而这个驱动程序在磁盘上并不存在,看上去只在内存里有:
2
存在三个内核线程:3
还劫持了内核文件:
4
在文件系统上面放了一堆的钩子:
5
微端口驱动也被Hook了:
6
更恶劣的是重启之后它名字还会变化,以sp开头,后跟两个随机字母,然后是sys结尾:
正则表达式可以写成/^sp[a-z]{2}\.sys$/
22
这个“内核文件劫持”的名字也是在变的:
55

看起来确实是中了某种rootkits无疑了,然而又很令人疑惑的是它只是静静的呆在那里,并不和外界联络,因为不管用哪种方法都无法找到它使用网络的一点点踪迹,换了好几种ARK工具扫描,都只是知道它改了些东西,但是并没做什么恶意的举动。
网络连接里所有的端口都是正常的,它似乎只是在本地默默注视着什么,有什么使命呢?

用sp.sys放到Google一搜,发现早在数年以前就已经有人发现这个问题了,我真是后知后觉啊。原来它是Daemon Tools的驱动SPTD.sys搞出来的玩意儿,目的似乎就是在本地保护这个软件的注册信息牢固的存在于系统中不被删除或修改,以达到防止盗版的目的。

sptd.sys这个驱动我倒是早就注意过,Daemon Tools有必要这样打击盗版么,为了自己的经济利益不惜往全世界所有信任它、使用它的客户的PC上面安装rootkits,真是够令人恶心的了。

解决方法:删除C:\Windows\System32\drivers\sptd.sys,重启即可。
        以后再也不要用这个流氓了,试试WinMount之类的软件吧,比Daemon Tools好用。

顺便提一句,我尝试的ARK工具里面包括360的系统急救箱,现在它在我系统里放了一个同样会变换自己名字的驱动,每次开机自动加载,不知道去掉它呢?请神容易送神难啊。
2

142012
 

原创文章,转载请注明来自Sean的技术博客

    自从买到了VPS,除了放置网站,就是玩一玩VPN了。早就听说过这种神奇的东西,用的还是不多,充满了好奇。放狗搜索了一下,发现最多的教程就是使用PPTPD搭建的,有的讲了配置,有的是用一键安装包。但是我的需求是一个能够支持IPv6的VPN,这样在校园网的环境下就可以免费的上网了,比较爽。以前一直用的是GoAgent来做代理,但是只是个普通的HTTP代理而已,还有单次返回数据500KB的限制,更是无法用任何的客户端。这些都使得这种方式并不能完全替代付费校园网IPv4的使用。

    后来发现大家表示OpenVPN是有支持IPv6的补丁包的,只要打好了补丁,就可以支持Server和Client之间的IPv6连接了。于是开始动手,以RedHat系列为例:

第一步,安装编译工具和OpenSSL。
      yum install gcc gcc-c++ kernel-devel openssl-devel

第二步,安装LZO压缩模块,后面OpenVPN用它来压缩。
      wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.04.tar.gz
   tar解压,进入目录./configure && make && make install

第三步,下载OpenVPN并打上IPv6的Patch,安装之。
   wget http://openvpn.net/release/openvpn-2.1.1.tar.gz
   wget https://github.com/downloads/jjo/openvpn-ipv6/openvpn-2.1.1-ipv6-0.4.11.patch.gz
   tar解压第一个,gunzip第二个,然后 patch –p0 < openvpn-2.1.1-ipv6-0.4.11.patch
   进入openvpn-2.1.1,./configure && make && make install
Continue reading »

132012
 

在网上看到周鸿祎因为要做手机,又开始了对雷军小米手机的炮轰。觉得挺有意思,就在网上搜了一下关于周鸿祎的一些事情,百度百科罗列了他十年来VS过的人。

VS百度
       2001年,周鸿祎的3721和李彦宏的百度,都遇到流量压力,双方开始争夺IE的地址栏。后来CNNIC也加入战团,3721、CNNIC和百度三家在用户的电脑中“群殴”,不仅让自己的客户端难以卸载,而且互删对方的客户端。

VS马云
       2003年,周鸿祎将3721卖给雅虎,随后雅虎中国被马云收购。周鸿祎离开雅虎后创办奇虎360,封杀流氓软件,可以直接将雅虎中国最赚钱的“雅虎助手”软件从浏览器中彻底清除。事件发展到马云和周鸿祎宣布互相“封杀”,至今多年未曾见面。

VS瑞星
       2008年后,360同安全软件商之间冲突不断。360同瑞星最大的冲突是在2008年7月,瑞星公司宣布推出个人版最新杀毒软件、防火墙与卡卡6.0捆绑起来,向全球用户免费服务一年,并炮轰360欺骗用户。随后两家公司激烈谩骂,最终不了了之。

VS金山
       2009年,金山推2010版新品,以及推免费“云查杀”软件时,同360发生口水战。今年6月,打假人士王海揭露金山涉嫌虚假宣传,360借此介入,随后升级为两家公司的混战,并发生两家产品互相卸载事件。周鸿祎连发几十篇微博,“揭露”金山造假,金山安全CEO也在微博迎战。

VS卡巴斯基
       2006年,360同卡巴斯基绑定推广,但随着2008年360推出免费杀毒产品后,两家企业开始刀剑相向。本月在360就“互联网隐私”同腾讯打得不可开交时,卡巴斯基发布官方消息称,360胡乱解读“Stuxnet”病毒,欺骗中国4亿网民。360宣布起诉卡巴斯基。

VS腾讯
       2010年9月,360推出一款名为“隐私保护器”的软件,监测“腾讯QQ”对用户电脑中文件的查看情况,并指称QQ窥视用户隐私文件。由此引发两家公司争端,双方互相起诉,目前此案已有结果,2011年4月27日,北京市朝阳区法院作出一审宣判,认定360构成不正当竞争,判决北京奇虎等三公司停止发行“360隐私保护器软件V1.0BETA版”,连续30天消除影响,并赔偿腾讯公司40万元。

出处:周鸿祎_百度百科

总结一下好像就是对曾经的合作伙伴(雅虎3721,卡巴斯基)过河拆桥;对竞争对手(瑞星,金山,腾讯)破口大骂。个人觉得不算光彩。

顺便上了一下奇虎网,以前还真没注意过这个网站,虽然听过名字但是没上过。看到下边的一行字本站由金盾防火墙提供安全防护,就又点进去看了看。这家公司生产的产品包括金盾抗拒绝服务系统GFW系列金盾互联网信息监控系统JDIS系列金盾软件抗拒绝服务系统标准版

捕获

互联网信息监控?还有GFW系列?我不禁浮想联翩……好吧,我想多了。

 Posted by at 20:55
112012
 

    想写篇新的内容,结果中间断线了,刷新一下写的东西都消失了,极为郁闷。所以一下内容是原本内容的简写版本,无图无格式,凑合着看吧,唉!
    前一阵子搞清楚了Suffusion出错的原因:它占用内存太多,超过了32MB。所以我之前的BYETHost的免费空间不能顶的起来了。后来暂时寄存在强哥的VPS上,再后来自己抢到了Buyvm的VPS,所以又搬了一次家。
    手机上安装了Better Terminal Pro 挺好用的。
    wget了一下LNMP的安装包,流程相当自动化,也很顺利。自己不会配置Nginx,就按着LNMP.org的说明来做,设置好了似乎还是没有生效。最后Reboot了一下才好的。关键的就在于安装阶段分配给Nginx主配置文件/usr/local/nginx/conf/nginx.conf是指向/home/wwwroot根目录的,而使用/root/vhost.sh配置的域名seanluo.com和附加的域名www.seanluo.com等,位于配置文件/usr/local/nginx/conf/vhost/seanluo.com.conf中,是指向在此处配置的一个绝对路径的,默认是/home/wwwroot/seanluo.com。
    DNS是用的HE.NET,很给力,除了A记录,还支持AAAA。看到我的VPS有16个IPv6地址,果断解析之。0.9版本的LNMP已经把Nginx升级到了带ipv6选项编译的版本,所以无须费心,之后就是nginx主配置文件和seanluo.com.conf文件,把listen 80;改成listen [v4地址]:80;和listen [v6地址]:80;即可。
killall nginx
/usr/local/nginx/sbin/nginx
搞定。现在博客http://www.seanluo.com同时支持v4和v6接入了。

另有个问题,搭建OpenVPN到现在也没搞好。客户端可以连接到VPS并获得IP了,却不能通过VPS访问外网,估计是iptables设置有问题,又不知道是啥问题,没研究过这个防火墙。坐等高人指点了。

摘抄:

1、添加虚拟主机,执行如下命令:/root/vhost.sh 根据提示输入要绑定的域名,回车,如果需要添加更多的域名,输入y,再输入要另外绑定的域名,多个域名可以用空格隔开(注:带www和不带www的是不同的域名,如需带www和不带的www的域名都访问同一个网站需要同时都绑定)。再输入域名绑定的目录(绝对目录,如/home/wwwroot/lnmp,如果不填默认是/home/wwwroot/绑定的域名,目录不一定非要是/home/wwwroot/,如果/data/ 下面有大量的空间也可以填写/data/www/lnmp 之类的。),再选择是否添加伪静态规则,默认已经有了discuz、discuzx、wordpress、sablog、emlog、dabr、phpwind、wp2(二级目录wp伪静态),可直接输入以上名称即可,如果需要添加自定义伪静态规则,直接输入一个想要的名字,程序会自动创建伪静态文件,直接在/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则就行(注:添加完执行/etc/init.)。接下来会提示是否需要启用日志功能,一般情况下不需要启动,直接输入n就行,如需启动,输入y,再输入要定义的日志文件名字,回车就会自动添加虚拟主机。

2、删除虚拟主机,ssh执行:rm /usr/local/nginx/conf/vhost/域名.conf

302012
 

自从去年去实习之后,博客就彻底荒废了,以至于域名过期,空间也出了毛病。
刚开始的时候是不能进入管理后台,首页和文章可以正常打开。想了一下应该是后台的什么插件挂掉了,调用就会出错,就手动用ftp删掉了当时正在用的主题。果然奏效!
这个时候又一个问题出现了,首页可以正常显示,后台管理全部正常,就是所有文章的页面什么的都打不开了,一打开就会跳转到一个广告页面去。一直是百思不得其解,刚好忙于实习和学校的项目,再加上各种游玩搞得心思散了,不想折腾了,就这么一直拖到了现在。
昨天看GReader订阅,发现主机迷发了新的优惠码,Godaddy又卖便宜域名了,这次还是注册.com送.info,于是果断再次拾起这长草的博客来。
今天花了点时间想了一下,觉得应该不是中毒或者空间的问题,不然不能就恰好和后台有关的完全没事,而和文章相关的就打不开,应该是固定链接的问题。把固定链接改回默认设置,果然一切正常了!
但是默认的设置太难看了,怎么让它变成自己定义的格式呢?网上搜一下,大多数给的答案是关于Windows主机不支持伪静态而导致的,但我这个是Linux主机,不存在这个问题。再看一下,有人提到:把固定链接改回默认设置,再改回自定义设置就ok了。试了一下,好了……
我只能说,好囧啊。

302011
 

最近比较忙,一方面国际贸易的学位临近结束,要写开题报告、做论文什么的。另一方面,导师那边的项目也到了实际性部署的阶段。再者,我找了一家不错的单位实习。

实习耗费了比较多的时间,下班回到学校就累得不想动弹了,看来朝九晚六的生活远没有想象中的那么美好。工作的环境挺好的,身边的人能力和技术都很强,进去就觉得自己比较渺小。一天到晚坐在电脑前,而且是一直在往脑子里灌输东西,这样做起来真是很累的。

向前看,加油加油吧!

 Posted by at 21:49
072011
 

第五部分 高级Shell编程技巧

二十五、<< 的更多用法

使用:
    cat >> newfile << TAG
    Hello, everyone! 
    It's rainy outside.
    TAG
可以快速的将一段话放入新建立的一个文件,本例中为newfile。

如果一个脚本,按次序依次接收一些参数,那么可以用<<实现自动化输入:
    /usr/bin/my-own.sh << MAYDAY
    1
    3
    2
    MAYDAY

二十六、Shell工具与trap信号

日期时间函数date,date +%格式" "%格式。。。
    %d Day
    %m Month
    %y 两位数年份
    %Y 四位数年份
    %A 星期几
    %R 12:01
    %T 12:01:49

信号
    1    SIGHUP    挂起或父进程被杀死    Ctrl+D或exit命令
    2    SIGINT    键盘中断   Ctrl+C
    3    SIGQUIT   从键盘退出
    9    SIGKILL   无条件中止
    11   SIGSEGV   段(内存)冲突
    15   SIGTERM   软件终止(缺省杀进程)
可以使用kill -信号号码 pid 杀进程
    或者kill -s SIGKILL pid

使用trap捕捉信号
    trap "command" SIG1 SIG2 …
    其中command是捕捉到信号后要执行的函数名称,SIG1是指要捕捉的信号数字。
        特例,只捕捉不处理:trap "" 2 3
        特例,取消信号捕捉:trap 2 3

Continue reading »

062011
 

第四部分 基础Shell编程

十六、Shell脚本介绍

增加脚本执行权限,用 chmod u+x name.sh

执行脚本,使用 ./name.sh

十七、条件测试

测试一些条件,返回结果储存在 $? 中。测试条件,来实现一些分支判断。

使用test命令,或者[空格 命令 空格]来执行测试
    文件测试的选项有:
        -d 文件夹
        -f 普通文件
        -L 链接文件
        -r 可读
        -w 可写
        -x 可执行
        -s 非空文件
        例如$ [ -w myfirstc.c ]
                $ echo $?
                0
    逻辑连接两个测试:
        -a 与运算,如[ -w file1 -a -w file2 ]
        -o 或运算,如[ -r file1 -o -r file2 ]
        !  非运算,如[ ! -w myfirstc.c ]

Continue reading »