作者归档:John

利用Windows Deployment Services远程安装系统

正常情况下,重装系统一般是塞一张光盘给光驱,然后选光盘启动,开工。

文艺一点的会用u盘启动,一样的开装。

但是,如果你面对的是远在半个地球之外的美国某机房中系统挂掉的一只机器的时候,一切就会变得那么苍白无力了。。

设想一下,某天晚上你睡得正香的时候,老板打电话过来说美国客户发现某个网站不能访问,ping了一下发现不通,第一个标准动作肯定是用kvm上去看一下,哇,一个非常标准的蓝屏。。

好吧,蓝屏是小事儿,重启下服务器就是,你运气很好,机房有部署IP开关,先断掉A线,然后断掉B线,再启动A线,B线,好了,服务器开始启动了。漫长的BIOS屏幕飘过,直接就到启动修复了。别问我是什么,被08R2折腾过的都懂的。。一个黑乎乎的cmd窗口就是你的一切。。

这时候你会想,好吧,我认输了,重装总可以吧,仔细想想,惨了,系统是OEM的,没安装介质。打电话给机房,机房的小伙子倒是很乐意帮你,但是需要你自己提供安装介质,他们可以去人。。是不是觉得走投无路了?

还好,还有救命的Windows Deployment Services。

WDS是个windows server 2008 R2的角色,在windows server 2008被引入,作为Remote Installation Services的升级版本出现。

