一、安装和升级
使用custom自定义安装,不必要的软件包尽量不装,如有必要给lilo/grub引导器加入口令限制,安装完成后使用up2date、yum或是apt(Debian)升级系统软件,有时升级内核也是必要的。
编辑 /etc/sudoers 添加下面内容
jinshuai ALL=NOPASSWD:ALL
二、帐号安全
1、一般Linux服务器都是放在IDC机房,需要通过远程访问进行管理,要限制root的远程访问,管理员通过普通帐号远程登录,然后su到root,开发人员只使用普通帐号权限。
1) 在/etc/default/login 文件,增加一行设置命令:
CONSOLE = /dev/tty01
2)可以通过下面的脚本禁止对控制台的访问:
# !/bin/sh
cd /etc/pam.d
for i in * ; do
sed '/[^#].*pam_console.so/s/^/#/' foo && mv foo $I
done
3) 通过下面的措施可以防止任何人都可以su为root,在/etc/pam.d/su中添加如下两行。
auth sufficient /lib/security/$ISA/pam_rootok.so debug
auth required /lib/security/$ISA/pam_wheel.so group=wheel
然后把您想要执行su成为root的用户放入wheel组:
usermod -G10 admin
2、编辑/etc/securetty,注释掉所有允许root远程登录的控制台,然后禁止使用所有的控制台程序,其命令如下:
rm -f /etc/security/console.apps/servicename
三、采用最少服务原则,凡是不需要的服务一律注释掉。在/etc/inetd.conf中不需要的服务前加"#",较高版本中已经没有inetd,而换成了Xinetd;取消Linux开机自动运行服务,把/etc/rc.d/rc3.d下不需要运行的服务的第一个字母"S"改成"K",其他不变.
四.文件系统权限
1) 找出系统中所有含s"位的程序,把不必要的"s"位去掉,或者把根本不用的直接删除,这样可以防止用户滥用及提升权限的可能性,其命令如下:
find / -type f -perm -4000 -o -perm -2000 -print | xargs ls -lg
2) 把重要文件加上不可改变属性(一般情况不用这么做):
chattr +i /etc/passwd
Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
3) 找出系统中没有属主的文件:
find / -nouser -o -nogroup
4) 找出任何都有写权限的文件和目录:
find / -type f -perm -2 -o -perm -20 |xagrs ls -lg
find / -type d -perm -2 -o -perm -20 |xagrs ls -ldg
5) ftp的上传目录不能给与执行权限,如提供可运行CGI的虚拟主机服务,应该做额外安全配置.编/etc/security/limits.conf,加入或改变如下行:
hard core 0
hard rss 5000
hard nproc 20