系统安全规划
一、 用户账号安全
1、 删除系统中不使用的用户和组。
根据当前服务器的具体应用情况,可以将不使用的用户和组删除。例如,很少使用的用户、组包括:news、uucp、ganmes.gopher等。如果服务器不需要启用name,那么就可思议删除named用户、named组;如果不需要提供ftp服务,就可以删除ftp用户、组;……
如果不确定用户是否应该删除,也可以暂时禁用该用户。
或者直接修改shadow文件,在zhangsan用户的密码字符串前添加!。
2、 确认程序或服务用户的登录Shell不可用。
将不需要使用终端的用户的登录shell改为/sbin/nologin.
或者
3、 限制用户的密码有效期(最大天数)
上面的这种方式只对新建的用户有效。
或者
4、 指定用户在下次登录时必须修改密
5.、限制用户密码的最小长度。
6、 限制记录命令历史的条数。
Vi /etc/profile
HISTSIzE=100 //默认为1000条
设置自动情况历史命令。
7、 使用su切换用户身份。
Su [-] 用户名
不使用“-”选项,则保持原有的用户环境变量不变。使用“-”则使用指定的用户的坏境变量等。
普通用户切换其他用户时需要密码。Root用户切换其他用户不需要目标用户的密码。
通过Pam_whell模块来控制允许使用su的用户。Pam_wheel模块默认提供了一个用户则Wheel用于使用su功能。
8、 使用sudo提升执行权限。
通过visudo提升的用户,执行命令时。需要写上命令的完整路径。
二、 文件和文件系统安全优化。
1、 合理规划系统分区。建议将以下目录规划分为独立的分区。
/boot:该目录中包含系统内核、Grub程序等关键性的引导文件。分区建议200MB以上。
/home:该目录是用户默认宿主目录。
/var:该目录用于保存系统日志、运行状态文件、用户邮箱目录等、文件读写频繁、占用空间可能会较多。
/opt:用于安装服务器的附加应用程序及其他可选工具,方便扩展使用。
2、 通过挂载选项禁止执行set位程序、二进制程序。
使/var分区中程序文件的执行(x)权限失效禁止执行该分区中二进制程序。
Vim /etc/fstab
将上例中的noexec改为nosuid则可以禁用文件的suid或sgid位权限。
3、 锁定不希望更改的系统文件。
使用+a.-a可以给文件添加,释放a属性,如果添加了a属性则只能以追加的方式添加内容。即“》”方式追究内容。
4、 关闭不需要的系统服务。可以使用chkconfig或ntsys工具进行关闭。
5、 禁止普通用户执行init..d目录中的脚本。
6、禁止普通用户执行控制台程序。
6、 去除程序文件中非必需的set-uid或set-gid附加权限。
先找到带有隐患的文件。
然后,确认该文件为黑客程序或未使用的程序,可以直接删除。也可以去除程序文件的suid/sgid位权限。
例:编写shell脚本,检查系统中新增加的带有suid或者sgid位权限的程序文件。
1)、在系统处于“干净”状态时,建立合法suid/sgid文件列表。
2)、建立chksfile脚本文件,于slist文件比较,输出新增的带有S位的文件。
Vi /etc/sbin/chksfile
三、 系统引导和登录安全优化。
1、 调整bios引导设置。
将第一优先引导设备设为当前系统所在设备,其他引导设备禁用。
2、 防止用户通过ctrl+alt+del热键重启系统。
修改文件vim /etc/inittab
3、 Grub引导菜单加密。
对Grub文件设置md5追加的密码字串。
4、 即使禁止普通用户登录。
登录时login会检查/etc/nologin文件是否存在,如果存在则不允许普通用户登录(root用户除外)。
5、 控制服务器开放的TTy终端。
6、 控制允许root用户登录的tty终端。
7.更改系统登录的提示信息。
7、 使用pam_access认证控制用户登录地点。
Pam_access认证读取/etc/security/accss.conf配置文件。