账号安全基本措施
系统账号清理
- 将用户设置为无法登录
- 锁定账户
- 删除账户
- 锁定账户密码 本质锁定
shell——/sbin/nologin却比较特殊,所谓“无法登陆”指的仅是这个用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。举例来说,各个系统账号中,打印作业有lp这个账号管理,www服务器有apache这个账号管理,他们都可以进行系统程序的工作,但就是无法登陆主机而已。
将用户设置为无法登录
[root@localhost ~]# tail /etc/passwd
#查看用户的属性
[root@localhost ~]# chsh -s /sbin/nologin sail
#修改scj的shell属性
[root@localhost ~]# tail -1 /etc/passwd
#查看用户的属性
锁定用户
[root@localhost ~]# passwd -l sail
锁定用户 sail 的密码 。
passwd: 操作成功
[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ su sail
密码:
su: 鉴定故障
[root@localhost ~]# passwd -u sail
解锁用户 sail 的密码。
passwd: 操作成功
[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ su sail
密码:
[sail@localhost root]$
删除用户
userdel -r 用户名
家目录
家目录 无主文件 前主人的uid
锁定配置文件
chattr
-a 让文件或目录仅供附加用途。只能追加
-i 不得任意改动文件或目录
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
#加i锁定
[root@localhost ~]# useradd lisi
#尝试创建新用户
useradd:无法打开 /etc/passwd
#创建失败
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
#查看文件当前状态
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow
#解除锁定
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow
密码安全控制
设置密码规则
[root@localhost ~]# vim /etc/login.defs
#适用于修改后生效后修改的用户
[root@localhost ~]# tail -5 /etc/shadow
#修改密码有效期限
对于已有用户可以使用chage命令
chage
命令格式:chage [选项] 用户名
选项:
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
[root@localhost ~]# chage -d 0 zhangsan
#强制张三下一次登录一定修改密码(密码符合复杂性要求)
[root@localhost ~]# chage -M 30 zhangsan
#设置密码有效期为30天
[root@localhost ~]# cat /etc/shadow | tail -1
zhangsan::0:0:99999:7:::
命令历史
Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为 1000 条。通过修改/etc/profile文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。例如,可以设 置最多只记录 200 条历史命令。
#可以使用以下命令临时清除历史命令
history -c
clear
#只是临时的重启后记录还是会回来
[root@localhost ~]# vim /etc/profile
#进入该文件后更改HISTSIZE=任意数字
#重启后生效
###退出清空密码#############
vim .bash_logout
#退出后清除
echo " " >~/.bash_history
切换用户su
- su命令即 switch user,命令可以切换用户身份,并且以指定用户的身份执行命令
命令格式:su [options...] [-] [user [args...]]
切换用户的方式:
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
su – UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
说明:root su至其他用户无须密码;非root用户切换时需要密码
注意:su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。
su 与 su-
即有 – 选项,切换用户身份更彻底;反之,只切换了一部分,这会导致某些命令运行出现问题或错误(例如无法使用 service 命令)。
- 限制使用su命令的用户
[root@localhost ~]# gpasswd -a zhangsan wheel
#将用户加入 wheel组 root
[root@localhost ~]# vim /etc/pam.d/su
#开启服务
#auth required pam_wheel.so use_uid
- 以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
- 两行都注释也是允许所有用户都能使用su命令,但’root’下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok.so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
- 如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
- 如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。
PAM安全认证
- required验证失败时任然继续,但返回Fail
- requisite验证失败则立即结束整个验证过程,返回Fail
- sufficien验证成功则立即返回,不在继续,否则忽略结果并继续
- optional不用于验证,只显示信息
用户提权sudo
使用户暂时有超级管理员的权限
- sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
- sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
- sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票
- sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440
[root@localhost ~]# vim /etc/sudoers
[root@localhost ~]# visudo
#语法检查
visudo -c
#检查语法
grub加密
######只有管理员可以#####
grub2-setpassword
#直接设置密码
服务 | 端口号 |
---|---|
HTTP | 80 |
HTTPS | 443 |
Telnet | 23 |
FTP | 21 |
SSH(安全登录)、SCP(文件传输)、端口重定向 | 22 |
SMTP | 25 |
POP3 | 110 |
WebLogic | 7001 |
TOMCAT | 8080 |
WIN2003远程登录 | 3389 |
Oracle数据库 | 1521 |
MySQL*SEVER数据库sever | 1433 |
MySQL数据库sever | 3306 |
© 版权声明
文章版权归作者所有,未经允许请勿转载,侵权请联系 admin@trc20.tw 删除。
THE END