Mr. 21 http://mr21.in KunMing | SysAdmin | Blogger | G Fans Fri, 10 May 2013 18:44:51 +0000 en-US hourly 1 http://wordpress.org/?v=3.7.1 如何在vSphere里加载第三方设备驱动 http://mr21.in/software/how-to-add-third-party-driver-in-vsphere.html http://mr21.in/software/how-to-add-third-party-driver-in-vsphere.html#comments Fri, 10 May 2013 18:44:51 +0000 http://mr21.in/?p=419 闲着无聊拿办公室的台式机搭建vSphere环境测试,找来加上的一块RTL8139D的网卡虽然能识别出来,但是系统没有内置驱动,遂Google之,得出以下方法:

  1. 下载封装好的VIB格式的驱动包
    我需要的是RealTek 8139网卡的驱动,所以找到这个包net-8139-1.0.0.x86_64.vib,当然官方有最好。
  2. 将驱动包传到vSphere服务器上
    如果启用了SSH可通过SFTP方式,或者直接在vSphere Client里传到相应的存储里面,或者用USB或者光驱。
    使用USB方式,可以在/vmfs/volumes找到挂载的卷名
    使用光驱据说比较麻烦,需要以下步骤:

    1
    2
    3
    
    # vmkload_mod iso9660
    # /sbin/vsish -e set /vmkModules/iso9660/mount mpx.vmhba32:C0:T0:L0
    # ls /vmfs/volumes/CDROM
  3. 进入vSphere的Shell
    两种方式,一个是通过SSH,一个是通过在vSphere主机键盘上按组合键Ctrl+F1,输入ROOT密码即可。
  4. 查看设备是否被识别出来
    这个简单,Linux通用命令lspci及lsusb仍然有效。

    1
    2
    3
    4
    
    # lspci
    ........
    00:03:00.0 Network controller: Realtek Realtek 8168 Gigabit Ethernet [vmnic0]
    00:04:01.0 Network controller: Realtek RTL-8139/8139C/8139C+
  5. 执行以下命令进入维护模式并允许安装第三方包
    1
    2
    
    # esxcli system maintenanceMode set -e true -t 0
    # esxcli software acceptance set --level=CommunitySupported
  6. 安装VIB格式驱动包
    1
    
    # esxcli software vib install -v /vmfs/volumes/datastore1/net-8139-1.0.0.x86_64.vib

    实际文件路径根据情况自行修改。

  7. 退出维护模式
    1
    
    # esxcli system maintenanceMode set -e false -t 0
  8. 重启,reboot
  9. 查看是否生效
    1
    2
    3
    4
    5
    6
    7
    8
    
    # esxcfg-nics -l
    Name    PCI           Driver      Link Speed     Duplex MAC Address       MTU    Description                   
    vmnic0  0000:03:00.00 r8168       Up   1000Mbps  Full   10:78:d2:XX:XX:XX 1500   Realtek Realtek 8168 Gigabit Ethernet
    vmnic1  0000:04:01.00 8139too     Up   100Mbps   Full   00:e0:4c:XX:XX:XX 1500   Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
    # lspci
    .......
    00:03:00.0 Network controller: Realtek Realtek 8168 Gigabit Ethernet [vmnic0]
    00:04:01.0 Network controller: Realtek RTL-8139/8139C/8139C+ [vmnic1]
  10. Done.

-EOF-

——————–
引用参考:

  1. VSphere 5.1 i Realtek 8139 (8139too) w jednym stali domu.
  2. 如何为ESXi4&5主机安装驱动
]]>
http://mr21.in/software/how-to-add-third-party-driver-in-vsphere.html/feed 1
Ubuntu Network Manager的L2TP插件 http://mr21.in/codes/l2tp-plugins-for-ubuntu-network-manager.html http://mr21.in/codes/l2tp-plugins-for-ubuntu-network-manager.html#comments Fri, 13 Jul 2012 17:27:55 +0000 http://mr21.in/?p=404 因为最近比较无聊,打算用Ubuntu作为ThinkPad X200的主作业系统,但是身处的两个公司,一个用Cisco VPN一个用L2TP VPN,两者都要相互兼顾才行,前者的话,倒是有很方面的安装包可以实现(network-manager-vpnc),同时还集成在Network Manager里面,而另一个用apt-cache search后发现,没有合适的L2TP客户端,按照以往的经验,似乎要安装xl2tpd和用文本配置才行,这样未免太麻烦了。

于是放狗(Google)搜索,找到这么一篇文章可以实现用Network Manager来管理L2TP连接,特转来记录一下,相关版权归原作者Cherrot所有。

大概是这么回事儿,有个项目叫NetworkManager-l2tp,作为Network Manager的第三方插件出现,托管在github,可以以集成在Network Manager的方式实现对L2TP连接的图形化管理,让用户可以不用去写那一堆堆的配置文件,大概的安装步骤如下:

  1. 添加Ubuntu特有的PPA源:
    1
    
    sudo apt-add-repository ppa:seriy-pr/network-manager-l2tp
  2. 更新系统的包管理器缓存数据:
    1
    
    sudo apt-get update
  3. 安装需要的network-manager-l2tp:
    1
    
    sudo apt-get install network-manager-l2tp-gnome
  4. 同时停止xl2tpd服务并且禁止其开机自动启动:
    1
    2
    
    sudo service xl2tpd stop
    sudo update-rc.d xl2tpd disable

之后,就可以通过Menu Bar里面的Network Manager来新建和使用、管理L2TP VPN连接了,与内置的PPTP及后装的Cisco VPN插件一样的方便快捷,不过原文作者提到了一个小问题,如果连接L2TP的VPN时提示“没有合法的 VPN Secret”的话,那么推荐重启一下你的Ubuntu,具体原因未知,据说可能是因为和其他正在运行的VPN客户端冲突导致的。

顺手截个图留念:

-EOF-

——————–
引用参考:
《Network manager的L2TP VPN插件,可选支持IPSec》
http://www.cherrot.com/2012/03/network-manager-l2tp-vpn-plugin-ipsec-supported

]]>
http://mr21.in/codes/l2tp-plugins-for-ubuntu-network-manager.html/feed 5
Steve Jobs, 1955-2011 http://mr21.in/my-feeling/steve-jobs-1955-2011.html http://mr21.in/my-feeling/steve-jobs-1955-2011.html#comments Thu, 06 Oct 2011 09:12:23 +0000 http://mr21.in/?p=399 哀悼史蒂夫·乔布斯,谨此记。



个人资料:

– 出生日期:1955年2月24日
– 出生地:旧金山
– 全名:Steven Paul Jobs
– 养父母: Paul machinist和Clara (Hagopian) Jobs
– 亲生父母:Joanne Schieble和Abdulfattah Jandali(都是教师)
– 婚姻:Laurene (Powell) Jobs (1991年3月18日至今)
– 与Laurene的孩子:Eve、Erin和Reed
– 与Chrisann Brennan的孩子(非婚生): Lisa Brennan-Jobs (1978年)
– 教育程度:1972年俄勒冈州里德学院一学期
– 宗教:禅宗佛教

其它情况:

