Linux系统安全和应用

一、账号的安全控制

1.1、账号的优化

账号的优化一般分为下面几个步骤

  • 将一些用户设置无法登录,防止其破坏系统
  • 锁定无用账号
  • 删除长期不登录的闲置账号
  • 锁定用户和账号密码的配置文件,防止系统被入侵

1.2、设置用户无法登录

通常linux中想让用户无法登录,一般会将用户的shell改为 /sbin/nologin ,而/sbin/login的作用是用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。

cat /etc/passwd|grep ^zs                          /////查看用户属性
usermod -s /sbin/nologin zs                      /////修改用户无法登录
su zs                                            ////切换用户来验证能否登录

1.3、锁定无用账号

usermod -L zs                                   ////锁定账号
​​​​[root@localhost ~]# cat /etc/shadow |grep ^zs
# 查看密码的配置文件并检索出zs开头的用户
 
zs:!$6$LA7n3jCI3IvhMBHS$.9YqBUKpKwb9DHSIPX9KDVV4YJ5g04GxFQI8jdGx8XJoMqEgkdLrlAd03ahyCcjejZ7iKuO.Iv5OSlGxoSCTD.::0:99999:7:::
 
#!表示密码是锁定状态
[root@localhost ~]# usermod -U zs
#解锁zs用户的密码
 
[root@localhost ~]# cat /etc/shadow |grep ^zs
#  查看密码的配置文件并检索出zs开头的用户
 
zs:$6$LA7n3jCI3IvhMBHS$.9YqBUKpKwb9DHSIPX9KDVV4YJ5g04GxFQI8jdGx8XJoMqEgkdLrlAd03ahyCcjejZ7iKuO.Iv5OSlGxoSCTD.::0:99999:7:::
 
#密码字段开头没有!说明密码已经解锁

 

1.4、删除账号

[root@localhost ~]# userdel  lisi
 
#删除用户lisi

  

1.5、锁定用户配置文件

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow                     ///锁定用户配置文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
----i----------- /etc/passwd
----i----------- /etc/shadow                                              ///查看是否处于锁定状态

 

1.6、密码的安全控制

已有用户设置密码

[root@localhost ~]# chage -d 0 ls
 
  # 让 ls用户下次登录必须修改密码
 
[root@localhost ~]# chage -M 15 ls
# 设置用户ls 密码15天到期
 
[root@localhost ~]# cat /etc/shadow |grep ^ls
 
 
ls:$6$ViTJMlj1$Xgkd1y157FqI84nodUIgJZ8.YLYH8hBO8QnpTNaGkjuQ9HjViLyDfexoD5RVy.DDrEi.rX3KZtovzbr3PqbwT1:0:0:15:7:::
#第五字段有到期天数

  

新建用户设置密码

[root@localhost ~]# vim /etc/login.defs 
 
# 修改 /etc/login.defs 配置文件
 
 
PASS_MAX_DAYS   99999
# 密码最大有效期
 
PASS_MIN_DAYS   0
#两次密码修改最少间隔时间
 
PASS_MIN_LEN    5
#设置的密码长度,root用户无效
 
 
PASS_WARN_AGE   7
#密码过期前多少天提示

  

二、用户命令的权限控制

1、历史命令的管理

bash中默认命令记忆可达1000个。这些命令保存在主文件夹内的.bash_history中

设置历史命令保存个数

[root@localhost ~]# vim /etc/profile
#修改历史命令的保存个数
 
HISTSIZE=5
#当前历史命令为5个
 
. /etc/profile  
 #刷新配置文件

  

2、切换用户

su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码

命令格式

su 用户名

su - 用户名

su 用户名:非登录式的登录,不会读取目标用户的的配置文件,不改变当前工作目录,即未完全登录

su - 用户名:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

[root@localhost ~]# su zs
[zs@localhost root]$ pwd
/root
# 非登录式切换
 
 
[root@localhost ~]# su - zs
上一次登录:一 3月  7 14:33:15 CST 2022pts/0 上
[zs@localhost ~]$ pwd
/home/zs
 
