ps:一定要物理隔离,提高安全性
账号安全
1.账号管理:
userdel -r 账号名 #无用账号删除(/sbin/nologin的系统账号无需登录,也不能登录)
usermod -L 账号名 #不确定用途的账号的进行登录锁定(锁定密码操作)
usermod -S 账号名 #查看是否锁定账号
usermod -U 账号名 #解锁账号
chattr +i 文件路径 #锁定文件(不只是可以锁定账号文件,普通文件也可以;但锁定/etc/passwd就无法新增或更改或删除用户;锁定/etc/shadow就无法对账号的密码进行更改;锁定/etc/group就无法进行组的相关操作)
chattr -i 文件路径 #解锁被锁定的文件文件
lsattr 文件路径 #查看此文件是否被锁定
2.密码安全控制:
设置新用户的默认密码自动过期时间: vi /etc/login.defs 修改配置项:PASS_MAX_DAYS 30
修改老用户的默认密码自动过期时间: chage -M 天数 账号
设置用户N此登录后必须修改密码: chage -d N 账号
3.命令历史与自动注销:
history 查看历史命令(系统默认保存1000条),但有可能泄露密码登,可以在/etc/profile中配置HISTSIZE=100来将行数缩减到100行;也可以修改~/.bash_logout文件,在其中 history -C clear 指定在用户登出时清空历史记录
export HISTSIZE =200 #最近200条历史命令
自动退出登录,可以设置超时时间,当超过一定时间,终端没有任何输入,则自动退出登录
vi ~/.bash_profile export TMOUT=600 #超时时间设置为十分钟
可以用unset TMOUT 来取消超时设置
4.su命令相关的操作:
su默认可以切换用户,从root用户切换到任意用户,不需要输入密码,可以直接切换
从普通用户切换到任意用户,需要输入密码验证
可以开启密码验证的权限:
vi /etc/pam.d/su 在文件中将 auth required pam_wheel.so use_uid 的注释放开
则在wheel组中的用户才可以执行su命令,否则没有权限
auth required pam_wheel.so use_uid
auth 对应认证类型:认证管理(auth):接受用户名及密码,从来对用户的密码进行认证
账号管理(account):检查账号是否运行登录,账户是否过期,账号的登录时间限制登
密码管理(password):主要检查账号是否有修改密码的权限
会话管理(session):提供会话管理的记录
required对应控制类型:用户PAM验证类型的返回结果
required验证失败时也仍然继续,但返回错误
requisite验证失败时立即结束整个过程,也返回错误
sufficient验证成功则立即返回成功,否则忽略结果并继续
optional不用于验证,只显示信息(通常用户session类型)
sudo命令提示用户权限:
执行visudo命令或者vi /etc/sudoers 在其中配置:用户 主机/应用=允许执行的命令
用户想要执行sudo命令,应该将其加入wheel组中(存疑),默认首次使用sudo时需要输入当前用户的登录密码,之后与前一次sudo不超过5分钟,则不需要再次输入密码
可以批量给用户或应用来允许sudo权限:
user_alias users=jerry,tom,luo
host_alias hosts=master,slave
cmd_alias cmds=/bin/rpm,/bin/yum
users hosts=cmds
可以在visudo命令执行中添加Defaults logfile =“具体路径” 来指定sudo命令的记录位置
默认日志文件:cat /var/log/sudo
开关机安全控制
1.调整BIOS的引导过程,将当前系统硬盘设为第一优先引导设备,其他项禁用,并设置管理密码,BIOS的安全级别设为SETUP
2.限制GRUB引导参数
grub2-mkpassword-pbkdf2 生成root用户的grub密码
生成的密码为加密后的
vi /etc/grub.d/00_header 文件中配置对应的GRUB用户、密码
cat << EOF
password pbkdf2 root 加密后的密码
EOF
重新生成grub.cfg的配置文件:grub2-mkconfig -o/boot/grub2/grub.cfg
配置完成后重启,在grub菜单处按e修改Grub配置信息时,就需要输入用户名和密码