– 高中期间,乔布斯请William Hewlett(惠普联合创始人)提供一些零部件以完成他的手工作业。惠普为乔布斯提供了一个实习机会。
– 在1997年重返苹果后,乔布斯年薪为1美元。
– 乔布斯追查他的亲生父母时发现,他的妹妹是小说家Mona Simpson。
– 乔布斯在高中时见到了日后成为苹果联合创始人的Steve Wozniak,那年乔布斯13岁,Wozniak18岁。

乔布斯大事表:

– 1972:高中毕业,进入里德学院,一个学期后辍学。
– 1974:在雅达利工作,同年离开前往印度旅行。
– 1976: 在车库与Steve Wozniak一起创立了苹果,推出了Apple I。
– 1977: 与Wozniak一起推出了Apple II。
– 1980: 苹果推出了Apple III。
– 1983: Apple Lisa电脑推出,以乔布斯的女儿Lisa命名。
– 1984: 苹果推出 Macintosh。
– 1985: 因与管理层的分歧离开苹果,随后创立了电脑公司NeXT。
– 1986: 乔布斯收购了皮克斯动画工作室。
– 1996: 将NeXT出售给苹果,重返苹果担任顾问。
– 1997: 被任命为苹果临时CEO。
– 1998: 苹果推出iMac。
– 2000: 乔布斯成为苹果永久CEO。
– 2001: 苹果推出iPod,到2007年iPod市场份额已达70%。
– 2003年4月28日:推出iTunes商店,到2010年1月,90亿首歌通过iTunes购买。
– 2003年7月:披头士乐队所创的苹果唱片公司起诉苹果的iTunes网站侵犯其商标权,该诉讼与2007年解决。
– 2003: 乔布斯被诊断出患有胰腺癌。
– 2004年7月31日: 手术且切除癌症肿瘤。
– 2005年4月: 乔布斯入选时代杂志100位最具影响力人物。
– 2006:皮克斯与迪士尼合并,乔布斯成为迪士尼董事会成员。
– 2006年4月1日:苹果庆祝30周年。
– 2007年1月9日:乔布斯在Macworld大会上推出了iPhone。
– 2008: 推出了 MacBook Air。
– 2008年6月27日:前苹果股东对乔布斯和一些苹果董事会成员发起集体诉讼,称他们参与倒填股票期权授权日期,涉嫌欺诈投资者。苹果承认在1997年至2002年存在6428份倒填期权日期问题,并为此计入了8400万美元的费用。
– 2008年8月28日:彭博社意外发布乔布斯的讣告。
– 2009年1月5日:乔布斯发公告驳斥健康传言,称过去几年变瘦是因为“荷尔蒙失调”。
– 2009年1月14日:乔布斯宣布将休病假直到2009年6月底。乔布斯对健康问题未作详细说明,只说比想象中的复杂。
– 2009年6月20日:华尔街日报报道,乔布斯在2009年4月进行了肝脏移植。这次手术被田纳西州孟菲斯市的卫理公会大学医院在2009年6月23日证实。
– 2009年6月29日:苹果发言人Steve Dowling宣布乔布斯已重返工作岗位。
– 2010年1月27日:乔布斯推出iPad。
– 2011年1月:乔布斯再次休病假。
– 2011年3月2日:乔布斯发布iPad 2,受到起立欢迎。
– 2011年6月6日:在全球开发者大会上,乔布斯发布iCloud。其他苹果高管展示了OS-X Lion和 iOS-4。
– 2011年8月:苹果和埃克森美孚争夺美国市值最大公司宝座,市值分别为3450亿美元和3500亿美元。
– 2011年8月24日:乔布斯辞去苹果CEO职位,但宣布将担任董事会主席。蒂姆·库克接任CEO。
– 2011年10月5日:乔布斯逝世

]]>
http://mr21.in/my-feeling/steve-jobs-1955-2011.html/feed 2
启用Web服务器的IPv6支持 http://mr21.in/network-technology/enable-ipv6-support-for-your-webserver.html http://mr21.in/network-technology/enable-ipv6-support-for-your-webserver.html#comments Wed, 06 Apr 2011 12:17:27 +0000 http://mr21.in/?p=370 前几天Burst西海岸的VPS开售了,于是21一个鸡冻就入了一个最低配的,看样子貌似我是第14个客户……
由于Burst在主机配置里面提到了提供IPv6地址,于是昨天发了ticket请求设置,今早来看已经给我设了4个v6的地址,但是默认安装默认配置的Apache2并不支持IPv6的访问,于是萌生了整理一下各主流Web Server启用IPv6方式访问的设置,其实都不复杂。

21个人喜欢nano编辑器,如果你喜欢vi,稍微换一下命令就行。
如果提示

1
bash: nano: command not found

请如下操作

1
2
Debian/Ubuntu: sudo apt-get install nano
CentOS/Fedora: yum install nano

高快直达:1. Apache 2 / 2. Nginx / 3. Lighttpd / 4. IIS 6/7

Apache 2

一般使用系统超级牛力apt-get或者yum安装的Apache2都支持了IPv6,只是默认的配置里面不支持,设置办法如下:

1
2
3
4
5
nano /etc/apache2/port.conf
或
nano /etc/httpd/conf/httpd.conf
或
nano /etc/apache2/apache2.conf

打开nano编辑器后,按Ctrl+W搜索Listen,之后将其修改为如下格式

1
2
Listen 0.0.0.0:80
Listen [::]:80

然后按Ctrl+O保存,按Ctrl+X退出。之后重启apache2的服务便可:

1
2
Debian/Ubuntu: invoke-rc.d apache2 restart 或 invoke-rc.d httpd restart
CentOS/Fedora: service apache2 restart 或 service httpd restart

Nginx

Nginx的话,需要查看一下是否启用了IPv6的支持,在shell输入

1
2
3
4
5
localhost:/usr/local/nginx/sbin# ./nginx -V
nginx version: nginx/0.7.67
built by gcc 4.3.2 (Debian 4.3.2-1.1)
TLS SNI support enabled
configure arguments: --with-ipv6 --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module

然后查看输出的信息是否包含了–with-ipv6字眼,如果没有,那很遗憾,需要重新编译(请参阅这里这里)或者卸载掉当前的Nginx使用LNMP最新版本,如果有,那么继续:
找到你的nginx配置文件,可以使用如下命令

1
2
localhost:~# whereis nginx.conf
nginx: /usr/local/nginx

然后编辑该文件

1
nano /usr/local/nginx/nginx.conf

在Server配置段里面寻找Listen增加对IPv6的监听,增加一句listen [::]:80;修改为如下大概效果:

