Archive

Archive for June, 2009

debian:ssh安全自动登录设置

June 29th, 2009 mopyman No comments

用ssh来管理远程服务器真是一件很舒适安逸的事情,当然前提是要做足安全工作,internet上可是杀机四伏啊。

记得我刚安装好Debian的时候 ,为root设置了一个很简单的密码,然后开放了ssh服务,没几天root帐号就让人给暴了, 看看/var/log/auth.log吧,真是惨不忍睹,里面全是尝试ssh登录的记录。好吧,我承认,当时是太没经验了。当然现在这种情况是一去不复返了。

下面就来说说如何提高ssh登录的安全性和自动登录ssh服务器。
Read more…

Categories: GNU/Linux Tags:

64位运算中的REX指令前缀

June 28th, 2009 mopyman No comments

64bits CPU引入了REX指令前缀。
REX前缀的主要功能有以下几点:

  • 指定通用寄存器和SSE寄存器,当然主要是来指定扩展的寄存器,如R8-R15寄存器等
  • 指定64位操作数
  • 指定扩展控制寄存器

一直以来都不知道这个REX缩写词是由哪个或哪几个单词缩写来的,今天突然想明白了,REX应该就是Register EXtension,因为REX的主要功能就是用来索引扩展寄存器的。

关于REX前缀更详细的介绍,请参考Intel® 64 and IA-32 Architectures Software Developer’s Manuals

Categories: Misc Tags:

函数调用栈帧示意图stack frame diagram

June 27th, 2009 mopyman No comments

stack_frame

Categories: Misc Tags:

VirtualBox:客户机FreeBSD 7.2时间严重漂移、跑慢问题

June 23rd, 2009 mopyman No comments

一直琢磨着抽空再玩玩FreeBSD,第一次接触FreeBSD是6.0-Release,距现在时间不短了。

前几天有点儿时间,在windows 2003 R2 x86服务器上的VirualBox 2.2.4里面开始安装最新的FreeBSD 7.2 AMD64 Release。安装也还算顺利,毕竟原来接触过,熟悉了他的分区规则概念slice和partition就没啥大的障碍了。这次装FreeBSD要好好的研究一下,以后在FreeBSD里面host个网站,FreeBSD毕竟是TCP/IP的发源地,其稳定性也是有目共睹的。

因为有在VirtualBox里面安装Debian的经验,特别关注了一下客户机的时间,果然客户机的时间走的特别慢,没多久就与Host差了几分钟,而且可以看到时间差在明显的拉大。系统时间的准确性对于服务器来讲还是比较重要的,cron守护程序,网络日志等都严重依赖于系统时间。因为在客户机Debian使用的ntpd来校对系统时间,运行很正常,也在这里如法炮制吧,在运行ntpd之前也用ntpdate同步了几次时间。但是,为什么又是”但是”。
ntpd看样子很正常,但是Guest系统时间依旧比Host慢一拍,差距眼看着在拉大。当时实在是搞不清怎么回事了,google了一下也没找到满意答案,就暂时放下了。

今天连上FreeBSD一看,晕,时间都慢了一天多了,看来不解决时间是不行了。去google英文站搜,经过几轮筛选总算发现了一个有价值的信息:在FreeBSD的/boot/loader.conf文件里面增加一句kern.hz=100。赶快试验了一下,还真是这样,记得要重启一下guest。不用开ntpd时间也跑的很准确了。当然如果你要求很高可以继续开着ntpd。kern=100这几话怎么讲呢,官方说是降低客户化FreeBSD的CPU使用率,难道是因为CPU使用率高导致部分时钟中断丢失造成时间跑慢吗?我还没想明白,谁明白这个原理给我留言解释一下吧,谢谢。

Categories: FreeBSD, VirtualBox Tags:

traceroute: 使用纯真IP数据库显示中间路由器以及主机的地理位置

June 15th, 2009 mopyman No comments

traceroute是常用的网络诊断和查询工具,但是通常traceroute只能显示中间路由器和主机的ip地址和主机名,如果能输出机器的地理位置是最好不过了。怎么办?重新写一个traceroute?这是windows的思路。traceroute已经足够好了,为什么要重写呢,我们只要把结果加工一下就可以了。不得不佩服UNIX的设计哲学,无疑这种正交的功能,如果硬要搀和在一起,实在是没什么必要和额外的好处。

有了查询纯真IP数据库的Perl程序ip_geo_qqwry.pl,让traceroute显示机器的地理位置是十分简单的事情。把traceroute的输出重定向到一个脚本,脚本中将ip替换成对应的地理位置就可以了。下面是这个perl脚本的代码:

 1 #!/usr/bin/perl
 2
 3 binmode(STDOUT, :encoding(utf8));
 4 require "ip_geo/ip_geo_qqwry.pl";
 5
 6 my $pattern_ip = \(((?:(?:1?[0-9]?[0-9]|2(?:[0-4][0-9]|5[0-5]))\.){3}(?:1?[0-9]?[0-9]|2(?:[0-4][0-9]|5[0-5])))\);
 7 my $line,$matches, $match, $ip_geo_addr;
 8 while($line = <STDIN>){
 9     @matches = $line =~ /$pattern_ip/g;
10     foreach $match (@matches){
11         $ip_geo_addr = &ipwhere($match);
12         $line =~ s/\($match\)/[$ip_geo_addr]/;
13     }
14     print $line;
15 }
16
17 1;

然后这样traceroute www.google.cn | ip2geo.pl就可以看到中间路由器和主机的地理位置了。
下面是我用PuTTY从远程主机执行该命令行的截图:traceroute

Categories: GNU/Linux Tags:

awstats:纯真IP数据库查询脚本ip_geo_qqwry.pl

June 14th, 2009 mopyman No comments

这几天正好研究了一下纯真IP数据库的格式,看着qqwry.pl的代码实在是太乱,所以完全重写了一个perl查询脚本ip_geo_qqwry.pl,配合qqhostinfo插件来查询IP地理位置,看着顺眼多了 :)
Read more…

Categories: GNU/Linux Tags:

Copyleft © 2009-2010 mopyman 本站为原创网站,除非另有声明,本网站采用知识共享“署名2.5 中国大陆”许可协议授权.