Archive for 2009年8月31日


  《广州日报》等媒体报道,河南省固始县在2008年全县选拔正科级和县局级干部任用中,最后确定的12名乡长,基本都是当地官员和房地产老板的子弟。

  (广州讯)中国少数“富二代”网上晒富、豪车聚会、飙车撞人等行为近来备受社会关注,江苏省花钱为他们开培训班的消息更是在网上炒得沸沸扬扬。北京媒体工作者石述思近日发表博客,列出的“穷二代”18条标准在网上广泛转载,唤起人们对贫困家庭子女的关注。

“穷二代”18条标准

  据大洋网报道,石述思列出的“穷二代”18条标准是:

  一、在各种“拼爹”(注:比拼老爹,指学得好不如有个好爸爸)游戏中失败;

  二、感到当农民工和大学生区别不大,于是勇敢地放弃高考;

  三、别人说:家里钱不是问题,你说:问题是家里没钱;

  四、寒暑假,经常需要到田里收庄稼或在城里打工挣学费;

  五、有当城管的冲动,能罩着天天被驱逐的父母;

  六、经常有扼住命运喉咙的冲动,但每次喉咙都被命运扼住;

  七、如果读过《红楼梦》,最受触动的应该是晴雯的判词:心比天高,命比纸薄;

  八、对“宁当富人三奶,不嫁穷人”的说法强烈认同;

  九、从不思考“永远有多远”这样的蠢问题,却经常为明天发愁;

  十、在城市经常被取笑甚至欺负,熟悉各种人的白眼;

  十一、从迷恋个人奋斗到觉得奋斗根本改变不了命运;

  十二、最熟悉的交通工具是农用车、火车和长途大巴;

  十三、熟悉人民币分币的购买力;

  十四、家里往往有没有户口的兄弟姐妹;

  十五、有仇富心理,并十分痛恨贪官,觉得他们不仅夺取了你父辈的财富,更夺取了你翻身的机会;

  十六、害怕自己尤其是家人生病,特别是慢性病,因为没医保;

  十七、经常看《读者》之类的“心灵鸡汤”,但好多姐妹为生活选择了“出卖自己”的方式;

  十八、大体认同这样一种说法:生活中的一切事情,都要靠自己的双手解决,无法反抗就要学会接受。

  石述思对“穷二代”的定义是:那些在改革开放中没有致富的产业工人或者农民,他们的子女如今有很多仍属于弱势群体,他们广泛地存在于城市和农村之中。

  他说:“如果符合其中部分标准,那就需要高度警惕,努力鼓起生活的风帆,最终还要靠你的努力。”

  有人指出,“穷二代”在数量上远远超过“富二代”,是在生活压力下苦苦煎熬的“倒霉蛋”。

  他们的命运直接关系到国家前途和社会稳定,有理由赢得政府和社会更多关注和关心。

关于分区

一个潜在的黑客如果要攻击你的Linux服务器,他首先就会尝试缓冲区溢出。在过去的几年中,以缓冲区溢出为类型的安全漏洞是最为常见的一种形式了。更为严重的是,缓冲区溢出漏洞占了远程网络攻击的绝大多数,这种攻击可以轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权!

为了防止此类攻击,我们从安装系统时就应该注意。如果用root分区纪录数据,如log文件和email,就可能因为拒绝服务产生大量日志或垃圾邮件,从而导致系统崩溃。所以建议为/var开辟单独的分区,用来存放日志和邮件,以避免root分区被溢出。最好为特殊的应用程序单独开一个分区,特别是可以产生大量日志的程序,还有建议为/home单独分一个区,这样他们就不能填满/分区了,从而就避免了部分针对Linux分区溢出的恶意攻击。

关于BIOS

记着要在BIOS设置中设定一个BIOS密码,不接收软盘启动。这样可以阻止不怀好意的人用专门的启动盘启动你的Linux系统,并避免别人更改BIOS设置,如更改软盘启动设置或不弹出密码框直接启动服务器等等。

关于口令

口令是系统中认证用户的主要手段,系统安装时默认的口令最小长度通常为5,但为保证口令不易被猜测攻击,可增加口令的最小长度,至少等于8。为此,需修改文件/etc/login.defs中参数PASS_MIN_LEN(口令最小长度)。同时应限制口令使用时间,保证定期更换口令,建议修改参数PASS_MIN_DAYS(口令使用时间)。

关于Ping

既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行,这样就可以阻止你的系统响应任何从外部/内部来的ping请求。

echo 1 》 /proc/sys/net/ipv4/icmp_echo_ignore_all

关于Telnet

如果你希望用户用Telnet远程登录到你的服务器时不要显示操作系统和版本信息(可以避免有针对性的漏洞攻击),你应该改写/etc/inetd.conf中的一行象下面这样:

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

加-h标志在最后使得telnet后台不要显示系统信息,而仅仅显示login。

关于特权账号

禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装上系统时就应该做此检查,Linux提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越容易受到攻击。

为删除你系统上的用户,用下面的命令:userdel username

为删除你系统上的组用户帐号,用下面的命令:groupdel username

在终端上打入下面的命令删掉下面的特权用账号:

userdel adm

userdel lp

userdel sync

userdel shutdown

userdel halt

userdel mail

如果你不用sendmail服务器,就删除这几个帐号:

userdel news

userdel uucp

userdel operator

userdel games

如果你不用X windows 服务器,就删掉这个帐号。

userdel gopher

如果你不允许匿名FTP,就删掉这个用户帐号:

userdel ftp

关于su命令

