Linux系统安全及应用

2024-01-09 20:50:04

目录

一.账号安全的基本措施

1.将非登录用户设置为不能登陆

2.锁定长期不使用账号

3.删除无用账号

4.chattr锁定重要账号文件

二.密码安全控制

三.命令历史

1.临时修改用户历史命令条数

2.永久修改用户历史命令条数

3.退出当前终端清除命令

4.开机后当前终端将命令清除

5.设置登录超时时间

四.切换和限制用户

1.su:切换用户

(1)切换用户方式

(2)密码验证

(3)限制使用su命令的用户

2.PAM安全验证

(1)su命令的风险

(2)PAM原理

(3)PAM相关文件

(4)使用PAM模块

(5)limit

3.sudo提权

(1)配置sudo

(2)格式

(3)查看当前sudo配置文件,启用sudo操作日志

五.总结安全加固措施

1.将非登录用户shell设置为nologin

2.锁定长期不使用的账号(锁定用户)

3.删除无用账号

4.chattr锁定配置文件(重要文件passwd、shadow、fstab等加 i 权限,不让删除)

5.设置密码复杂性规则(长度、特殊字符、失效时间等)密码策略

6.修改history,记录历史命令,尽量缩短记录历史命令的条数

7.禁止su root,切换超级管理员

8.设置sudo权限,禁用不安全命令

9.给GRUB设置密码

10.只允许BIOS从硬盘启动,关闭除了硬盘启动外的(光驱、udisk 、网络)

11.给BIOS设置密码

12.限制root只在安全终端登录

13.禁止普通用户登录

14.改掉大家都知道的服务端口

15.做好日志权限管理

16.内核参数调整

六.总结系统环境初始化

