全部博文(2065)
分类: LINUX
2010-06-07 20:36:41
◆十二、防止任何人都可以用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◆十四、登录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"脚本中的那些行注释掉,否则每次重新启动的时候,系统又会重新创建这两个文件。