栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux系统之安全及应用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux系统之安全及应用

目录

账号安全控制

基本安全措施

系统账号的清理

密码安全控制

命令历史、自动注销

用户切换与提权(加入wheel组)

su命令—切换用户

sudo命令—提升执行权限

PAM安全认证

PAM认证的构成 

PAM认证模块及其参数

PAM安全认证的流程

系统引导和登录控制

开关机安全控制

调整BIOS引导设置原则

GRUB菜单设置

GRUB限制的实现

终端及登录控制

限制root用户只在安全终端登录

禁止普通用户登录


账号安全控制

基本安全措施

系统账号的清理

将非登录用户的Shell设为/sbin/nologin

在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、nobody、ftp等。

usermod -s /sbin/nologin 用户名

将账号权限设置为非用户登录

锁定长期不使用的账号

usermod -L test    锁定用户账号        usermod -U test    解锁用户账号
passwd -l test       锁定用户账号        passwd -u test      解锁用户账号 

passwd -S 查看用户账号是否锁定

删除无用账号

userdel test                        仅删除账号文件

userdel -r test                     删除账号文件+账号家目录文件一起

锁定账号文件passwd、shadow

chattr +i /etc/passwd /etc/shadow   锁定文件,包括root也无法修改
chattr -i /etc/passwd /etc/shadow 解锁文件
lsattr /etc/passwd /etc/shadow查看文件状态属性

密码安全控制

设置密码有效期

1.chage -M 60 test3                                        这种方法适合修改已经存在的用户

2.vim /etc/login.defs             

PASS_MAX_DAYS   30                                  这种适合以后添加新用户       

要求用户下次登录时修改密码

chage -d 0 test6 强制要求用户下次登陆时修改密码

命令历史、自动注销

命令历史限制

减少记录命令的条数

注销时自动情况命令历史

        减少记录命令的条数:
        1.[root@localhost ~]# vim /etc/profile  进入配置文件修改限制命令条数。适合新用户
           HISTSIZE=200     修改限制命令为200条,系统默认是1000条profile 
           [root@localhost ~]# source /etc/ 刷新配置文件,使文件立即生效
 
        2.[root@localhost ~]# export HISTSIZE=200  适用于当前用户
           [root@localhost ~]# source /etc/profile 
           [root@localhost ~]# source /etc/profile 刷新配置文件,使文件立即生效
      
        3. 注销时自动清空命令:
         [root@localhost ~]# vim ~/.bashrc
             echo "" > ~/.bash_history

 

终端自动注销 

闲置600秒后自动注销:
[root@localhost ~]#vim .bash_profile  进入配置文件
    export TMOUT=60  全局声明超过60秒闲置后自动注销终端
[root@localhost ~]# source .bash_profile 
[root@localhost ~]# echo $TMOUT
 
[root@localhost ~]# export TMOUT=600   
如果不在配置文件输入这条命令,那么是对当前用户生效

[root@localhost ~]#vim .bash_profile 
  # export TMOUT=60  注释掉这条命令,就不会自动注销了

用户切换与提权(加入wheel组)

su命令—切换用户

1.用途及用法
用途:Substitute User,切换用户
格式:su - 目标用户(横杠“ - ”代表切换到目标用户的家目录)

root - - - >任意用户,不验证密码
普通用户- - - >其他用户,验证目标用户的密码
带 “ - ” 表示将使用目标用户的登录Shell环境

2.查看su操作记录
安全日志文件:/var/log/secure

3.whoami确定当前用户是谁

4. vim /etc/pam.d/su
   把第六行注释去掉保存退出
   
默认情况下,使用root切换不需要密码
注释两行,所有账号都可以使用,但是root切换时需要密码

sudo命令—提升执行权限

