Linux系统安全及应用

目录

一、Linux账户安全措施

1.系统账号清理

2. 密码安全控制

3.命令历史限制 

减少记录的命令条数

注销时自动清空历史命令

4.终端自动注销 

二、su命令使用方法 

1.用途及用法

2.密码验证

3.限制使用su命令的用户

4.实例

将zrk用户加入到wheel组里,并进行查看​

启用pam认证 ,在wheel组里的用户可以使用​

5.PAM安全认证 

认证原理

PAM认证的构成

三、sudo命令 

1.用途及用法

2.su命令的缺点

3.配置sudo授权

4.实例

四、开关机安全控制 

1.调整BIOS引导设置

2.GRUB限制


一、Linux账户安全措施

1.系统账号清理

  • 将非登录用户的Shell设为/sbin/nologin
  • 锁定长期不使用的账号
  • 删除无用的账号
  • 锁定账号文件passwd、shadow

    chattr +i /etc/passwd   ###锁定文件

    lsattr /etc/passwd       ###查看状态

    chattr -i /etc/passwd   ###解锁文件

2. 密码安全控制

概述:设置密码有效期;要求用户下次登录时修改密码。

vi /etc/login.defs               适用于新建用户
chage -M 日期 用户               #设置用户密码有效期,适用于已有用户
chage -d 0 用户                 强制在下次登录时更改密码 
chage -l 用户                    #也可以查看状态

查看用户rrr状态 

更改用户rrr密码有效期 

强制用户在下次登陆时更改密码 

3.命令历史限制 

减少记录的命令条数

适用于新用户-----
[root@localhost ~]# vi /etc/profile    ## 进入配置文件修改限制命令条数。适合新用户
export HISTSIZE=200            ##修改限制命令为200条,系统默认是1000条profile
[root@localhost ~]# source /etc/profile         ## 刷新配置文件,使文件立即生效
适用于当前用户-----
[root@localhost ~]# export HISTSIZE=200  适用于当前用户
[root@localhost ~]# source /etc/profile 
[root@localhost ~]# source /etc/profile 刷新配置文件,使文件立即生效
[root@localhost ~]#echo $HISTSZE ##查看历史记录保留条数数量

环境变量的读取:
用户登录-》加载~/.bash_profile --》bash_profile中的配置首先是使 ~/.bashrc生效
用户登出–》.bash_logout 运行logout配置文件 

注销时自动清空历史命令

[root@localhost ~]#echo " " > ~/.bash_history
 
永久清除
[root@localhost ~]# vim ~/.bashrc ##进入vim编辑器
echo " " > ~/.bash_history ##以空白文件覆盖历史记录(相当于清空历史记录)

临时清除
[root@localhost ~]#vim ~/.bash_logout
history -c
clear

4.终端自动注销 

闲置600秒后自动注销

vi /etc/profile

###进入写入  export TMOUT=600

wq保存退出

source /.bash_logout   刷新
或者
 . /etc/profile   ###刷新

二、su命令使用方法 

1.用途及用法

  • 用途:Substitute User,切换用户
  • 格式:su - 目标用户

2.密码验证

  • root——>任意用户,不验证密码
  • 普通用户——>其他用户,验证目标用户的密码
    [song@localhost ~]$ su - root    ##带`-`选项表示将使用目标用户的登录Shell环境
    
    口令:
    [root@localhost ~]# whoami root  ##查看当前所在用户
    

    su命令和su -命令区别
    前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;
    而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。 

3.限制使用su命令的用户

  • 将允许使用su命令的用户加入wheel组
  • 启用pam_wheel认证模块
  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险
  • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
  • 查看su操作记录:安全日志文件/var/log/secure

4.实例

默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登录密码,这样带来了安全风险。为了加强su命令的使用控制,可以借助于pam_wheel认证模块,只允许极个别用户使用su命令进行切换。实现过程如下:将授权使用su命令的用户添加到 wheel组,修改/etc/pam.d/su认证配置以启用 pam_wheel 认证。

  • gpasswd -a 用户 wheel #将用户添加到组
  • vim /etc/pam.d/su #进入pam认证配置文件
  • auth required pam_wheel.so use_uid #取消注释

 

  • 以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
  • 两行都注释也是运行所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam_rootok.so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。
  • 如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
  • 如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。

将zrk用户加入到wheel组里,并进行查看

启用pam认证 ,在wheel组里的用户可以使用

  启用pam_wheel认证以后,未加入到wheel组内的其他用户将无法使用su命令,尝试进行切换时将提示“拒绝权限”,从而将使系统更加安全。 

5.PAM安全认证 

Linux-PAM,是Linux可插拔认证模块,是一套可定制、可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式。

认证原理

  • PAM认证一般遵循的顺序:service (服务) -->PAM(配置文件)–> pam*.so;
  • PAM认证首先要确定哪一项应用服务,然后加载相座的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/ lib64 / security/ 下)进行安全认证。
  • 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAw模块进行认证。不同的应用程序所对应的PAM模块也是不同的。如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。
  • PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用。

PAM认证的构成

查看某个程序是否支持PAM认证,可以使用ls命令。如:查看su是否支持PAM模块认证。

查看su的PAM配置文件:cat/etc/pam.d/su

  • 每一行都是一个独立的认证过程
  • 每一行可以区分为三个字段:认证类型   控制类型   PAM模块及其参数

三、sudo命令 

概述:我们可以使用sudo机制来提升权限

1.用途及用法

  • 用途:以其他用户身份(如root)执行授权的命令
  • 用法:sudo 授权命令

2.su命令的缺点

通过su命令可以非常方便切换到另一个用户,但前提条件是必须知道用户登录密码。对于生产环境中的Linux服务器,每多一个人知道特权密码,安全风险就多一分。于是就多了一种折中的办法,使用sudo命令提升执行权限,不过需要由管理员预先进行授权, 指定用户使用某些命令。

3.配置sudo授权

  • visudo或者vi /etc/sudoers(此文件的默认权限为440,保存退出时必须执行:"wq!" 命令来强制操作)
  • 记录格式:用户 主机名=(用户) 命令程序列表
  • 用户:直接授权指定的用户名,或采用”组名”的形式(授权一个组的所有用户)。

    主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机

    (用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命

    命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径多个命令之间以逗号""进行分隔。ALL则代表系统中的所有命令

  • sudo [参数选项] 命令
参数作用
-l(小写L)列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;
-v验证用户的时间戳;如果用户运行sudo后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo操作;用 -v可以跟踪最新的时间戳。
-u指定以以某个用户执行特定操作
-k删除时间戳,下一个sudo命令要求用求提供密码;

4.实例

zrk用户可以使用useradd  usermod

需求:zrk          root用户下的权限useradd usermod

对结果进行验证

四、开关机安全控制 

1.调整BIOS引导设置

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、U盘网络)引导系统
  • 将安全级别设为setup,并设置管理员密码

2.GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成密钥
  • 修改/etc/grubd/00header文件中,添加密码记录
  • 生成新的grubcfg配置文件

 

  

 


 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值