1 系统账号清理
(1)将非登录用户的shell设为/sbin/nologin
方法一:usermod -s
方法二:chsh命令,交互式修改
方法三:chsh -s
除了前三种还可以用vim编辑/etc/passwd文件进行修改
示例:
(2) 长期不使用的账号锁定,查看及解锁
方法一: passwd -l 查看: passwd -S
方法二: usermod -L 解锁:usermod -U 和passwd -u
除了上述方法外还可以vim编辑/etc/shadow文件进行修改
示例:
(3) 加i锁和解i锁及查看(锁定后即使超级用户也不能修改该文件,既不能创建,删除,修改用户信息)
锁定账号文件 /etc/passwd,/etc/shadow
1>锁定 :chattr +i /etc/passwd /etc/shadow(普通用户只能读)
2>解锁: chattr -i /etc/passwd /etc/shadow
3>查看: lsattr /etc/passwd /etc/shadow
a锁和上述一样 ,只是不能修改内容只能追加内容,也就是vim保存不了,只能echo输入
2 密码安全控制
(1)设置密码有效期
1>修改某个已存在用户的密码有效期chage -M 天数 用户名
passwd -x 天数 用户名
示列
(3)设置以后添加用户时的默认密码的有效期
vim编辑/etc/login.defs
修改PASS_MAX_DAY后面的值
(4) 要求用户下次登录是修改密码
1>方法:chage -d 0 用户名
(5)命令历史限制
1.减少历史的命令条数
1>方法一:vim编辑/etc/profie文件,修改“HISTSIZE=”后面的数值 。 (修改完后输入命令soure /etc/profie使/etc/profie配置文件生效,此时是全局生效)
2>方法二:export HISTSIZE=数值 (当前用户环境下生效)
(6) 注销时自动清空历史命令
1>方法:vim编辑宿主目录下的“.bash_logout”文件,添加“history -c”
(7)终端自动注销
1> 方法一: vim编辑/etc/profile文件,添加“TMOUT=数值”
2>方法二:export TMOUT=数值
(8)更改端口号
在/etc/ssh/目录下
# vim sshd_config
在port 22处更改端口号(工作中一般将端口号设置为一万以上)
3 切换用户 su 命令
1.作用:切换用户
2.格式 su -(有‘-’初始化环境变量,无“-”环境变量不改变)
su 安全日志文件:/var/log/secure
sudo 命令
su命令的缺点:在使用su命令时,不指定用户名默认切换至root用户,需要经常输root用户密码,但实际生产中root密码是不可以被广泛告知的。如果需要执行root 用户才有权限的命令,需要通过sudo命令或wheel组的设置来实现。
sudo的配置文件 /etc/sudoers
sudo命令
-l 列出用户在主机上可用的和被禁止的命令:当配置好sudo权限规则后,可用这个参数来查看授权情况
-v 验证用户的时间戳,当用户运行sudo,输入用户的密码后,在短时间内可以不用输入口令直接进行sudo操作;用-v可以跟踪最新的时间戳
-u指定以某个用户身份执行特定的命令操作,chensiqi ALL=(ALL) /bin/cp
-k同-K,删除时间戳,下一个sudo命令要求提供密码,前提是该用户授权中不能有NOPASSWD参数。时间戳默认5分钟也会失效。
配置sudo授权(激活sudo)
方法一: visudo 或 vim /etc/sudoers 修改,只有root用户才能使用
在root这一行下面,按照root的格式,对benet进行授权
visudo授权配置中,ALL的表示:
第一个ALL:IP地址
第二个ALL:主机别名
第三个ALL:限制的命令
visudo -c 检查sudo配置文件是否有错误
sudo 授权命令
默认设置为首次执行时,需输入当前用户的登陆密码,5分钟内再次执行sudo命令式则无需再输入密码。
设置IP地址权限
visudo
在“root ALL=(ALL) ALL”行下,输入
benet 192.168.184.130= ALL
单独授权某个命令
在第三个ALL上操作(绝对路径)
visudo
在“root ALL=(ALL) ALL”行下,输入
benet 192.168.184.130= /sbin/fdisk
此时,只有sudo fdisk这个命令可以使用(因为只有fdisk被授权)
授权多个命令
在第三个ALL上操作(绝对路径),用逗号“,”分隔。
visudo
在“root ALL=(ALL) ALL”行下,输入
benet 192.168.184.130= /sbin/fdisk,/bin/ls
批量授权(存在优先级,先输入允许操作的命令(绝对路径),在输入不允许操作的命令(绝对路径))
对benet用户授权/sbin/下所有目录,除了/sbin/reboot命令
visudo
在“root ALL=(ALL) ALL”行下,输入
benet 192.168.184.130=(ALL) /sbin/*,! /sbin/reboot
批量授权,排除多个命令权限,用“,! ”分隔
若为! /sbin/fdisk /dev/sda 表示不允许/sbin/fdisk执行/dev/sda*
让一个普通用户自己分区,但禁止该用户采取任何破坏系统的操作(将A盘进行分区会破坏系统)
visudo
在“root ALL=(ALL) ALL”行下,输入
benet 192.168.184.130=(ALL) /sbin/*,! /sbin/reboot,! /sbin/fdisk /dev/sda*
不允许/sbin/fdisk 执行/dev/sda*,但由于授予/sbin/所有前线,则可以对其他盘进行分区
对普通用户授权:只看日志
visudo
在“root ALL=(ALL) ALL”行下,输入
benet 192.168.184.130=(ALL) /bin/cat /var/log/messages*
!!!但是“看”的命令不仅仅是cat,还有more、less、head、tail、tac、sed、awk等,需要将它们全部授权(绝对路径)。
查看sudo操作记录
先 visudo 添加“Defaults logfile=/var/log/sudo”,再# cat /var/log/sudo