Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29955091
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: LINUX

2010-06-07 20:36:41

作者: FOX 出处:51CTO论坛整理 
 

◆十二、防止任何人都可以用su命令成为root

如果不想任何人都可以用"su"命令成为root或只让某些用户有权使用"su"命令,那么在"/etc/pam.d/su"文件中加入下面两行。建议尽量限制用户通过"su"命令成为root。

第一步

编辑su文件(vi /etc/pam.d/su)在文件的头部加入下面两行:

auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel

加入这两行之后,"/etc/pam.d/su"文件变为:

#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so shadow use_authtok nullok
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_xauth.so

这两行的意思是只有"wheel"组的成员才能用su命令成为root。注意,"wheel"组是系统中用于这个目的的特殊帐号。不能用别的组名。

第二步

在"/etc/pam.d/su"配置文件中定义有"wheel"组,现在介绍一下怎样让一些用户可以用"su"命令成为"root"。下面是一个例子,让admin用户成为"wheel"组的成员,这样就可以用"su"命令成为"root":

[root@deep]# usermod -G10 admin

"G"是表示用户所在的其它组。"10"是"wheel"组的ID值,"admin"是我们加到"wheel"组的用户。用同样的命令可以让其他的用户可以用su命令成为root。

◆十三、 把rpm程序转移到一个安全的地方,并改变默认的访问许可

一旦在Linux服务器上用rpm命令安装完所有需要的软件,最好把rpm程序转移到一个安全的地方,如:软盘或其它你认为安全的地方。因为如果有 人入侵了你的服务器,他就不能用rpm命令安装那些有害的软件。当然,如果将来要用rpm安装新的软件,你就要把rpm程序拷回原来的目录。把rpm程序 移到软盘上,用下面的命令:

[root@deep]# mount /dev/fd0 /mnt/floppy/
[root@deep]# mv /bin/rpm /mnt/floppy/
[root@deep]# umount /mnt/floppy

注意:千万不要把rpm程序从系统中卸载掉,否则以后就不能重新安装它,因为安装rpm程序或其它软件包本身就要用rpm命令。

还有一点要注意的是,把rpm命令的访问许可从默认的755改成700。这样非root用户就不能使用rpm命令了。特别是考虑到万一在安装完新软件之后忘了把rpm程序移到一个安全的地方,这样做就更有必要了。

改变"/bin/rpm"默认的访问权限,用下面这个命令:

[root@deep]# chmod 700 /bin/rpm

作者: FOX 出处:51CTO论坛整理 
 

◆十四、登录shell

为了方便重复输入很长的命令,bash shell可以在"~/.bash_history"文件("~/"是家目录,每个用户都是不一样的)中存500个曾经输入过的命令。每一个有自己帐号的 用户,在自己的家目录中,都会有".bash_history"文件。可能会有这种情况,用户在不该输入口令的地方输入了口令,而输入的口令会在 ".bash_history"文件中保存下来。而且".bash_history"文件越大这种可能性也越大。

在"/etc/profile"文件中HISTFILESIZE和HISTSIZE这两行决定了系统中所有用户的 ".bash_history"文件可以保存多少命令。我建议把"/etc/profile"文件中的HISTFILESIZE和HISTSIZE都设成 一个比较小的值,如:20。

编辑profile文件(vi /etc/profile),把这些行改成:

HISTFILESIZE=20
HISTSIZE=20

这样每个用户家目录下的".bash_history"就最多只能存20个命令。如果黑客试图在用户的"~/.bash_history"文件中发现一些口令,他就没有什么机会了。

◆十五、改变"/etc/rc.d/init.d/"目录下的脚本文件的访问许可

改变启动和停止daemon的脚本文件的权限。

[root@deep]# chmod -R 700 /etc/rc.d/init.d/*

这样只有root可以读、写和执行这个目录下的脚本。我想一般用户没有什么必要知道脚本文件的内容。

注意:如果你安装或升级了一个程序,要用到"/etc/rc.d/init.d/"中system V脚本,不要忘记再检查一下改变和检查这个脚本文件的许可。

◆十六、"/etc/rc.d/rc.local"文件

在默认情况下,当登录装有Linux系统的计算机时,系统会告诉你Linux发行版的名字、版本号、内核版本和服务器名称。这泄露了太多的系统信息。最好只显示一个"Login:"的提示信息。

第一步

编辑"/ect/rc.d/rc.local"文件,在下面这些行的前面加上"#":

--
# This will overwrite /etc/issue at every boot. So, make any changes you
# want to make to /etc/issue here or you will lose them when you reboot.
#echo "" > /etc/issue
#echo "$R" >> /etc/issue
#echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue
#
#cp -f /etc/issue /etc/issue.net
#echo >> /etc/issue
-- 

第二步

删除"/etc"目录下的"issue.net"和"issue"文件:

[root@deep]# rm -f /etc/issue
[root@deep]# rm -f /etc/issue.net

注意:"/etc/issue.net"文件是用户从网络登录计算机时(例如:telnet、SSH),看到的登录提示。同样在"/etc"目录下 还有一个"issue"文件,是用户从本地登录时看到的提示。这两个文件都是文本文件,可以根据需要改变。但是,如果想删掉这两个文件,必须向上面介绍的 那样把 "/etc/rc.d/rc.local"脚本中的那些行注释掉,否则每次重新启动的时候,系统又会重新创建这两个文件。


阅读(840) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~