如果你不想任何人能够su为root的话,你应该编辑/etc/pam.d/su文件,加下面几行:

auth sufficient /lib-

http://security.chinaitlab.com/pam_rootok-

.so debug

auth required /lib-

http://security.chinaitlab.com/pam_wheel-

.so group=isd

这意味着仅仅isd组的用户可以su作为root。如果你希望用户admin能su作为root.就运行下面的命令:

usermod -G10 admin

suid程序也是非常危险的,这些程序被普通用户以euid=0(即root)的身份执行,只能有少量程序被设置为suid。用这个命令列出系统的suid二进制程序:

suneagle# find / -perm -4000 -print

你可以用chmod -s去掉一些不需要程序的suid位。

关于账户注销

如果系统管理员在离开系统时忘了从root注销,系统应该能够自动从shell中注销。那么,你就需要设置一个特殊的 Linux 变量“tmout”,用以设定时间。 同样,如果用户离开机器时忘记了注销账户,则可能给系统安全带来隐患。你可以修改/etc/profile文件,保证账户在一段时间没有操作后,自动从系统注销。 编辑文件/etc/profile,在“histfilesize=”行的下一行增加如下一行:

tmout=600

则所有用户将在10分钟无操作后自动注销。注意:修改了该参数后,必须退出并重新登录root,更改才能生效。

关于系统文件

对于系统中的某些关键性文件如passwd、passwd.old、passwd._、shadow、shadown._、inetd.conf、services和lilo.conf等可修改其属性,防止意外修改和被普通用户查看。 如将inetd文件属性改为600:

# chmod 600 /etc/inetd.conf

这样就保证文件的属主为root,然后还可以将其设置为不能改变:

# chattr +i /etc/inetd.conf

这样,对该文件的任何改变都将被禁止。 你可能要问:那我自己不是也不能修改了?当然,我们可以设置成只有root重新设置复位标志后才能进行修改:

# chattr -i /etc/inetd.conf

关于用户资源

对你的系统上所有的用户设置资源限制可以防止DoS类型攻击,如最大进程数,内存数量等。例如,对所有用户的限制, 编辑/etchttp://security.chinaitlab.com/limits.con加入以下几行:

* hard core 0

* hard rss 5000

* hard nproc 20

你也必须编辑/etc/pam.d/login文件,检查这一行的存在:

session required /libhttp://security.chinaitlab.com/pam_limits.so

上面的命令禁止core files“core 0”,限制进程数为“nproc 50“,且限制内存使用为5M“rss 5000”。

关于NFS服务器

由于NFS服务器漏洞比较多,你一定要小心。如果要使用NFS网络文件系统服务,那么确保你的/etc/exports具有最严格的存取权限设置,不意味着不要使用任何通配符,不允许root写权限,mount成只读文件系统。你可以编辑文件/etc/exports并且加:

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)

其中/dir/to/export 是你想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。最后为了让上面的改变生效,还要运行/usr/sbin/exportfs -a

Linux下发现配置好防火墙以后ftp就有问题了,一直都不能够用Filezilla 和 CuteFTP登录,在列出目录的时候一直会失败。但是在命令行下面如果先执行passive off,一切正常。答案在CU上找到的,主要是要使用 ip_conntrack_ftp

使用 -P INPUT DROP 引起的网路存取正常,但是 ftp 连入却失败?

依据前面介绍方式,只有开放 ftp port 21 服务,其他都禁止的话,一般会配置使用:

iptables -P INPUT DROP

iptables -A INPUT -m state –state ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

iptables -P INPUT DROP

iptables -A INPUT -m state –state ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

这样的配置,确认 ftp 用户端是可以连到 ftp 主机并且看到欢迎登入画面,不过后续要浏览档案目录清单与档案抓取时却会发生错误。

ftp 协定本身于 data channnel 还可以区分使用 active mode 与 passive mode 这两种传输模式,而就以 passive mode 来说,最后是协议让 ftp client 连结到 ftp server 本身指定于大于 1024 port 的连接埠传输资料。

这样配置在 ftp 传输使用 active 可能正常,但是使用 passive mode 却发生错误,其中原因就是因为该主机firewall 规则配置不允许让 ftp client 连结到 ftp server 指定的连结埠才引发这个问题。

要解决该问题方式,于 iptables 内个名称为 ip_conntrack_ftp 的 helper,可以针对连入与连外目的 port 为 21 的 ftp 协定命令沟通进行拦截,提供给 iptables 设定 firwewall 规则的配置使用。开放做法为:

modprobe ip_conntrack_ftp

iptables -P INPUT DROP

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

modprobe ip_conntrack_ftp

iptables -P INPUT DROP

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

其中 -m state 部分另外多了 RELATED 的项目,该项目也就是状态为主动建立的封包,不过是因为与现有 ftp 这类连线架构会引发另外才产生的主动建立的项目。

不过若是主机 ftp 服务不在 port 21 的话,请使用下列方式进行调整:

CODE:

modprobe ip_conntrack_ftp ports=21,30000

iptables -P INPUT DROP

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

iptables -A INPUT -p tcp –dport 30000 -j ACCEPT

modprobe ip_conntrack_ftp ports=21,30000

iptables -P INPUT DROP

iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p tcp –dport 21 -j ACCEPT

iptables -A INPUT -p tcp –dport 30000 -j ACCEPT

也就是主机本身提供 ftp 服务分别在 port 21 与 30000 上,让 ip_conntrack_ftp 这个 ftp helper 能够正常提供 ftp 用户端使用 passive mode 存取而不会产生问题。