linux系统安全基础应用
重点:
lSu、sudo的使用
l为GRUB引导菜单设置密码
4.1账号安全控制
用户帐号,是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借他的用户账号才能进入计算机
4.1.1基本安全措施
系统账号清理:
§用户的Shell设为/sbin/nologin
§锁定长期不使用的账号
§删除无用的账号
§锁定账号文件passwd、shadow
列:chattr +i/etc/passwd /etc/shadow //锁定文件并查看状态
lsattr /etc/passwd /etc/shadow
chattr -i /etc/passwd/etc/shadow //解锁文件并查看状态
lsattr /etc/passwd /etc/shadow
密码安全控制 :
§设置密码有效期
§要求用户下次登录时修改密码
列: vi /etc/login.defs //适用于新建用户
PASS_MAX_DAYS 30
chage -M 30 lisi //适用于已有用户
列: chage -d 0zhangsan //强制在下次登录时更改密码
命令历史限制
§减少记录的命令条数
§注销时自动清空命令历史
列: vi/etc/profile //适用于新登录用户
HISTSIZE=200
vi ~/.bash_logout //添加清空历史命令
history -c
clear
export HISTSIZE=200 //适用于当前用户
终端自动动注销 :闲置600秒后自动注销
列: vi ~/.bash_profile
exportTMOUT=600
exportTMOUT=600
Ø4.1.2用户切换和用户提权
Su用来切换用户,sudo用来提升执行权限
1.使用su命令切换用户
用途及用法
§用途:Substitute User,切换用户
§格式:su - 目标用户
v密码验证
§rootà任意用户,不验证密码
§普通用户 à其他用户,验证目标用户的密码
列:su - root
注意:带 - 选项表示将使用目标用户的登录Shell环境,-等同于―loging或-l
默认情况下,任何用户都可以使用su命令,为了加强su命令的使用控制,可以借助pam_wheel模块,只允许极个别的用户使用su命令,实现过程如下:将授权使用苏命令的用户添加到wheel组,修改/etc/pam.d/su认证配置以启用pam_wheel认证
列:gpasswd -a zhangsan wheel //添加授权用户zhangsan
Grep wheel /etc/wheel //确认wheel组成员
Vim /etc/pam.d/su
Auth required pam_wheel。So use_uid //去掉此行开头的#号
启用pam_wheel认证后,未加入到wheel组内的其他用户将无法使用su命令
查看su操作记录
§安全日志文件:/var/log/secure
使用su命令的切换用户的操作将会记录到安全日志/var/log/secure文件中
列: tail /var/log/secure
2.使用sudo机制提升权限
使用sudo命令,需要有管理员预先进行授权,指定允许那些用户以超级用户(或其他普通用户)的身份来执行哪些命令
v用途及用法
§用途:以其他用户身份(如root)执行授权的命令
§用法:sudo 授权命令
v密码验证
§初次执行sudo命令时,验证当前用户的密码
§不需验证目标用户的密码
列: sudo -ujerry /bin/touch /tmp/test.file
ls -l /tmp/test.file
1)在配置文件/etc/sudoers中添加授权
配置sudo授权
visudo 或者 vi /etc/sudoers
记录格式:用户主机名列表=命令程序列表
用户:(USER):授权的用户名,或采用“%组名”的形式(授权一个组的多有用户)
主机(MACHINE):使用此配置文件的主机名称
命令(commands):允许授权用户通过sudo方式执行的特权命令,许天叙命令程序的完整路径,多个命令之间以“,”号进行分隔
列:visudo
……
%wheel ALL=NOPASSWD: ALL
jerry localhost=/sbin/ifconfig
syrianer localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum
mike localhost=PKGTOOLS
注意:可以使用通配符*、取反符号! 类似别名还包括:User_Alias、Host_Alias
查看sudo操作记录
§需启用 Defaults logfile 配置 默认情况下,通过sudo方式执行的操作并不记录,应在/etc/sudores文件增加Defaults logfile设置
§默认日志文件:/var/log/sudo
列:visudo //查找的defaults,在前面添加一行内容
Defaults logfile ="/var/log/sudo " //启用日志配置以后,sudo操作过程才会被记录
列:tail/var/log/sudo
查询授权的sudo操作
§sudo �Cl 查看用户获得哪些sudo授权
§注意:初次使用sudo时需验证当前用户的密吗
列:sudo /sbin/fdisk �Cl //再次使用sudo 默认超时不间隔5分钟,在此期间不再重复验证
4.2 系统引导和登录控制
Ø4.2.1开关机安全控制
1.调整BIOS引导设置
§将第一引导设备设为当前系统所在硬盘
§禁止从其他设备(光盘、U盘、网络)引导系统
§将安全级别设为setup,并设置管理员密码
2.禁用重启热键Ctrl+Alt+Del
§避免因用户误操作导致重启
列: vi /etc/inittab
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
init q /重新读取配置
3.GRUB菜单限制
未经授权禁止修改启动参数
未经授权禁止进入指定系统
密码设置方式(grub.conf)
§password 明文密码串
§password --md5 加密密码串
v密码记录的位置
§全局部分(第一个“title”之前)
§系统引导部分(每个“title”部分之后)
列: grub-md5-crypt
Password:
Retype password:
$1$Kndw50$wRW2w1v/jbZ8n5q2fON4y/
列: vi/boot/grub/grub.conf
password --md5 $1$Kndw50$wRW2w1v/jbZ8n5q2fON4y/ //添加到第一个title前
title Red Hat Enterprise Linux Server (2.6.18-194.el5)
root (hd0,0)
kernel/vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00
initrd/initrd-2.6.18-194.el5.img
注:title前(全局部分)-禁止修改启动内核参数
Title后(系统部分)--不允许进入指定系统
4.2.2终端登录安全控制
1.修改系统登录提示
§本机登录提示:/etc/issue
§网络登录提示:/etc/issue.net
列: vi/etc/issue
Microsoft Windows Server 2008 R2
2.减少开放终端个数
列: vi/etc/inittab //禁用三个终端tty1 tty2Tty3
# Run gettys in standard runlevels
#1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
[root@localhost ~]# initq
3.限制root只在安全终端登录
§安全终端配置:/etc/securetty
列: vi/etc/securetty //禁止root从终端tty 5 tty6登录
……
tty1
tty2
tty3
tty4
#tty5
#tty6
4.禁止普通用户登录
§建立/etc/nologin文件
§删除nologin文件或重启后即恢复正常
列: touch/etc/nologin // 禁止普通用户登录
rm -rf /etc/nologin //取消上述登录限制
本文出自 “敏而好学” 博客,谢绝转载!