3 views 六月 29, 10 by Timothy
本文记录一下搭建VPS常用的一些技巧和方法。此文针对基于Ubuntu系统的VPS,不同Linux发行版估计有稍许差异。
修改SSH默认端口
不要使用默认的22端口,这样很容易暴露SSH服务,也为暴力猜解用户名和密码留下了隐患。解决方法,是将/etc/ssh/sshd_config中的Port由默认的22,改为其他端口
不允许root帐号通过SSH直接登录
这样也是相当危险的,一般的做法是通过SSH配置文件,限制root帐号直接登录。修改/etc/ssh/sshd_config,将PermitRootLogin的值改为no。这样,SSH一律使用普通用户登录,在需要执行更高权限命令时,通过sudo命令,或者su成root再执行
限制同一ID同时多重登陆
这样的做法,能让同一个ID,在同一时间内不能被多人同时登录。
实现方法:编辑 /etc/security/limits.conf
加入如下配置项即可:
#<domain> <type> <item> <value>
* hard maxlogins 1
开启只有FTP登录权限,却没有Shell权限的帐户
非常简单,在useradd添加帐户的时候,设置用户的home目录,却不设置shell类型即可
1
| useradd -d /home/user1 -s /bin/false user1 |
这样,为用户设置了home目录,shell为/bin/false,也即一个不存在的shell,这样,这个用户就只有FTP权限,没有Shell权限了。前提是需要在/etc/shells里面加入/bin/false这种不存在的shell类型,这样系统才不会报错。
VPS禁止ping
1
2
| echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #禁止ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all #允许ping |
3 views 六月 23, 10 by Timothy
最近抽空一直在学习Objective-C,打算不久的将来和同事一起搞iPhone应用开发,所以也咬牙入了Mac Mini和iPhone 3GS。教程看的是《Objective-C基础教程》(Learning Objective-C on the Mac),一本比较初级的教程,也比较适合入门。看了一大半了,不过发现没有动手实际写代码,很多东西还是容易遗忘。正所谓一个好脑袋,不如一支烂笔尖,虽然现在早已不是笔和纸流行的时代,还是打算把自己理解的东西,用学习笔记的形式,把这些记录在偶的Blog中,供以后参考和复习。
废话不多说了,先介绍下Objective-C,Objecive-C是对原有的C语言的扩展,它通过对C语言进行最小集合的扩展,使其本身具有了面向对象的能力。Objective-C并不是一个新的语言,早在20世纪80年代,就诞生了。
这里需要理解几个概念(Key concepts):
Objective-C: 对C语言的扩展,一门面向对象的编程语言
Cocoa: 苹果公司为Objective-C提供的工具包
Cocoa和Objective-C是苹果公司Mac OS X操作系统的核心
Cocoa的前身,是NextSTEP,是Jobs在成立NeXT公司时创建的一款功能强大的用户界面工具包,后来NeXT公司被苹果收购,NextSTEP被更名为Cocoa,这也是Cocoa的由来了。其实在很多Cocoa的函数中,有大量的函数是以"NS”开头的,NS就是NextSTEP的缩写,属于历史遗留问题了。而这些函数的命名也一直被保留下来。
按照惯例,任何编程语言都是以Hello World开始的,下面是Objective-C的Hello World程序:
1
2
3
4
5
6
7
8
| #import <fundation fundation.h>
int main(int argc, const char *argv[])
{
NSLog(@"Hello World and Objective-C!");
return (0);
} // main |
#import关键字: 类似于C语言里面的include。不过import比include更加智能。为了在C中的多个地方,不重复包含同一个头文件,常常需要用#ifdef等相关的预编译指令来进行判断。Objective-C中更为方便,只需要用import关键字简单实现头文件的包含即可,而不必担心同一个头文件会在多个地方被重复包含。
NSLog函数: 用以输出字符串,其中和C语言有个不一样的地方,字符串前面有个@符号。表示后面的字符串是属于NSString,而不是一般的字符串。NSString类型是Cocoa中特有的字符串类型。
运行程序,输出结果,就是打印一串字符串。
第一篇笔记到此结束,以后继续……
3 views 六月 23, 10 by Timothy
昨天iPhone OS 4.0的发布,成为这两天最热闹的一件事了。估计全世界的果粉都等着这一天的到来。昨晚网上等到12点多,都没见OS 4.0公布出来,白天又要上班,所以只有等今晚了。晚饭过后,就开着iTunes,接上iPhone,准备更新固件。

接上iPhone后,iTunes能检测到最新版的4.0固件,于是俺迫不及待的点击了更新。可是好事多磨啊,估计全世界众多的果粉,都在连接和下载,下载速度变得很慢。不幸的是,我的更新看来下载快完成一半了,结果突然显示连接错误,下载停止了。更无语的是,竟然不支持断点续传,又要重新下载。这样的悲剧重复了两三次,实在是没信心了。后来在网上找到公布出来的官方OS的HTTP下载地址,索性开了个QQ旋风来下载,国产软件果然不负众望,以飞快的速度把固件给拖了下来……(看来关键时刻,还是国货当自强啊,嘿嘿)
接下来就是刷机,国产很简单,几分钟后,iPhone就伴随着新的OS 4.0启动了。启动后,在iTunes里能看到更新后的固件版本:
最后,来一张更新固件后的iPhone截图:
OS 4.0的一些新特性,只有慢慢体会了。今晚总算顺利完成了固件升级,打完收工……
0 views 六月 19, 10 by Timothy
Lazy Load是基于jQuery的插件,能让页面的加载更加有序。在遇到图片比较多的页面的时候,就更能派上用场了。由于Blog加载了jQuery,正好也可以用上这个。
具体的设置,可以参考A-Shun同学的相关文章。启用后试用了一下,效果还不错。推荐有兴趣的同学也试试。
0 views 六月 17, 10 by Timothy
早上收到Ben同学的消息,说Linode庆祝7周岁生日,把所有用户的内存全升级了,内存升级幅度达42% 开始我还不太相信,结果在blog.linode.com发现官方一篇慷慨激昂的博文,果然是真的!这下380多的内存变成了512MB,相当赞。看来linode很有眼光,这样一来,产品更有竞争力了。祝linode越来越好!