1
2
3
4
5
server
        {
                listen       80;
                listen  [::]:80;
                server_name mr21.in www.mr21.in;

如果想要仅仅监听IPv6而忽略IPv4请求,可以增加ipv6only=on的参数:

1
listen [::]:443 default ipv6only=on;

如果监听某个特定的IPv6地址,这样

1
listen [2607:f0d0:1004:2::2]:80;

诸如此类,以此类推,之后重启你的Lihttpd即可。

1
2
Debian/Ubuntu: invoke-rc.d nginx restart
CentOS/Fedora: service nginx restart

Lighttpd

首先,要先确认你的Lighttpd是否支持IPv6,在终端输入lighttpd -V,查看是否有IPv6 support字样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# lighttpd -V
Build-Date: Sep 30 2008 06:18:08
 
Event Handlers:
	+ select (generic)
	+ poll (Unix)
	+ rt-signals (Linux 2.4+)
	+ epoll (Linux 2.6)
	- /dev/poll (Solaris)
	- kqueue (FreeBSD)
 
Network handler:
	+ sendfile
 
Features:
	+ IPv6 support
	+ zlib support
	+ bzip2 support
	+ crypt support
	+ SSL Support
	+ PCRE support
	- mySQL support
	- LDAP support
	- memcached support
	- FAM support
	- LUA support
	- xml support
	- SQLite support
	- GDBM support

如果没有IPv6 support字样,可能需要升级版本或者重新编译,如果有,编辑Lighttpd的配置文件:

1
# vi lighttpd.conf

在主配置区添加server.use-ipv6 = “enable”,以下为同时启用IPv4和IPv6的情况:

1
2
3
4
5
server.use-ipv6 = "enable"
server.port = 80
$SERVER["socket"] == "0.0.0.0:80" {
# 这里为你的站点配置
}

之后重启你的Lihttpd即可。

1
2
Debian/Ubuntu: invoke-rc.d lighttpd restart
CentOS/Fedora: service lighttpd restart

IIS 6/7

IIS 6/7 步骤比较繁琐,21就不当搬运工了,大家可以移步去 http://loosky.net/?p=1198 瞅瞅;

-EOF-

——————–
引用参考:
1. Enabling IPv6 Support in nginx: http://kovyrin.net/2010/01/16/enabling-ipv6-support-in-nginx/
2. Lighttpd: Enable IPv6 Support: http://www.cyberciti.biz/tips/linux-unix-lighttpd-ipv6-support.html
3. IPv6的安装与配置: http://loosky.net/?p=1198

]]>
http://mr21.in/network-technology/enable-ipv6-support-for-your-webserver.html/feed 2
全球开放注册的域名后缀(TLD) http://mr21.in/network-technology/avaliable-tld-for-global-register.html http://mr21.in/network-technology/avaliable-tld-for-global-register.html#comments Tue, 18 Jan 2011 01:41:53 +0000 http://mr21.in/?p=389
[转]
本文转载自博客好玉米(好域名)
基于作者【原创文章,转载请注明】的要求进行分享,原文在此,感谢QQPCC。

——————————————————————————————————————
21插播:如果不想看罗嗦话的,请直接按 Ctrl+F 搜索你想要注册的后缀是否在文中。

零、原作者引言

  爱玩小米的朋友其实有一点是非常纠结的,那就是许多后缀其实是不允许咱们国人注册的,也就是说,这些后缀对持有人的身份有严格的限制,就算有好域名也与你无缘。当然,有些朋友通过伪造资料或所谓的“挂靠”来注册这样的域名,但QQPCC要告诉这些朋友,其实这是不安全的,就算你想尽办法、侥幸地避开了注册局的审查,但你永远不是这个域名的主人,域名转移、域名交易都会遇到麻烦……
  那么,到底那些后缀是你可以堂堂正正地用你的中国身份注册的呢?可能很多朋友并不清楚,QQPCC今天就来给各位爱好小米的朋友说一说,如果还有QQPCC没有发现的,请大家补充。

一、国际顶级域名

    普通用户可以注册的有:.com、.net、.org、.info、.biz、.coop、.mobi、.name、.tel。

二、区域后缀

    其实都有限制,只限各大洲自己的组织或公民注册。
    不过亚洲的.asia没有关系,因为咱们都是亚洲人,呵呵!
    非洲和大洋洲好像现在并没有神码后缀,呵呵,美洲有,但现在只有二级域名开放。
    有个特殊的东东,前苏联的.su,ICANN很多次想删除,但前苏联人民对其太有感情了,多年来一直没有删除成功,这个可公开注册。

三、国家(地区)后缀

  1. 亚洲各国(地区)后缀开放注册的有:
    .kg(吉尔吉斯坦)、.kz(哈萨克斯坦)、.tj(塔吉克斯坦)、.uz(乌兹别克斯坦)、.mn(蒙古)、.tw(台湾)、.af(阿富汗)、.in(印度)、.ir(伊朗)、.pk(巴基斯坦)、.lk(斯里兰卡)、.la(老挝)、.ph(菲律宾)、.tl(东帝汶)、.vn(越南)、.am(亚美尼亚)、.ps(巴勒斯坦)、.ae(阿联酋)。
    亚洲还有两个特殊的后缀,一个是.io,好像原来是专门准备给英国的印度洋领地设的,开放注册。
    还有一个是.cn,是不开放的,但国人注册没有问题啦,注不注是你的事了。
  2. 欧洲各国(地区)后缀开放注册的有:
    .by(白俄罗斯)、.cz(捷克)、.md(摩尔多瓦)、.pl(波兰)、.ro(罗马尼亚)、.ru(俄罗斯)、.dk(丹麦)、.gg(根西岛)、.im(马恩岛)、.is(冰岛)、.je(泽西岛)、.lt(立陶宛)、.lv(拉脱维亚)、.se(瑞典)、.es(西班牙)、.gr(希腊)、.me(黑山)、.si(斯洛文尼亚)、.at(奥地利)、.be(比利时)、.ch(瑞士)、.li(列支敦士登)、.lu(卢森堡)。
    欧洲也有个特殊的后缀,就是.cat,是专门为推广加泰罗尼亚语设立的,开放注册。
  3. 美洲各国(地区)后缀开放注册的有:
    .ag(安提瓜和巴布达)、.ai(安圭拉)、.bs(巴哈马)、.cu(古巴)、.dm(多米尼克)、.do(多米尼加共和国)、.gd(格林纳达)、.gp(瓜德罗普岛)、.ht(海地)、.kn(圣基茨和尼维斯)、.lc(圣卢西亚)、.ms(蒙特塞拉特)、.pr(波多黎各)、.tc(特克斯和凯科斯群岛)、.tt(特里尼达和多巴哥)、.vc(圣文森特)、.vg(英属维尔京群岛)、.bz(伯利兹)、.cr(哥斯达黎加)、.mx(墨西哥)、.gl(格陵兰)、.co(哥伦比亚)、.ec(厄瓜多尔)、.gf(法属圭亚那)、.gy(圭亚那合作共和国)、.pe(秘鲁)、.sr(苏里南)。
  4. 非洲各国(地区)后缀开放注册的有:
    .bi(布隆迪)、.dj(吉布提)、.mu(毛里求斯)、.mw(马拉维)、.sc(塞舌尔)、.ug(乌干达)、.yt(法属马约特岛)、.cd(刚果民主共和国)、.cg(刚果共和国)、.cm(喀麦隆)、.ga(加蓬)、.gq(赤道几内亚)、.st(圣多美)、.td(乍得)、.ly(利比亚)、.ma(摩洛哥)、.ac(阿森松岛)、.na(纳米比亚)、.sh(圣海伦娜)、.ci(科特迪瓦)、.gw(几内亚比绍)、.ne(尼日尔)、.sl(塞拉利昂)、.sn(塞内加尔)、.tg(多哥)。
  5. 大洋洲各国(地区)后缀开放注册的有:
    .cc(科科斯群岛)、.cx(圣诞岛)、.nf(诺福克岛)、.as(美属萨摩亚)、.fm(密克罗尼西亚)、.ki(基里巴斯)、.mh(马绍尔群岛)、.mp(北马里亚纳群岛)、.nu(纽埃岛)、.pn(皮特凯恩群岛)、.tk(托克劳)、.to(汤加)、.tv(图瓦卢)、.vu(瓦努阿图)、.wf(瓦利斯和富图纳群岛)、.ws(萨摩亚群岛)。
  6. 其它
    另外,ICANN还专门为南极洲设了几个后缀,有些当然不开放,呵呵,但还是有下面这样几个是开放的:
    .gs(南乔治亚)、.hm(赫德和麦当劳群岛)、.tf(法属南极领地)。