1.关闭 firewalld 防火墙工具(不能关

2.关闭selinux安全防护模块

3.建立国内yum源,加快安装速度

4.关闭不必要的启动项,加快系统启动速度

5.备份MBR分区

6.统一主机名、网卡名等参数

7.修改内核参数ulimit -a 中open files


一.账号安全的基本措施

1.将非登录用户设置为不能登陆

usermod -s nologin 用户名 ? ? ? ?#禁止登录

2.锁定长期不使用账号

usermod -L lisi?? ??? ??? ?#锁定账户
usermod -U lisi?? ??? ??? ?#解锁账户
?

passwd -l lisi?? ??? ??? ?#锁定账户方
passwd -u lisi?? ??? ??? ?#解锁账户

3.删除无用账号

userdel 用户名?? ??? ??? ?#删除用户

4.chattr锁定重要账号文件

lsattr /etc/passwd /etc/shadow?? ??? ??? ??? ?#查看文件的状态
chattr +i /etc/passwd /etc/shadow?? ??? ??? ?#锁定文件
chattr -i /etc/passwd /etc/shadow?? ??? ??? ?#解锁文件

二.密码安全控制

对于新建用户

可以修改 /etc/login.defs 文件里的内容来设置密码规

对于已有用户可以使用chage命令

chage

1.适用于新建用户
vim /etc/login.defs 			#修改配置文件
-----此处省略部分注释及配置-------
PASS_MAX_DAYS   30				#修改密码有效期为30天
 
2.适用于已有用户
chage -M 30 zhangsan			#修改密码有效期
 
3.强制在下次登录成功时修改密码(/etc/shadow第三个字段被修改为0)
chage -d 0 zhangsan				#设置下次登录强制修改密码

三.命令历史

1.临时修改用户历史命令条数

export HISTSIZE=200
#临时修改历史命令条数为200条

2.永久修改用户历史命令条数

vim /etc/profile       
#进入配置文件
 
export  HISTSIZE=200                      
#将全局历史命令条数由1000改为200
 
source /etc/profile    
#刷新配置文件,使文件立即生效

3.退出当前终端清除命令

vim .bash_logout
echo " " > ~/.bash_history

4.开机后当前终端将命令清除

vim .bashrc
echo " " > ~/.bash_history

5.设置登录超时时间

vim /etc/profile    
#进入配置文件
 
export TMOUT=600                
#设置全局自动注销时间,声明600s没有操作就登出
 
source /etc/profile    
#更新配置文件

四.切换和限制用户

1.su:切换用户

可以切换用户身份,并且以指定用户的身份执行命令

(1)切换用户方式
  • su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
  • su - UserName:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换

(2)密码验证
  • 超级管理员切换普通用户,不需要密码
  • 普通用户切换普通用户,需要密码
  • 普通用户切换超级管理员,需要密码
(3)限制使用su命令的用户
  • 将允许使用su命令的用户加入wheel组。
  • 启用pam_wheel认证模块。则只有wheel组内的用户可以使用su命令切换用户(编辑/etc/pam.d/su文件)。
  • 安全日志:/var/log/secure

2.PAM安全验证

二进制语言,两个不同的应用证明队对接

(1)su命令的风险
  • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;
  • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。
(2)PAM原理
  • PAM认证一般遵循的顺序:?Service (服务) --> PAM (配置文件) --> pam_*.so;,
  • PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证。
  • 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
  • 如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。
  • PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用.
(3)PAM相关文件

type:指模块类型,即功能 control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现 module-path: 用来指明本模块对应的程序文件的路径名 Arguments: 用来传递给该模块的参数

模块类型(module-type)

  • Auth 账号的认证和授权

  • Account 帐户的有效性,与账号管理相关的非认证类的功能,如:用来限制/允许用户对某个服务的访问时间,限制用户的位置(例如:root用户只能从控制台登录)

  • Password 用户修改密码时密码复杂度检查机制等功能

  • Session 用户会话期间的控制,如:最多打开的文件数,最多的进程数等

  • -type 表示因为缺失而不能加载的模块将不记录到系统日志,对于那些不总是安装在系统上的模块有用

Control: ( 控制位)

  • required :一票否决,表示本模块必须返回成功才能通过认证,但是如果该模块返回失败,失败结果也不会立即通知用户,而是要等到同一type中的所有模块全部执行完毕,再将失败结果返回给应用程序,即为必要条件

  • requisite :一票否决,该模块必须返回成功才能通过认证,但是一旦该模块返回失败,将不再执行同一type内的任何模块,而是直接将控制权返回给应用程序。是一个必要条件

  • sufficient :一票通过,表明本模块返回成功则通过身份认证的要求,不必再执行同一type内的其它模块,但如果本模块返回失败可忽略,即为充分条件,优先于前面的

  • equired和requisiteoptional :表明本模块是可选的,它的成功与否不会对身份认证起关键作用,其返回值一般被忽略include: 调用其他的配置文件中定义的配置

  • optional 可选项

(4)使用PAM模块
rpm -qi pam          #查看pam详细信息
 
rpm -ql pam          #查看pam所有文件

第一步:先确定你要使用什么服务程序

  • su? 切换用户程序

第二步

  • 写配置文件? /etc/pam.d/*? ? (配置文件的位置)
(5)limit

功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间

3.sudo提权

  • 用途:以其他用户身份(如root)执行授权的命令
  • 用法:sudo? 授权命令
(1)配置sudo
  • 可以使用visudo(通常使用visudo,因为visudo可以自动检查语法是否输入错误)
  • 也可以使用vim /etc/sudoers进行配置(此文件默认权限为440,保存时必须 wq!强制执行操作)
  • 可以使用通配符“ * ”号任意值和“ !”号进行取反操作
  • 权限生效后,输入密码后5分钟可以不用重新输入密码
(2)格式
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表
?
kk ALL=(root) /sbin/ifconfig?? ??? ??? ??? ?#举例

root:需要使用命令的用户

ALL=(ALL):主机列表=代表谁去执行(不写默认root)

ALL:可以执行什么命令

  • 用户:?直接授权指定的用户名,或采用“&组名"的形式(授权一个组的所有用户)。
  • 主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机。
  • (用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令。
  • 命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“。"进行分隔。ALL则代表系统中的所有命令。
(3)查看当前sudo配置文件,启用sudo操作日志

启用sudo操作日志

  • 需启用Defaults logfile配置
  • 默认日志文件:/var/log/sudo
  • 操作:在/etc/sudoers末尾添加Defaults logfile="/var/log/sudo"

查询授权的sudo操作

  • sudo -l

五.总结安全加固措施

1.将非登录用户shell设置为nologin

2.锁定长期不使用的账号(锁定用户)

3.删除无用账号

4.chattr锁定配置文件(重要文件passwd、shadow、fstab等加 i 权限,不让删除)

5.设置密码复杂性规则(长度、特殊字符、失效时间等)密码策略

6.修改history,记录历史命令,尽量缩短记录历史命令的条数

7.禁止su root,切换超级管理员

8.设置sudo权限,禁用不安全命令

9.给GRUB设置密码

10.只允许BIOS从硬盘启动,关闭除了硬盘启动外的(光驱、udisk 、网络)

11.给BIOS设置密码

12.限制root只在安全终端登录

13.禁止普通用户登录

14.改掉大家都知道的服务端口

15.做好日志权限管理

16.内核参数调整

六.总结系统环境初始化

1.关闭 firewalld 防火墙工具(不能关

2.关闭selinux安全防护模块

3.建立国内yum源,加快安装速度

4.关闭不必要的启动项,加快系统启动速度

5.备份MBR分区

6.统一主机名、网卡名等参数

7.修改内核参数ulimit -a 中open files

文章来源:https://blog.csdn.net/Kiryu7/article/details/135408949
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。