系统安全及应用

目录

1.1系统账号清理

1.1.1将用户设置为无法登录

1.1.2锁定用

1.1.3删除账户

1.1.4锁定配置文件

1.2密码安全控制

1.3 命令历史

四.切换和限制用户

1.su:切换用户

2. limit

 3 .sudo


1.1系统账号清理

1.1.1将用户设置为无法登录

usermod -s nologin [用户]

1.1.2锁定用

passwd -l [用户名]  锁定用户密码

passwd -u [用户名] 解锁用户密码

1.1.3删除账户

userdel -r [用户名]

       

1.1.4锁定配置文件

1.2密码安全控制

对于新建用户

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

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

chage [选项] 用户名

选项作用
-m密码可更改的最小天数。为零时代表任何时候都可以更改密码
-M密码保持有效的最大天数
-w用户密码到期前,提前收到警告信息的天数
-E帐号到期的日期。过了这天,此帐号将不可用
-d上一次更改的日期
-i停滞时期。如果一个密码已过期这些天,那么此帐号将不可用
-l例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期

1.3 命令历史

  • history -c 命令只可以临时清除记录,重启后记录还在。
  • 系统默认保存1000条历史命令记录;
  • 登录时自动清空命令历史 ;
  • 减少记录的命令条数;

#可以使用以下命令临时清除历史命令
 history -c 
 clear

#进入配置可以永久修改命令条数

  #vim /etc/profile  进入编辑模式

2.切换和限制用户

2.1.su:切换用户

su切换用户 任何一个用户登录 都要加载bash这个程序

在切换用户的时候 export愿意传给子进程

su 不加- 是不完全的切换  即 子进程会接受父进程的一些配置

su -  完全切换 子进程不会接受父进程的配置 是完全独立的

说明:root su至其他用户无须密码;非root用户切换时需要密码

注意:su 切换新用户后,使用 exit 退回至旧的用户身份,而不要再用 su 切换至旧用户,否则会生成很多的bash子进程,环境可能会混乱。

2.PAM 安全认证

PAM提供了对所有服务进行认证的中央机制,适用于本地登录,远程登录

PAM工作原理

PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so

PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证

专用配置文件/etc/pam.d/ 格式

type      control       module-path         arguments

application:指服务名,如:telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务
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 可选项

第三列代表PAM模块

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

每一行都是一个独立的认证过程; 每一行可以区分为三个字段: 认证类型 控制类型 PAM 模块及其参数 PAM 认证类型包括四种: 认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证; 帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过 期,帐号的登录是否有时间段的限制等; 密码管理(password management):主要是用来修改用户的密码; 会话管理(session management):主要是提供对会话的管理和记账。 控制类型也可以称做 Control Flags,用于 PAM 验证类型的返回结果。 1)required 验证失败时仍然继续,但返回 Fail 2)requisite 验证失败则立即结束整个验证过程,返回 Fail 3)sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续 4)optional 不用于验证,只是显示信息(通常用于 session 类型)

例子

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

2.2. limit

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

修改限制的实现方式:

(1) ulimit命令

ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。

ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。

ulimit只影响shell进程及其子进程,用户登出后失效。

可以在profile中加入ulimit的设置,变相的做到永久生效

-H 设置硬件资源限制.   
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-u size:最大用户进程数
-v size:设置虚拟内存的最大值.单位:kbytes
unlimited 是一个特殊值,用于表示不限制

 2.3 .sudo

sudo命令的用途及用法

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

2 配置sudo授权
可以使用visudo(通常使用visudo,因为visudo可以自动检查语法是否输入错误)
也可以使用vim /etc/sudoers进行配置(此文件默认权限为440,保存时必须 wq!强制执行操作)
可以使用通配符“ * ”号任意值和“ !”号进行取反操作
权限生效后,输入密码后5分钟可以不用重新输入密码
 

#vim /etc/sudoers                 //打开授权配置文件,写入配置需要强制保存(wq!)

#visudo                                 // l快捷打开 /etc/sudoers

visudo -c

 

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

实机演示

  1. 用户名 主机host=(root) 绝对路径命令

  2. zzzz                 ALL=(root)                   /usr/bin/mount

 

3.总结安全加固的措施
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.内核参数调整

4.总结系统环境初始化(结合第七条
1.关闭 firewalld 防火墙工具(不能关

2.关闭selinux安全防护模块

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

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

5.备份MBR分区

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值