——————————————————————————————————————
21对原文进行了部分删减和适当的重排,主要是为了方便自己查询,同时也给访问Mr. 21博客的各位提供一点丰富业余生活的资料,目前21本人持有的TLD有.com/.cn/.net/.org/.info/.in/.me/.im/.name/.lu,其中CN是帮朋友注册的,属于余孽,因为白名单及认证和备案的问题,且国内的空间及各种虚拟服务良莠不齐,导致需要用CN+外国空间的组合很难实现,会在到期时候直接丢弃,该朋友已经改用.im了。

想当年21个人持有的20多个CN玉米长达三年之久,结果因为2009年12月9日的CCTV的一段“强烈批判”(请参考《关于域名注册的建议》),让我看到了CN玉米在个人把玩领域的覆灭,于是,在徒劳地认证了我的易名账户之后,里面的CN米也就不了了之了。

希望转载QQPCC的这篇文章可以给大家注册域名的时候提供一点参考,毕竟一些后缀以中文拼音的方式来理解还是比价有意思的,比如.lu(路) .gd(广东) .pl(破烂) .lv(驴) .ai(爱) .bs(鄙视) .mn(蒙牛)等…… 当然,这些玩意儿是见仁见智的,大家自己了然就好,哈哈~

同时,21想大家推荐好玉米(好域名)博客,至于为什么,花两分钟看一下就知道了~ 作者QQPCC这段时间就出了一系列域名注册方面的文章,大家可以前往参考,我在此列个小清单:

  1. 为什么那么多国人前赴后继地送死 http://haoyu.me/985.html
  2. .ORG后缀到底怎么样? http://haoyu.me/959.html
  3. 请理性看待域名优惠码 http://haoyu.me/931.html
  4. 数字好域名之我见 http://haoyu.me/882.html
  5. 别被域名后缀忽悠了你(一) http://haoyu.me/814.html
  6. 别被域名后缀忽悠了你(二) http://haoyu.me/868.html
  7. 域名放在国内好还是放在国外好? http://haoyu.me/866.html
  8. 国际顶级域名后缀详解 http://haoyu.me/840.html

最后,关于注册商,我个人推荐两家:
国外:Godaddy(http://www.godaddy.com) 传说中的“狗爹”,已经很出名了,支持支付宝;
国内:名优网(http://999.cc) 广航的注册代理,涵盖各种稀奇古怪的后缀且价格合理,人民币结算。

-EOF-

]]>
http://mr21.in/network-technology/avaliable-tld-for-global-register.html/feed 3
在OSX的Terminal使用Home和End键 http://mr21.in/google/use-home-and-end-key-in-the-osx-terminal.html http://mr21.in/google/use-home-and-end-key-in-the-osx-terminal.html#comments Sun, 16 Jan 2011 16:55:01 +0000 http://mr21.in/?p=386 因为能在Mac OS X的Terminal(中文名:终端)里使用HomeEnd两个按键对我的日常使用来说实在太重要了,我甚至就为Home和End而喜欢上公司配发的ThinkPad X200忽视了我的MacBook Pro,这是一种奢侈的浪费(甚至Sophy都鼓动我卖掉MacBook Pro),但我之前的《Windows to MacOSX》里Tips1提到的按键技巧都不适用于Terminal,在X200使用越来越顺手的情况下我开始想解决这个问题。

插播:此技巧适用于iMac或者Mac Pro或者你自己外接键盘的情况,用内置键盘的MacBook用家请路过……

于是打开Google搜索到以下技巧,在此保留待查:

  1. 启动终端(Terminal);
    屏幕快照 2011-01-17 上午12.19.17
  2. 选择菜单栏的“终端(Terminal)”->“偏好设置(Preferences)”;
    屏幕快照 2011-01-17 上午12.20.55
  3. 选择“设置(Settings)”->“键盘(Keyboard)”;
    屏幕快照 2011-01-17 上午12.21.07
  4. 在“键(Key)”这列找到end和home;
    屏幕快照 2011-01-17 上午12.21.35
  5. 双击相应的“键(Key)”值,会出现如此画面,把动作(Action)改成“将字符串发送到shell:(Send string to shell:)”,然后点击下面的输入栏,直接按你中意的键(Ctrl+A表现为\001,Ctrl+E表现为\005),点击“好(OK)”关闭设置窗口;
    屏幕快照 2011-01-17 上午12.28.54
  6. 由于Ctrl+A和Ctrl+E在MacOSX里面实际上的作用不大,加上原文作者推荐,我也这么设置了;
  7. 关闭“设置”窗口,完事儿。

其中,原作者文中提到KeyFixer解决相关软件方面的Home与End问题,这个其实在《Windows to MacOSX》里Tips1提到的按键技巧里大部分都是适用的,我也用得很流畅,唯一不爽不适用的就是这次解决的Terminal问题,这下爽了。

Update: Jan 17th, 2011
囧rz……
我在@GordianZ的提醒下突然明悟过来实际上这是应用于台式的iMac或者Mac Pro的键盘技巧,被我悲催得错认为是MBP用的并且对着默认的Ctrl+A/E沾沾自喜,我有罪……我一贯的粗心大意表露无疑,请莫见怪~

-EOF-

——————–
参考引用:
1. 挨踢人, 挨踢党: http://www.cnblogs.com/badder/archive/2010/07/04/1770736.html
2. 哥是键盘手:http://liang.eu/mac/how-to-change-default-behavior-of-home-end-key-on-mac-os-x

]]>
http://mr21.in/google/use-home-and-end-key-in-the-osx-terminal.html/feed 5
SSH和谐主机的iptables设置参考 http://mr21.in/network-technology/a-iptables-configure-example-for-ssh-host.html http://mr21.in/network-technology/a-iptables-configure-example-for-ssh-host.html#comments Thu, 13 Jan 2011 16:49:55 +0000 http://mr21.in/?p=383 这是一个关于SSH番羽土啬的话题,标题及文中的“和谐”=“番羽土啬”,感叹一下我们的文字。

因为21现在手上的VPS数量比较乐观(不是壮观……),因此其中有专司VPN和谐的、SSH和谐的、第三方推和谐的等用途,当然,Mr. 21博客也在其中一个VPS上,用的LNMP包。

写这个话题的起因是这样的,在北山老卫大神的Q群里面,有人提到了想以SSH和谐帐号来换取一些东西,因此引发了21对此的讨论。我的主要观点是不支持这么做,因为不安全(可以参考《利用Linux内核的多个安全漏洞提权》,不过本文内容与此关系不大),加上之前帮番茄童鞋配置iptables,因此引发了21对SSH和谐主机安全方面的思考,其中的一方面就是用iptables来过滤不和谐的东西。

是这样的,因为做实验的这个VPS我只用于SSH和谐,并且一般和谐仅限于Web浏览及各种基于Web的应用,所以,以下策略仅开放SSH的22端口并对其它的东西做了相应的限制。

初始化防火墙

第一步,我们总是要把一些知道的和不知道的先通通打倒了再说,于是,请如此:

1
2
3
4
5
6
7
8
9
#清除现有的规则
~#: iptables -F
~#: iptables -X
~#: iptables -Z
 
#设定默认策略为丢弃包
~#: iptables -P FORWARD DROP
~#: iptables -P OUTPUT DROP
~#: iptables -P INPUT DROP

以上是一些初始化的动作,以下是具有具体功能的策略。

防火墙规则参考一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#允许本地回环
~#: iptables -A INPUT -i lo -p all -j ACCEPT
 
#允许22端口接受连接
~#: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
 
#允许传入的数据包状态
~#: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
#允许传出的数据包状态
~#: iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 
#允许传入PING的ICMP包
~#: iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

这几条规则实现的效果是:

  1. 22端口允许用户主动发起TCP连接,一般用于提供SSH服务,如果你的SSH端口不是22,请修改;
  2. 其它端口需要ESTABLISHED、RELATED两种状态的数据包才能通过,而通常这两种状态的数据包在TCP协议上的定义是已经建立了连接的后续数据包,也就说,别人无法对你的任何端口主动发起连接,但是由你主动发起连接的数据包可以通过,比如说看网页的数据;
  3. 包状态NEW允许SSH用户对外的主动发起连接;
  4. 允许外部用户PING本机,这个嘛,方便自己测试,要不挂了都不知道。
  5. 关于数据包状态,我是参考这里 http://liubin.blog.51cto.com/282313/110394

这样,虽然防住了外面进来的问题,但一定程度上来说,用户通过SSH登录以后就可以干他想干的事情了,对于应用的范围不能达到一个控制的目的,比如说,我前面提到的“一般和谐仅限于Web浏览及各种基于Web的应用”,是的,和谐嘛,也就是用这些了,顶天了再来个FTP或者跳板另外的SSH,于是,21便想到了稍微BT一点的限制,请看参考二。

防火墙规则参考二

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#允许本地回环
~#: iptables -A INPUT -i lo -p all -j ACCEPT
 
#允许22端口的数据进出
~#: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
~#: iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
 
#允许状态正常的数据包进入
~#: iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
#允许访问外部的80、81、8080、443等端口
~#: iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
~#: iptables -A OUTPUT -p tcp --dport 81 -j ACCEPT
~#: iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT
~#: iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
 
#允许UDP数据包外发,由于浏览器发起的是1024~65536之间的随机端口,无法限制为具体端口
~#: iptables -A OUTPUT -p udp -j ACCEPT
 
#允许PING测试的数据包进出
~#: iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
~#: iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT

好吧,规则二实际上能实现跟规则一差不多的效果,就是让SSH和谐用户能正常浏览Web内容及使用Web应用,那区别在哪里呢?之前提到了规则一的SSH用户只要登录进系统,就可以对外发起任何连接了,而规则二只允许用户发起目标端口为80、81、8080、443(https)的TCP连接和任意UDP连接,这样就能有效的限制用户对于SSH的应用范围。

小结

基本上,两个规则都实现了主机仅提供SSH服务(参考一)用于浏览网页(参考二)的目的,并且使用iptables对服务器的其它端口都进行了一些屏蔽,同时提供两种规则方式来实现不同的需求,实际上仅仅这样还是不够的,因为让用户登录到shell里面毕竟还是有一定风险的,特别是一些弱密码的用户也有被暴力猜解的风险,我个人是使用fail2ban的方案来解决暴力猜解的问题,请参考《小内存优化VPS的LNMP及fail2ban配置》,同时还有denyhosts也是用于防止暴力猜解的,可以参考:《Linux VPS上DenyHosts阻止SSH暴力攻击》。

以上内容是21这两天闲来无事的个人研究成果,才疏学浅难免存在一些不合理或不够精简的地方,如果你有任何意见,请留言指教,谢谢。

-EOF-

——————–
参考引用:
1. Google: http://www.google.com/ncr
2. iptables 状态机制的描述:http://liubin.blog.51cto.com/282313/110394
3. 定制iptables防火墙策略:http://ailixing.blog.51cto.com/188828/37309

]]>
http://mr21.in/network-technology/a-iptables-configure-example-for-ssh-host.html/feed 3
系统管理员和程序员 http://mr21.in/view-points/sysadmin-and-programmer.html http://mr21.in/view-points/sysadmin-and-programmer.html#comments Mon, 10 Jan 2011 17:11:21 +0000 http://mr21.in/?p=379
[转]
本文转载自博客Gawain’s Jail
基于作者使用的创作共用授权进行分享,原文在此,感谢Guixing。

——————————————————————————————————————

Everythings Sysadmin的作者Tom给一个初级系统管理员回了封Learn your operating system’s internals的信,有讲到每次靠重启解决问题和用猜代替知道的时候总是觉得这是对行业和专业的深深打击。然后又讲了系统管理上三个复杂且容易误解的内容:内存子系统,文件子系统和进程。再加一个是安全子系统,然而这三块的内容又是理解安全的必要前提。总之就是一个系统管理员一定要深入操作系统,知道操作系统到底是怎么工作的。Tom还列了几本针对不同操作系统的书出来,

  • Windows:《Windows Internals》, 中文版:《深入解析Windows操作系统》
    Russinovich, Solomon and Ionescu;
  • Linux:《Linux Kernel Internals》, Beck, Bohme, Dziadzka, Kunitz et al;
  • FreeBSD:《The Design and Implementation of the FreeBSD Operating System》,
    中文版:《FreeBSD操作系统设计与实现》,McKusick and Neville-Neil;
  • The TCP/IP Protocol: 《TCP/IP Illustrated》, W. Richard Stevens,
    中文版:《TCP/IP详解》,W. Richard Stevens

无论你是否使用FreeBSD,都应该读一读FreeBSD的那本。TCP/IP那本就不消说了,现在离了网络的计算机啥也不是啊!
还有一个Hacker News的贴是问How to step up my coding skills?,提问的人想在半年到一年的时间里成为一个Skilled Programmer,回贴的都说程序员这摊子浑水深了,这点时间是不够的。顶的最多的是说要写代码,也有列了代码量的。不过我觉得Ixiaus列出的建议还是很实用的,比如下面几条:

  • 要成为一个程序员,不是码农。Ctrl+C/V
  • 不要忽视理论、算法、数据结构和数学
  • 学习多个语言,包括面向对象和函数式编程。

系统管理员和程序员虽是两个不同的职位,但是学习的内容应该说是差不多的,系统管理员甚至要比之程序员学得更多,了解的更多,按三金的话就是:我们知道的状态比其他人多,修好只不过是把系统调到已知状态。

——————————————————————————————————————

21之所以要转载这篇文章,是因为身为初级SysAdmin的21在没有前辈指点下自己瞎摸索,苦于没有一个明确的学习方向,一直都是东拼西凑的学习,这篇文章在一定程度上指明了21现阶段需要进行学习的内容和方向,我想我在Google Reader上Make Star和Sharing是不够的,于是转载出来与大家分享,共勉之。