#登录式切换
 
 

  

3、pam模块

在Linux中执行有些程序时,这些程序在执行前首先要对启动它的用户进行认证,符合一定的要求之后才允许执行,例如login, su等。在Linux中进行身份或是状态的验证程序是由PAM来进行的,PAM(Pluggable Authentication Modules)可动态加载验证模块,因为可以按需要动态的对验证的内容进行变更,所以可以大大提高验证的灵活性。

Linux-PAM有四种模块类型,分别代表四种不同的任务,它们是:
认证管理(auth),账号管理(account),会话管理(session)和密码(password)管理,一个类型可能有多行,它们按顺序依次由PAM模块调用。

4、sudo

sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的。

给用户添加命令

[root@localhost ~]#  vim /etc/sudoers
# 进入提权的配置文件
 
zs      ALL=(root)      /usr/sbin/useradd, /usr/bin/su,/usr/sbin/which
 
加权限,这里的/usr/sbin/useradd ,/usr/bin/su, /usr/bin/which表示普通用户执行时必须使用全路径
 

  

5、grub加密

设置grub密码:

众所周知,通过编辑GRUB启动参数可以轻松的进入单用户模式从而修改root密码,这对于一台多用户的计算机或服务器来说,无疑增加了安全隐患。大家一定很像为自己的GRUB加一把锁吧,大家可以通过GRUB的password参数对GRUB设置密码。

给cenos 6 grub 加密

[root@kgc ~]# grub2-mkpasswd-pbkdf2      #根据提示设置GRUB菜单的密码
输入口令:
Reenter password:  123456
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.E96097D1B1E470345D9FB62759335832B4A0F39CD4C9A57B502BD59CF1B8C393EEA37847984E242AAD4BFBB72E4BDC2196E6A7495CE7C86BF3D2498A34CAC2B7.B2EB99ED40267AE9496357B78C0DC04CE79957980A4A3FFA577B7502D70A5412D2EAD5CE4DAAC0FE068621CB29B76E44A7645EDCC7784FF20E113AF0B95E3467i
 
[root@kgc ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@kgc ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
#备份文件  
[root@kgc ~]# vim /etc/grub.d/00_header
#最后
cat << EOF 
set superusers="root"  
#设置登录用户
 
password_pbkdf2 root 
#设置密码
grub.pbkdf2.sha512.10000.E96097D1B1E470345D9FB62759335832B4A0F39CD4C9A57B502BD59CF1B8C393EEA37847984E242AAD4BFBB72E4BDC2196E6A7495CE7C86BF3D2498A34CAC2B7.B2EB99ED40267AE9496357B78C0DC04CE79957980A4A3FFA577B7502D70A5412D2EAD5CE4DAAC0FE068621CB29B76E44A7645EDCC7784FF20E113AF0B95E3467i
EOF
使用 grub2-mkconfig 命令生成新的 grub.cfg 配置文件。
[root@kgc ~]# grub2-mkconfig -o /boot/grub2/grub.cfg //生成新的 grub.cfg 文件
 
重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。
 
cat << EOF
set superusers="root"
password_pbkdf2 root  grub.pbkdf2.sha512.10000.4F3CD9383616C3AAFB1E98A289CB707A6FEEDAE7BEFB10A59642FE641C8F13AD9A27EAD43DEB07D9F4228149C716FA40C8C04E13E98FFAC45EF7AA2AD76C96B9.49CEC46B324DC9A94D0B461C711569ADB79213708929B1891232DB5FE31EC6F5A0A4E4D0A4AA0EAA64E38A6876EEB3B5EBF8991D0FB04537E1F39D1AA40D1AD5
EOF
 
 
cat << EOF
set superusers="用户" 
password_pbkdf2 用户  加密密码
EOF

给cenos 7 配置 grub密码

[root@localhost ~]# grub2-setpassword

  

 

 
posted @ 2022-10-15 23:34  赵哈哈#  阅读(132)  评论(0编辑  收藏  举报