WDS本来是用来方便IT人员大批量的在局域网中windows出现的,本质上就是利用intel提出的pxe(http://en.wikipedia.org/wiki/Preboot_Execution_Environment)进行网络启动的安装。

部署wds非常简单,准备好os的iso,然后在server manager中添加wds的角色,然后完事。当然,网络中也要有dhcp才行,没有?马上装一个呗。

然后,展开wds控制台,添加至少一个启动镜像和一个安装镜像,文件位于os的安装iso\sources下面的boot.wim和sources.wim。

添加完成,就可以用kvm去那只可怜的机器了,重启,选择pxe网络启动,后面的事情就很简单了。。

WDS还可以做其他一些事情,下次继续

利用Google Authenticator提高WordPress博客的安全性

去wp后台,Plugins~Add New,Google Authenticator,目前版本0.3.9

装完,启用,然后去自己profile,找到Google Authenticator Settings,勾上active,随便写点description,狠狠的捅一次Create new secret,然后就可以show QR code,拿出手机开扫了。

插件似乎对中文支持不够好,扫下来乱了,不过无所谓,可以自己在手机上改。

如果没有摄像头,直接添加一个基于时间的类型的账户,记得给对密钥,完事

下次登陆就需要authenticator了

利用平板电脑+鼠标简化IT工作

最近入手一个android的平板,功能类似大号MP4,不过对于我最实用的莫过于可以支持远程桌面以及外挂鼠标。

挂上鼠标以后,将远程桌面分辨率设置为1024*768,屏幕再缩小一些就可以开始roll了

在日常工作中经常有这样的情形:路人甲叫我过去他/她电脑看看出了什么状况,仔细一看发现需要连接到某只服务器做点修改,于是一路小跑回去自己位置,改,然后再回去路人甲乙丙丁那边,看看是否正常,不正常的话。。重复上述过程。有些比较熟的就会直接用他们电脑连自己,总感觉有些不舒服。。

拿上平板以后,接到投诉直接带上板子过去,如果需要在服务器上处理,直接用平板连服务器或者从自己电脑绕过去,甚是方便。加上鼠标可以非常精确的点击,感觉完美

改日补图。。

聊聊双因素认证(two factors authentication)

Google为了增强账户的安全性,防止账号被盗用,引入了双因素认证。

话说这双因素认证,居然还是密码学的一个概念,其实在密码学理论中是三因素认证:

第一个要素(所知道的内容):需要使用者记忆的身份认证内容,例如密码和身份证号码等。

第二个要素(所拥有的物品):使用者拥有的特殊认证加强机制,例如动态密码卡,IC卡,磁卡等。

第三个要素(所具备的特征):使用者本身拥有的惟一特征,例如指纹、瞳孔、声音等。
通常来说,第三个要素的认证是最为强大的,但是需要比较昂贵的设备,例如指纹识别机、虹膜扫描机等等。曾经去银行办业务就有看到过柜员在不停的摸一个和USB Token差不多大小的指纹识别机,没记错的话应该是招行,需要主管授权时候,主管过来看了看,摸了一下就走了。

但是,这个第三个因素有个最大的危险就是拥有者本身容易被攻击,例如。。手指被砍下来。。在各种美片中经常看到用砍下来的手指应付各种指纹门,也有直接用枪顶着人头过去识别虹膜的。。因此,应用这个因素还是有风险的。

在顶级安全的应用中,通常会采用前两个因素共同验证,就被称为双因素认证。

最典型的双因素认证系统就是ATM机。使用ATM机时,需要银行卡和PIN,银行卡就是你拥有的东西,而PIN就是你知道的东西。

google账户的双因素认证中,引入了一个大家都有硬件设备:手机,作为要素二。

在启用双因素认证后,需要输入手机上的动态口令才可以通过验证。手机上的验证码是一个6位数字,按照google的文档,这个数字是和时间关联的,同时需要一个与服务器共享的key作为种子。

google的authenticator在第一次使用时,会要求扫描一个服务器提供的二维码,其中包含了一个用base32方式编码的key。如果硬件设备不支持扫描,也可以手动输入这个key,长度是16bits。然后就可以按照服务器设置的时间间隔生成动态口令了。生成的动态口令也是有生命周期的,常见的是30秒。

利用时间作为生成要素的一个缺点就在于必须保持服务器和令牌的时间一致,因此软件令牌都有时间校准功能。如果是硬件令牌,通常一颗纽扣电池够用几年,所以绝大部分情况下不需要考虑时间校准,确实要校准,估计是要返厂了。。

由于维持时间绝对一致是需要成本的,所以通常情况下,双因素验证中会允许时间稍有误差,google的设置不知道是多少,腾讯的手机令牌是允许两分钟。如果这个时间是两分钟,实际上就有4个动态口令可以通过验证(2*60/30)。

为了避免时间不准确,google的authenticator也支持基于计数器的动态口令,在客户端点击按钮后生成一个口令,同时计数器+1。

这个方案的好处就是不需要考虑时间,缺点也显而易见:如果客户端误按按钮,必然会引起客户端计数器和服务器端不一致,要恢复使用状态,要么调整计数器,要么换一个口令的key。前一种方式很显然会丧失一部分安全性,可能引起重放攻击,而后一种方案代价会比较高,必须要IT管理人员参与。所以google账户的登陆不支持这种方式。

为了防止手机遗失、故障等情况,google也提供了alternative的验证方式。

第一种是用一个电话号码接受短信或者语音呼叫

第二种是利用一组共10个的一次性口令,google推荐打印下来

对于那些不支持双因素认证的程序,google允许生成16位的Application-specific password,用在邮件客户端等非web方式登陆的地方。

说完应用,最后总结思路:

双因素认其实就是给现有的密码认证体系加上一层额外的保护,通过与登陆窗口物理隔离(非常非常重要)的硬件(跑在手机里的软件就当硬件了,如果你非要跑电脑里,还是废了双因素验证吧。。)生成的6位动态口令进行认证。这个口令可以是基于时间的,也可以是基于计数器的。动态口令必须有生存周期,也必须是一次性的。为了防止动态口令生成设备故障,需要提供其他的可选项例如手机短信和电话。如果没有那么高的可用性要求,IT人员作为其他的可选项也是可以的。

这方面有一些规范和指导意见,如下:

Initiative for Open Authentication (OATH)

HMAC-Based One-time Password (HOTP) algorithm specified in RFC 4226

Time-based One-time Password (TOTP) algorithm currently in RFC draft.

下一步目标是开发出给wp用的双因素认证插件,估计要花点时间了。

说说RouterOS的路由策略

话说ROS真的是个好东西,几百块的软件+几百块的硬件就能做到上万块路由器能做的所有事情,于是在公司部署了一只。

先说目前网络状况:

ISP:纯电信(联通国际出口现在太菜了,经常抽风,于是被抛弃了),分别有ADSL(3M、6M各一只),光纤3M

因为公司有大量业务需要和美国传输数据,所以把3M的光纤全部用来保障两个去美国的VPN,以及语音会议。其余所有流量全部走电信ADSL。

6M作为主要出口,3M用来应付一些大流量的应用(其实就是我用。。)

因此,ROS里要同时做源地址路由和目标地址路由,还需要把VPN流量指向对应的机器。

由于在ROS加入之前公司内部已经有一些网络基础设施在那里了,处于冗余的考虑,只有电信光纤直接给ROS的机器,其余两根线都需要走交换机。

ROS的IP设置:
WAN1 x.x.x.x(电信固定IP)
WAN2 x.x.18.2(连在去ADSL线路的交换机上)
LAN x.x.19.2
网段用途:
18网段:所有出口,部分服务器
19网段:办公网络,部分服务器
不要问我为什么服务器有两个IP和两块网卡,我也不知道

配置完IP后,开始创建mangle,以下的配置都是直接从正常运行的路由器copy出来的

;;; 默认出口tel-6m adsl
chain=prerouting action=mark-routing new-routing-mark=tel-6m
passthrough=yes src-address=x.x.19.0/24

;;; 特殊源IP走tel-3m adsl
chain=prerouting action=mark-routing new-routing-mark=tel-3m
passthrough=yes src-address=x.x.1.0/24

;;; 服务器走电信
chain=prerouting action=mark-routing new-routing-mark=tel passthrough=yes
src-address=172.16.18.0/24 in-interface=wan2

然后去配置路由,注意按照routing-mark写正确的路由

然后完事

其实还有两条VPN去美国两个地点的路由,下次继续