sudo命令的用途及用法:
用途:以其他用户身份(如root)执行授权命令
用法:sudo 授权命令
1.
配置sudo授权
visudo 或者 vim /etc/sudoers
记录格式:
用户 主机名列表=命令程序列表
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
权限生效后,输入密码后5分钟可以不用重新输入密码。
2.
配置/etc/sudoers文件,可以授权用户较多的时使用
 Host_Alias MYHOST= localhost  主机名
 User_Alias MYUSER = yxp,zhangsan,lisi  需要授权的用户   
 Cmnd_Alias MYCMD = /sbin/*,/usr/bin/passwd  授权
 MYUSER  MYHOST = NOPASSWD : MYCMD  授权格式

3.查看sudo操作记录
需启用Defaults logfile
配置默认日志文件: /var/log/sudo

 

 注:wq!强制退出

 

此时vim /var/log/sudo内 查看sudo使用日志

PAM安全认证

su命令的安全隐患

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户的登录密码,带来安全风险。

为了加强su命令的使用控制,可借助于PAM认证模块,只允许及个别用户使用su命令切换

PAM可插拔式认证模块

是一种高效而且灵活便利的用户级别的认证方式

也是当前linux服务器普遍使用的认证方式

PAM认证原理

一般遵循的顺序

service(服务)——PAM(配置文件)——pam_*.so

首先要确定那一项服务,然后加载相应的PAM配置文件(文件位置位于/etc/pam.d下),最后调用认证文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
不同的应用程序对应的PAM模块是不同的

看某个程序是否支持PAM认证,可以用ls命令查看/etc/pam.d/

PAM认证的构成 

查看某个程序是否支持PAM认证,可以使用ls命令

示例:查看su是否支持PAM模块认证

ls /etc/pam.d | grep su

查看su的PAM配置文件

cat /etc/pam.d/su

每一行都是一个独立的认证过程

每一行可以区分为三个字段

  1. 认证类型
  2. 控制类型
  3. PAM模块及参数

PAM认证模块及其参数

PAM的每一行都是一个独立的认证过程,他们按照从上往下的顺序依次由PAM模块调用

第一列代表对PAM认证模块的类型

auth:对用户身份进行识别,如提示输入密码,判断是否为root

account:对账号各项属性进行检查,如是否允许登录系统,账号是否已经过期,是否达到最大用户数量等等

password:让用户来更新数据,如修改密码

session:定义登录前以及退出后要进行的会话管理,如登录连接信息,用户数的打开和关闭,挂载文件系统等。

第二列代表PAM控制标记

required:表示需要返回一个成功值。如果返回失败,不会立即把失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完毕后,再返回失败

requisite:与required类似,但是如果此模块返回失败,则立即返回失败并表示次类型失败

sufficient:如果此模块返回成功,则立即向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。

optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型)

include: 表示在验证过程中调用其他的PAM配置文件,比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作),来实现认证,不需要重新逐一的去写配置

第三列代表PAM模块

默认是在/lib64/security/目录下,如果不在次目录下,要填写绝对路径。同一个模块,可以出现在不同的模块类型中,它在不同类型中所执行的操作都不相同,这是由于每个模块针对不同模块类型编制了不同的执行函数。

第四行代表PAM模块参数

这个需要根据所使用的的模块来添加,传递给模块的参数,参数可以有多个,之间用空格分开。

PAM安全认证的流程

控制类型也称作control flags,用于PAM验证类型的返回结果

required验证失败时候任然继续,但是返回失败的值

requisite验证失败则立即结束整个验证过程,返回失败值

sufficient验证成功则立即返回,不再继续,否则忽略结果并继续

optional:不用于验证,只显示信息(通常用于session类型)

系统引导和登录控制

开关机安全控制

调整BIOS引导设置原则

将第一引导设备设为当前系统所在硬盘;

禁止从其他设备(光盘、 U盘、网络)引导系统;

将安全级别设为setup,并设置管理员密码。

禁用重启热键:Ctrl+Alt+Delete 避免因用户误操作重启

GRUB菜单设置

未经授权禁止修改启动参数

未经授权禁止进入指定系统

GRUB限制的实现

通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

使用grub2-mkpasswd-pbkdf2获得加密字符串;

修改/etc/grub.d/00_ header文件中, 添加密码记录;

生成新的grub.cfg配置文件。

法一:
1.  使用grub2-mkpasswd-pbkdf2生成密钥并复制,然后备份两个配置文件。 
2.  修改/etc/grub.d/00_ header文件中, 添加密码记录,并存并退出 

法二:
直接设置grub2—setpasswd 设置grub密码
生成新的grub.cfg文件,然后重启系统

验证结果
 

在开机界面后可以进入GREP菜单界面,在此界面是可以进行修改的,如果被不明人员进入 可能会在此处注入病毒程序,非常的不安全。

但是我们可以在此处设置密码,进行安全防范。

第一种方法

第二种方法

终端及登录控制

限制root用户只在安全终端登录

安全终端配置:/etc/securetty

步骤:        

        更改相关配置文件

        切换至指定终端进行测试

        切换至其他终端进行测试

禁止普通用户登录

建立/etc/nologin文件

删除nologin文件或者重启后即恢复正常

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/613677.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号