-EOF-

]]>
http://mr21.in/view-points/sysadmin-and-programmer.html/feed 0
WordPress多用户模式子站点无法加载CSS? http://mr21.in/blog-tips/wordpress/wp-multisite-htaccess-not-working.html http://mr21.in/blog-tips/wordpress/wp-multisite-htaccess-not-working.html#comments Mon, 10 Jan 2011 16:49:28 +0000 http://mr21.in/?p=376 21今天突然手闲,想试试传闻已久的WordPress多站点模式(WordPress Multisite),于是用手上的一个DirectSpace年付的VPS(性能?淡定……)临时搭建了一个LAMP,按照WordPress Codex的操作一步一步对WordPress进行修改,按照子目录的形式最后写入 .htaccess 并建立了子站点,但是出现一个问题,子站点可以访问,但是无法加载CSS和图片等东西。

初步判断应该是 .htaccess 里面Rewrite规则可能有问题,但那是官方提供的,不应该吧……
于是通过Google大神一番搜索,确定是Rewrite规则有问题,并将 .htaccess 文件替换为以下内容后工作正常:

WordPress Multisite Based Sub-folder Mode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
 
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
 
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
 
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

————————————————我是分割线————————————————

我刚才重新弄了一下想重演故障,结果发现没问题了,记得看过一篇POST提到WP有个缓存机制导致了这个问题,不过我把 .htaccess 更新了以上代码后,就工作正常了,一时也没留意是否跟WP给出的范例代码是否有所不同,纠结了……放这儿备查吧。

————————————————我是分割线————————————————

Update: Jan 13th, 2011
终于发现问题所在了,由于我手欠,没有使用启用Network功能时 /wp-admin/network.php 提供的 .htaccess 内容,而直接使用了Codex.WordPress提供的Rewrite规则,于是 ……
来自Codex.WordPress的Rewrite规则呈现如下(无法工作的,仅供参考,别用……):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
 
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
 
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
 
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
# END WordPress

主要区别在于以下两句,正好影响到的是主题布景(Theme)、后台管理等功能:

有效的规则:

1
2
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

无效的规则:

1
2
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]

-EOF-

——————–
引用参考:
WordPress Support: http://wordpress.org/support/topic/wp-multisite-htaccess-not-working
Perishable Pre: http://perishablepress.com/press/2010/07/07/htaccess-code-for-wordpress-multisite/
WordPress Codex: http://codex.wordpress.org/Migrating_Multiple_Blogs_into_WordPress_3.0_Multisite
WordPress Codex: http://codex.wordpress.org/Create_A_Network

]]>
http://mr21.in/blog-tips/wordpress/wp-multisite-htaccess-not-working.html/feed 3
利用Linux内核的多个安全漏洞提权 http://mr21.in/codes/linux-kernel-root-level-exploit-leveraging-multiple-previous-vulnerabilities.html http://mr21.in/codes/linux-kernel-root-level-exploit-leveraging-multiple-previous-vulnerabilities.html#comments Sun, 19 Dec 2010 16:39:31 +0000 http://mr21.in/?p=372 这是来自VPSee的消息,因为我个人试了一下Debian表示没有鸭梨,于是转过来,手痒的Ubunu用户可以试试……

——————————————-这是手痒的分割线——————————————-

系统安全高手 Dan Rosenberg 发布了一段 C 程序,这段200多行的程序利用了 Linux Econet 协议的3个安全漏洞,可以导致本地帐号对系统进行拒绝服务或特权提升,也就是说一个普通用户可以通过运行这段程序后轻松获得 root shell,以下在 update 过的 Ubuntu 10.04 Server LTS 上测试通过:

$ uname -r
2.6.32-21-server
 
$ gcc full-nelson.c -o full-nelson
$ ./full-nelson
[*] Resolving kernel addresses...
 [+] Resolved econet_ioctl to 0xffffffffa0131510
 [+] Resolved econet_ops to 0xffffffffa0131600
 [+] Resolved commit_creds to 0xffffffff8108b820
 [+] Resolved prepare_kernel_cred to 0xffffffff8108bc00
[*] Calculating target...
[*] Failed to set Econet address.
[*] Triggering payload...
[*] Got root!
#

由于 RHEL/CentOS 默认不支持 Econet 协议,所以测试没有通过:

$ uname -r
2.6.18-194.26.1.el5
 
$ gcc full-nelson.c -o full-nelson
$ ./full-nelson
[*] Failed to open file descriptors.

如果在企业环境用 Ubuntu 的话可能会比较杯具了,几百个帐号里总可以找到一两个帐号被内部或外部人员通过上面这段程序拿到 root,这对服务器的危害是毁灭性的。前天还在说 Ubuntu 在内核方面无作为,现在想起来还有点后怕。VPSee 提醒正在使用多个普通帐号登录 Ubuntu VPS 的朋友及时升级或打内核补丁,出售 VPN/SSH 帐号、提供免费 SSH 的商家尤其要小心 “客户” 捣乱,使用其他 Linux 发行版的朋友也最好检查一下自己的 VPS 有没有这些高危漏洞。

——————————————-这是手痒的分割线——————————————-

21个人的测试,在Debian 5.0.6上测试,结果如下:

$ uname -r
2.6.26-2-xen-amd64
$ gcc h.c -o h
$ ./h
[*] Resolving kernel addresses...
 [+] Resolved econet_ioctl to 0xffffffffa017819b
 [+] Resolved econet_ops to 0xffffffffa01791e0
[*] Failed to resolve kernel symbols.

同时,各位提供SSH番羽墙的童鞋,只要把用户的shell设置为nologin便可以表示没有鸭梨了~

-EOF-

]]>
http://mr21.in/codes/linux-kernel-root-level-exploit-leveraging-multiple-previous-vulnerabilities.html/feed 6
Convert .htaccess to nginx http://mr21.in/software/convert-htaccess-to-nginx.html http://mr21.in/software/convert-htaccess-to-nginx.html#comments Fri, 10 Dec 2010 02:46:22 +0000 http://mr21.in/?p=369 这篇,我稍微微博一下好了 …… 这么好的工具,不得不马克一下~

Link: http://www.anilcetin.com/convert-apache-htaccess-to-nginx/

不过据说有人因此Nginx起不来,大家慎用就是了……

-EOF-

]]>
http://mr21.in/software/convert-htaccess-to-nginx.html/feed 2
小内存优化VPS的LNMP及fail2ban配置 http://mr21.in/software/fail2ban-and-lnmp-configration-for-little-memory-vps.html http://mr21.in/software/fail2ban-and-lnmp-configration-for-little-memory-vps.html#comments Tue, 07 Dec 2010 10:28:00 +0000 http://mr21.in/?p=367 哈,大家好,21经过长时间的“沉没”,在这个寒冷的冬日怎么着也该冒泡泡以表无恙呀~ 话说,今天是二四节气中的“大雪”,够不上下雪条件的昆明便下起了稀里哗啦的雨,让21这个电动车男给冻的 …… 无法用言语形容的呀~

经过近半年时间,21手上开始掌握了一些廉价的VPS进行个人学习和实验,基本配置小至128M OpenVZ大至512M Xen都有,当然,买来以后闲置的时间稍微占多了点,不过由于Hawkhost空间12.6到期的刺激,我把Mr. 2175%都搬迁到其中一个512M Xen VPS上并且进行了相关的配置。本着内存能少用就少用、资源能节约就节约的原则,我进行了一些学习和模仿。

文中涉及到的操作基本上都需要root权限,且,21个人喜欢nano编辑器,如果你喜欢vi,稍微换一下命令就行。

基础调配部分及LNMP

由于21喜欢用Debian,于是参考了VPSee的文章《64MB VPS 上优化 Debian 5》和LowEndBox的《Bootstraping WordPress/Nginx/PHP/MySQL on a Cheap VPS with lowendscript》,对VPS上的OpenSSH、 syslog-ng用Dropbear和inetutils-syslogd进行了替换,从基础上对资源占用进行了控制,大概操作如下:

    OpenSSH、 syslog-ng的替换,我使用了LEB的lowendscript,在root用户下,如此操作便可:

    1
    2
    
    wget http://github.com/lowendbox/lowendscript/raw/master/setup-debian.sh
    bash setup-debian.sh system

    如果你参考这里,会发现LEB的这个脚本其实还可以安装LNMP里面的NMP(Nginx, MySQL, PHP)三个组件,但是我个人比较喜欢国人的LNMP,于是仅使用LES脚本进行了系统组件的替换。

之后,我安装LNMP 0.5(请参考这里)作为WEB服务器,并且进行了一些调整,这个调整请按照自己的需求就好。

  1. 将Nginx的子线程调整为2个,方法如下:
    1
    
    nano /usr/local/nginx/conf/nginx.conf

    找到worker_processes,将其改成下面的样子:

    1
    
    worker_processes 2;

    然后按Ctrl+O保存,按Ctrl+X退出。

  2. 同时,我将PHP-FPM的子线程也调整为2个,方法如下:
    1
    
    nano /usr/local/php/etc/php-fpm.conf

    按Ctrl+W搜索max_children,改成下面这样的格式:

    1
    
    <value name="max_children">2</value>

    然后按Ctrl+O保存,按Ctrl+X退出。再来重启nginx和php-fpm:

    1
    2
    
    invoke-rc.d nginx restart
    /usr/local/php/sbin/php-fpm restart
  3. 关于这个……MYSQL的调优,这个……21表示个人水平不足,就不献丑了。

Fail2Ban调配部分

这是一些比较基础的安全方面的调配。

  1. 首先,是禁用root用户的ssh登录,由于我们已经用Dropbear替换了OpenSSH,所以跟一般教程针对OpenSSH的修改方式不太一样,大概方法如下:
    1
    
    nano /etc/xinetd.d/dropbear

    然后把其中的server_args修改为如下样子

    1
    
        server_args     = -i -g

    让 /etc/xinetd.d/dropbear 配置文件看起来像这样

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    service ssh
    {
        socket_type     = stream
        only_from       = 0.0.0.0
        wait            = no
        user            = root
        protocol        = tcp
        server          = /usr/sbin/dropbear
        server_args     = -i -g
        disable         = no
    }

    然后按Ctrl+O保存,按Ctrl+X退出。
    -g的意思就是禁用root使用密码登录,但可以用公钥登录(public key)(请参考这里)。
    然后重启Dropbear:

    1
    
    invoke-rc.d xinetd restart
  2. 禁用了root账户登录,但是21在某些特定的没有公钥情况下又需要登录SSH,怎么办呢?增加一个普通用户就好了,这个用户不用具备什么特殊权限,只要能登录SSH足矣,大概操作如下:

    1
    
    useradd [username] -p [password]

    [username]替换为你想要的用户ID(注:不能为纯数字),[password]替换为想要的密码便可。
    之后我们以[username]登录系统,然后输入su root,再输入root密码便可以切换到root用户的shell。
    推荐不要使用太简单的ID,比如a/ab/abc什么的,为什么?后面告诉你。

好了,虽然21禁用了root用户的登录,但是还有个无法避免的问题:暴力猜解,如果我们使用了够简单的ID,例如a/ab/abc之类的,那么很容易被锁定为爆破目标,那我就是喜欢a这个ID怎么办呢?好吧,那只好来点稍微强硬点的措施了,21用fail2ban。fail2ban可以监视你的系统或者应用日志,然后匹配日志的错误信息(正则式匹配)执行iptables屏蔽策略,把某IP的包扔掉,fail to ban~

Fail2ban本身已经内置了不少应用的判断规则了

1
2
3
4
5
apt-get install fail2ban //安装fail2ban
ls /etc/fail2ban/filter.d/
apache-auth.conf      apache-overflows.conf  couriersmtp.conf  gssftpd.conf        postfix.conf    qmail.conf      sshd.conf         wuftpd.conf
apache-badbots.conf   common.conf            named-refused.conf  proftpd.conf    sasl.conf       vsftpd.conf       xinetd-fail.conf  apache-noscript.conf
courierlogin.conf     exim.conf              pam-generic.conf    pure-ftpd.conf  sshd-ddos.conf  webmin-auth.conf

但是我们已经把SSH服务换成了Dropbear,把日志服务换成了inetutils-syslogd,那fail2ban会不会水土不服呢?
哈,这简直是必须的~

我们需要做点工作让fail2ban能适应我们这个精简过的系统,适应Dropbear的错误日志。

  1. 首先,Fail2ban需要监视Dropbear的用户登录日志,但是替换成inetutils-syslogd以后,21发现自己的 /var/log/auth.log.1 (没错,我的不是auth.log,是auth.log.1)停滞在某年某月某日了~ 于是稍微看了一下 /var/log/messages 发现里面有我需要的信息,我把它登录信息分离出来方便Fail2ban的读取,如下:

    1
    
    nano /etc/syslog.conf

    默认内容如下:

    1
    2
    3
    
    *.*;mail.none;cron.none -/var/log/messages
    cron.*                  -/var/log/cron
    mail.*                  -/var/log/mail

    增加一个句子将登录信息分离出来,修改为

    1
    2
    3
    4
    
    *.*;mail.none;cron.none -/var/log/messages
    cron.*                  -/var/log/cron
    mail.*                  -/var/log/mail
    authpriv.*              /var/log/auth.log

    到此为止我们拥有了一个单独的包含Dropbear登录信息的日志文件 /var/log/auth.log。

  2. 接下来我们设置Fail2ban,按照常规对SSH进行防御的教程,说的都是针对OpenSSH的设置和判断规则,而显然Dropbear是被遗忘的,甚至Debian的Bug Report里面都有人提到这样的问题,当然,也有人帮忙解决这样的问题,大牛总是有的~

    首先,我们需要下载一个针对Dropbear的判断策略文件,如下:

    1
    
    wget -c "http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=dropbear.conf;att=1;bug=546913" -O /etc/fail2ban/filter.d/faidropbear.conf

    然后,在fail2ban的配置里面增加对dropbear的监视和动作:

    1
    
    nano /etc/fail2ban/jail.conf

    按Ctrl+V一直翻页到最下面空白处,增加以下内容

    1
    2
    3
    4
    5
    
    [ssh-iptables]
    enabled  = true
    port = ssh
    filter   = dropbear
    logpath  = /var/log/auth.log

    然后按Ctrl+O保存,按Ctrl+X退出,之后,便是我们的收尾动作了,执行

    1
    
    invoke-rc.d fail2ban restart

完事儿了。

引用参考:
1. Google: http://www.google.com/ncr
2. Debian Bug Report: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=546913
3. LowEndBox: http://www.lowendbox.com/blog/wordpress-cheap-vps-lowendscript/
4. VPSee: http://www.vpsee.com/2009/06/64mb-vps-optimize-debian5/
5. HostingFu: http://hostingfu.com/article/use-dropbear-ssh-to-save-memory
6. Easy Firewall Generator: http://easyfwgen.morizot.net/gen/

- EOF-

]]>
http://mr21.in/software/fail2ban-and-lnmp-configration-for-little-memory-vps.html/feed 4
MacBook Pro – Fan Control http://mr21.in/software/macbook-pro-fan-control.html http://mr21.in/software/macbook-pro-fan-control.html#comments Sun, 22 Aug 2010 13:33:01 +0000 http://mr21.in/?p=365 这篇文章主要介绍了在Mac OS X、Ubuntu Lucid和Windows 7三个系统平台下对MacBook Pro(以下简称:MBP)的风扇控制,因为不知道为什么的原因,我个人和不少人的MBP都表现出风扇调速迟钝的问题,通常都是2000RPM左右,然后等到机器超过90摄氏度后风扇开始提速到6000RPM进行散热,但这个肯定不是我们需要的效果,我们要的是,要么自己控制,要么自动调整。

Mac OS X

这个身为MBP原生的,与硬件契合度最高的系统同样存在风扇自动调整的问题,至少在我重置了N次SMC的情况依然还是只能达到90度附近才会提速,于是只能用软件来对付了,我个人觉得效果比较好的是Fan Control

名称:Fan Control
系统:Leopard, Snow Leopard
下载:http://www.lobotomo.com/products/FanControl/

安装之后,会在“系统偏好设置”里面增加一个叫“Fan Control”的设置面板。

进去之后三项设置,
Base Speed,初始速度,系统默认是2000RPM,系统启动之后会以这个初始速度为基准;
Lower Threshold,温度下限阀值,这个是配合Base Speed工作的,在这个温度下,转速是Base Speed;
Upper Threshold,温度上限阀值,这个是值达到时系统将以最高转速跑风扇,我的MBP 13是6200。
风扇的转速会自动在Lower和Upper之间自动调整。

Ubuntu Lucid (10.04)

遇到Linux有个好处,直接修改配置文件就行,可以省掉软件了,但是这个没法进行曲线调速了,所以通常我都是直接把速度一步到位直接上到5500RPM,喜欢6000RPM的也行,反正风扇的作用就是处理积热嘛,往高处提一下没有坏处的~

操作如下:
开启终端(Terminal),输入以下指令,之后需要输入你当前用户的密码,然后回车,

1
sudo sh -c "echo 5000 > /sys/devices/platform/applesmc.768/fan1_min"

通过修改fan1_min中的数字“1”,可以调整各个不同风扇的转速,因为MBP 13只有一个风扇,所以也只有fan1,像MBP 15这一类的,可以分别调整fan1和fan2的转速等。并且每次开机的话系统都会自动重置,所以如果需要每次开机都保持一个转速的话,可以自行修改rc脚本。

Windows 7

在Windows下也是需要依靠第三方软件的,据说是有类似于OSX下Fan Control那样的自动调速软件,不过我个人还是比较喜欢把速度调整到5500左右,一次性解决问题。软件叫“Mac/SMC Fan Control for Windows (+ Temp) ”。

名称:Mac/SMC Fan Control for Windows (+ Temp)
平台:32-bit MS Windows (NT/2000/XP), 64-bit MS Windows, Vista, WinXP.
下载:http://sourceforge.net/projects/macfan/

官方没有提到Win7,但是我的Win7-64bit也没有问题的。这是一个基于CLI(CommandLine Interface,命令行界面)的程序,而且同时还需要管理员权限,还要带参数,使用起来稍微有点麻烦,我个人是这么处理的:

  1. 首先将解压缩后的文件放在\windows\mf目录;
  2. 同时在目录里面增加一个批处理文件mf.cmd,内容如下:
    1
    2
    3
    4
    
    @echo off
    @echo Input the fan speed (2000-6200): 
    set /p speed=
    C:\Windows\mf\MacFanx64.exe %speed%
  3. 之后按住Alt键,把mf.cmd拖到桌面上,之后在mf.cmd上右键,选择“属性”,选择“快捷方式”页面,点击“高级”,之后把“以管理员权限运行”勾上。
  4. 双击桌面上的“mf.cmd – 快捷方式”,之后输入你想要调整的风扇转速,回车即可。

因为我的是MBP 13,只有一个风扇,所以只需要提供一个参数,如果有多个风扇的话,请依据自己的需要进行修改,按照Mac/SMC Fan Control for Windows (+ Temp) 的说明文件提到的,用法大概如下:

    MacFan.exe <Desired RPM for Fan 1> <Desired RPM for Fan 2 (if applicable)> <Desired RPM for Fan 3 (if applicable)> <Desired RPM for Fan 4 (if applicable)>

基本上,还是不太建议在MBP上使用其它系统,毕竟efi现在还是不能被其它系统较好地支持。不过像我这种爱折腾的人和不少披着MBP的皮WIN的心的人,这样的速度调整还是有必要的,希望这篇文章能帮到你。

引用参考:
Fan Control: http://www.lobotomo.com/products/FanControl/
MacFan: http://sourceforge.net/projects/macfan/
Ubuntu Forum: http://ubuntuforums.org/showthread.php?t=1378663

]]>
http://mr21.in/software/macbook-pro-fan-control.html/feed 2
如何重置Mac OS X的网络配置 http://mr21.in/network-technology/reset-mac-os-x-network-configuration-factory-default.html http://mr21.in/network-technology/reset-mac-os-x-network-configuration-factory-default.html#comments Tue, 03 Aug 2010 02:23:42 +0000 http://mr21.in/?p=363 由于Mac OS X的智能化,大多数情况我们是不需要对系统配置进行过多的干涉的,但是当我们的网络设备及各种网络接口配置不断增加的时候(例如我除了自带的Airport、以太网之外,还有3个VPN,两个PPPoE,一个Modem over Serial Port及一个Kindle USBNetwork的接口),而不同的配置多了有可能会导致一些奇怪的网络问题,这个时候我们可以选择将Mac OS X的网络配置重置到出厂设置的状态(其实就是系统自动检测设备并重新生成配置),这样你的网络配置部分就跟全新的Mac OS X电脑一样了。

很简单,只需要重命名以下这个文件,然后重启即可。

   /Library/Preferences/SystemConfiguration/preferences.plist

改成

   /Library/Preferences/SystemConfiguration/preferences.plist.bk

然后重启。

具体操作流程如下:
选择Dock上的“应用程序”->“实用工具”->“终端”,然后输入以下命令

1
2
MBP:~ 21$ sudo mv /Library/Preferences/SystemConfiguration/preferences.plist /Library/Preferences/SystemConfiguration/preferences.plist.bk
Password: (此处输入你当前的密码,无显示,输完回车即可。)

回车后输入你当前用户的密码,回车,然后重启你的Mac OS X即可。

请注意,你的网络配置会因此丢失,如果有什么特殊的配置,请自行记录。
提示:这个办法无法解决部分OS X通过Airport连接VPN但是无法访问内网的情况。

引用来源:
Steve Jamesson | Reset Mac OS X network configuration to factory default

]]>
http://mr21.in/network-technology/reset-mac-os-x-network-configuration-factory-default.html/feed 0