| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> linux的系统安全及应用 -> 正文阅读 |
|
[系统运维]linux的系统安全及应用 |
目录 一、账号的安全控制1、账号的优化账号的优化一般分为下面几个步骤 1、将一些用户设置无法登录,防止其破坏系统 2、锁定无用账号 3、删除长期不登录的闲置账号 4、锁定用户和账号密码的配置文件,防止系统被入侵 1.1 设置用户无法登录通常linux中想让用户无法登录,一般会将用户的shell改为 /sbin/nologin ,而/sbin/login的作用是用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。 1、查看用户的属性 ?2、修改用户无法登录 ?3、使用切换用户来验证用户是否能正常登录 1.2 锁定无用账号1、锁定账号 ?2、查看是否锁定
?3、解锁账号并验证
1.3 删除账号
1.3 锁定用户配置文件chattr 选项 (1)-a 让文件和目录追加用途 (2)+i 锁定文件和目录 (3)-i 解锁文件和目录 锁定配置文件
查看是否属于锁定状态
2、密码的安全控制2.1 密码规则的设定1.新建用户设置密码规则
2、已有用户设置密码 chage [选项]? 用户名 常见的选项 (1)m 设置密码最少到期天数 (2)M 设置密码最多到期天数 (3)W 密码到期前,提前收到警告提醒 (4)E 账号到期时不能使用该账号 (5)d 上一次密码到期的日期
二、用户命令的权限控制1、历史命令管理bash中默认命令记忆可达1000个。这些命令保存在主文件夹内的.bash_history中 1.1 设置历史命令保存个数
1.2 退出时清空命令
1.3 开机时清空历史命令
2、切换用户su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码 命令格式 su? ?用户名 su - 用户名 su 用户名:非登录式的登录,不会读取目标用户的的配置文件,不改变当前工作目录,即未完全登录 su - 用户名:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
限制使用su 命令
3、pam模块在Linux中执行有些程序时,这些程序在执行前首先要对启动它的用户进行认证,符合一定的要求之后才允许执行,例如login, su等。在Linux中进行身份或是状态的验证程序是由PAM来进行的,PAM(Pluggable Authentication Modules)可动态加载验证模块,因为可以按需要动态的对验证的内容进行变更,所以可以大大提高验证的灵活性。 Linux-PAM有四种模块类型,分别代表四种不同的任务,它们是: auth:表示鉴别类接口模块类型用于检查用户和密码,并分配权限; account:表示账户类接口,主要负责账户合法性检查,确认帐号是否过期,是否有权限登录系统等; 多数情况下auth和account会一起用来对用户登录和使用服务的情况进行限制。这样的限制会更加完整。比如下面是一个具体的例子:login是一个应用程序。Login要完成两件工作——首先查询用户,然后为用户提供所需的服务,例如提供一个shell程序。通常Login要求用户输入名称和密码进行验证。当用户名输入的时候,系统自然会去比对该用户是否是一个合法用户,是否在存在于本地或者远程的用户数据库中。如果该账号确实存在,那么是否过期。这些个工作是由account接口来负责。 如果用户满足上述登录的前提条件,那么它是否具有可登录系统的口令,口令是否过期等。这个工作就要由auth接口来负责了,他通常会将用户口令信息加密并提供给本地(/etc/shadow)或者远程的(ldap,kerberos等)口令验证方式进行验证。 如果用户能够登录成功,证明auth和account的工作已经完成。但整个验证过程并没有完全结束。因为还有一些其他的问题没有得到确认。例如,用户能够在服务器上同时开启多少个窗口登录,用户可以在登录之后使用多少终端多长时间,用户能够访问哪些资源和不能访问哪些资源等等。也就是说登录之后的后续验证和环境定义等还需要其他的接口。这就是我们下面要提到的两组接口: session:会话类接口。实现从用户登录成功到退出的会话控制; password:口令类接口。控制用户更改密码的全过程。也就是有些资料所说的升级用户验证标记。 required:表示该行以及所涉及模块的成功是用户通过鉴别的必要条件。换句话说,只有当对应于应用程序的所有带 required标记的模块全部成功后,该程序才能通过鉴别。同时,如果任何带required标记的模块出现了错误,PAM并不立刻将错误消息返回给应用程序,而是在所有模块都调用完毕后才将错误消息返回调用他的程序。 反正说白了,就是必须将所有的模块都执行一次,其中任何一个模块验证出错,验证都会继续进行,并在执行完成之后才返回错误信息。这样做的目的就是不让用户知道自己被哪个模块拒绝,通过一种隐蔽的方式来保护系统服务。就像设置防火墙规则的时候将拒绝类的规则都设置为drop一样,以致于用户在访问网络不成功的时候无法准确判断到底是被拒绝还是目标网络不可达。 requisite:与required相仿,只有带此标记的模块返回成功后,用户才能通过鉴别。不同之处在于其一旦失败就不再执行堆中后面的其他模块,并且鉴别过程到此结束,同时也会立即返回错误信息。与上面的required相比,似乎要显得更光明正大一些。 sufficient:表示该行以及所涉及模块验证成功是用户通过鉴别的充分条件。也就是说只要标记为sufficient的模块一旦验证成功,那么PAM便立即向应用程序返回成功结果而不必尝试任何其他模块。即便后面的层叠模块使用了requisite或者required控制标志也是一样。当标记为sufficient的模块失败时,sufficient模块会当做 optional对待。因此拥有sufficient 标志位的配置项在执行验证出错的时候并不会导致整个验证失败,但执行验证成功之时则大门敞开。所以该控制位的使用务必慎重。 optional:他表示即便该行所涉及的模块验证失败用户仍能通过认证。在PAM体系中,带有该标记的模块失败后将继续处理下一模块。也就是说即使本行指定的模块验证失败,也允许用户享受应用程序提供的服务。使用该标志,PAM框架会忽略这个模块产生的验证错误,继续顺序执行下一个层叠模块。 include:表示在验证过程中调用其他的PAM配置文件。在RHEL系统中有相当多的应用通过完整调用/etc/pam.d/system-auth来实现认证而不需要重新逐一去写配置项。这也就意味着在很多时候只要用户能够登录系统,针对绝大多数的应用程序也能同时通过认证。 4、sudo 命令sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。Sudo不是对shell的一个代替,它是面向每个命令的 4.1 给用户添加命令
4.2 别名
5、grub 加密?设置grub密码: ??? 众所周知,通过编辑GRUB启动参数可以轻松的进入单用户模式从而修改root密码,这对于一台多用户的计算机或服务器来说,无疑增加了安全隐患。大家一定很像为自己的GRUB加一把锁吧,大家可以通过GRUB的password参数对GRUB设置密码。 给cenos 6 grub 加密
给cenos 7 配置 grub密码
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 3:42:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |