二:文件和文件系统安全优化
(一):文件系统层次的安全优化
1
:合理规划系统分区
/boot
、
/home
、
/var
、
/opt
等建议单独分区
2
:通过挂载禁止执行
set
位程序
、二进制程序
mount
命令的选项
-o nosuid
、禁止文件的
suid
或
sgid
位权限
-o noexec
禁止执行分区中的程序文件(防止恶意程序或病毒代码)
3
:
锁定不希望更改的系统文件
使用
chattr
命令对文件属性修改,添加
+i
属性后文件不能被修改,若添加
+a
属性,则文件只能以追加的方式添加内容“
>>
”
lsattr
命令
查看文件的属性状态
(二):应用程序和服务
1
:关闭不需要的系统服务
使用
ntsysv
、
chkconfig
管理工具
2
:禁止普通用户执行
init.d
目录中的脚本
限制“
other”
组的权限(
o-rwx/750
)
3
:禁止普通用户执行控制台程序
consolehelper
控制台助手
配置目录:
/etc/security/console.apps/
4:
去除程序文件中非必需的
set-uid
或
set-gid
附加权限
找出设置了
set
位权限的文件
[root@localhost ~]# ls -lh $(find / -type f -perm +6000)
root@localhost ~]# find / -type f -perm +6000 -exec ls -lh {} \;
去掉程序文件的
suid/sgid
为权限
Chmod a-s /tmp/hack.vim
监控系统中新增了哪些使用
set
位权限的文件
#!/bin/bash
OLD_LIST=/etc/sfilelist
for i in `find / -type f -a -perm +6000`
do
grep -F "$i" $OLD_LIST > /dev/null
[ $? -ne 0 ] && ls -lh $i
Done
三:系统引导和登录安全优化
(一):开关机安全控制
1
:调整
BIOS
引导设置
将第一优先引导设备(
first boot device
)设为当前系统所在的硬盘,其他引导设置为‘
disabled
’。为
BIOS
设置管理员密码,安全级别调整为“
setup
”。
2
:禁用
Ctrl+Alt+Del
重启热键
修改
/etc/inittab
文件(将
注释掉),并执行“
init q”
重载配置
(二):
GRUB
引导菜单加密
加密引导菜单的作用
修改启动参数时需要验证密码(全局部分(第一个“
title”
之前))
进入所选择的系统前需要验证密码(系统引导参数部分(每个“
title”
部分之后))
在
grub.conf
文件中设置密码的方式
password
明文密码串
password --md5
加密密码串
(三):终端及登录控制
1
:立即禁止普通用户登录
/etc/nologin
当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。这时候,只需要简单地建立
/etc/nologin
文件即可。
Login
程序会检查
/etc/nologin
文件是否存在,如果存在则拒绝普通用户登录系统(
root
用户不受限制),删除该文件或者重启系统后可恢复。
2
:设置启用哪些
tty
终端
vi /etc/inittab init q
Linux
系统默认开放了
tty1~tty6
共六个本地终端(控制台),如果需要禁用多余的
tty
终端,可以修改
/etc/inittab
文件,并将对应的行注释掉。
3
:控制允许
root
用户登录的终端
/etc/securetty
Linux
系统中,
login
程序通常会读取
/etc/securetty
文件,已决定允许
root
用户从哪些终端登录系统。若要禁止
root
用户从某个终端登录,只需从该文件中删除或者注释掉对应的行即可。
4
:更改系统登录提示,隐藏系统版本信息
/etc/issue
、
/etc/issue.net
登录
Linux
系统终端时,通常会看到带有系统名称、内核版本等内容的提示信息,许多网络攻击者往往利用这些信息来对服务器做进一步的扫描和探测。
通过修改
/etc/issue
、
/etc/issue.net
文件(分别对应本地登录、网络登录),可以实现隐藏登录提示信息,或者将提示信息修改为其他内容。重启系统后,新的设置将生效。
5
:使用
pam_access
认证控制用户登录地点
使用
pam_access
模块,可以按具体的用户名、登录地点两方面进行控制。
Pam_access
认证读取
/etc/security/access.conf
配置文件。该文件的配置行依次由“权限”、“用户”、“来源”三个部分内容组成,使用冒号进行分隔。
Ø
“权限”部分为“
+
”号或者“
-
”号,分别表示允许、拒绝。
Ø
“用户”部分为用户名,若为多个用户则使用空格分开,若为一个组的用户则使用“
@
组名”的形式表示。“
ALL
”表示所有用户。
Ø
“来源”部分表示用户从哪个终端或远程主机登录,可以使用
tty1
、
127.0.0.1
、
192.168.1.0/24
等形式表示,多个来源地点之间使用空格分开。
例:禁止除了
root
以外的用户从
tty1
终端上登录系统。
例:禁止
root
用户从
192.168.1.0/24
、
172.16.0.0/8
网络中的远程登录。
同样需要添加认证支持然后修改配置文件