首页 > 其他分享 >系统安全及应用

系统安全及应用

时间:2023-11-08 14:35:38浏览次数:34  
标签:系统安全 lisi etc 用户 密码 模块 应用 size

系统账号基本措施

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

锁定长期不适用的账号 (passwd -l /usermod-L)

删除无用的账号

锁定账号文件 passwd,shadow

chattr

chattr +i aa #给aa文件一个不可删除状态
cahtte -i aa #将aa文件的不可删除状态撤销掉

 #给了aa的i权限 无法删除

 #把aa的i权限去掉,成功删除它

lsattr (查看状态)

 

chage

格式

chage [选项] 用户名

 命令

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

例如

chage -M 30 lisi # (将用户lisi的密码有效期设置为30天)
chage -d 0 lisi #lisi用户下回登陆时必须修改密码

 

history 命令历史

减少history的条数

history -c (临时清理)

 

 #使用history ,会显示很多历史命令

 #使用-c 临时清理

 永久清理命令

vim .bash_logout #编辑 (退出)
echo " " > ~/.bash_history #覆盖/bash_history
vim .bashrc # 登录

 #编辑 bash_logout

#exit  退出,再用histroy 只显示一些历史命令

 

vim /etc/profile
. /etc/profile #刷新
source /etcprofile #刷新
echo $HISTSIZE #查看输出记录数

 

 #编辑/etc/profile  修改输出记录

 #输出记录改为100 保存退出

 #刷新以下

 #查看输出记录数

 

su 切换用户

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

bash 作用:补全 ,记录命令等

export 愿意传给子进程

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

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

 

 

PAM模块

插件式的模块

最常见的功能:验证用户名密码

开发出一款 软件如果要用到 用户名和密码的功能时,就会调用 pam 架构中的 密码模块 不需要二次开发

PAM 相关文件

模块文件目录:/lib64/security/*|.so

特定模块相关的设置文件:etc/security/

etc/pam.d (专用配置文件)

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

type 类型 contrl控制 模块名称() 可选项(补充描述)

模块类型

 

Auth 账户的认证和授权 (加 - 忽略此选项)

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

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

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

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

vim/etc/pam.d/su

control (控制位) 验证是否成功

PAM验证流程图

 

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

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

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

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

optional 可选项

实验

 #查看shell路径,创建个lisi用户shell路径位/bin/csh

 #查看/etc/passwd 下的最后一行,显示lisi用户,shell类型是/bin/csh

 #给lisi用户设置个密码

 #编辑

 #复制下面auth这一行  粘贴到上一行

 

#将sufficient(一票通过)改成required(一票否决),将rootok改成shells。保存退出

#编辑shells 

 #将这个删掉

 #切换lisi用户

 #root用户切换lisi用户竟然要密码了

 
#鉴定故障

 

limit

ulimit -a

 #查看内核调优

 #临时性 调整 2000

ab 压测工具

安全加固

内核调优 :打开文件数量,打开路由转发功能

限制单个程序使用 服务器的硬件资源

系统调优

1、关闭不必要的开机自启程序

2、价格国外yum源改为清华,阿里等国内源

3、时间同步

4、内核调优

 5、日志分割

 

命令

-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 #是一个特殊值,用于表示不限制

实验   系统调优

 

 #用yum 安装nginx 和httpd。并开启nginx

 #开两个虚拟机

 #传不过去

 #将数出量 改为2000

 #输出成功

 #切换到test26的虚拟机中

 #打开nginx

 #编辑

 #    * 代表所有用户    soft  软限制  core 硬限制   类型(最大登录输出)

limits生产中的建议

* soft core unlimited
* hard core unlimited
* soft nproc 1000000
* hard nproc 1000000
* soft nofile 1000000
* hard nofile 1000000
* soft memlock 32000
* hard memlock 32000
* soft msgqueue 8192000
* hard msgqueue 8192000

 #将这个生产建议输入到这个文本编辑器里,保存退出

 #重启

 #查看输出量。已更改

 

sudo

(授权命令)

 用户(root)  ALL 主机名   (ALL)以谁的身份运行(不写默认代表超级管理员 )   ALL  命令

sudo特性:

  • sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员

  • sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器

  • sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票

  • sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440

修改命令路径

vim /etc/sudoers
visudo -c #(有语法检测功能)
visudo #推荐使用

 

实验

#用户lisi   授权挂载

 #解析查看先

 #去另一个服务器 授权

 #无法解挂

 #去另个服务端 将命令路径改成*   /usr/bin/*  代表这个路径下所有的文件都可以

 #解析下

 #可以解挂

 

标签:系统安全,lisi,etc,用户,密码,模块,应用,size
From: https://www.cnblogs.com/yanrui07/p/17815641.html

相关文章

  • WPF应用添加快捷键
    一些快捷键的操作,可以极大地方便了应用的操作。目前我经常用的一些快捷键:1、ESC:关闭窗体2、Ctrl+N:新建3、F2:编辑3、Delete:删除4、F5:刷新5、Ctrl+S:保存有些快捷键,适合针对窗体直接设置。<Window.InputBindings><KeyBindingCommand="{BindingAddCommand}"Gesture="......
  • Delphi MessageBox消息框应用窗口居中实用解决方案
    众所周知,Delphi的MessageBox消息框是封装的Win32函数。其函数原型为:MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);其中各参数想必大家都很熟悉,在此不再赘述。主要谈谈 HWND。按官方描述:此参数代表消息框拥有的窗口。如果为NULL,则消息框没......
  • SQL Server 2005透视表运算符PIVOT应用示例
    SQLServer2005行列转换 有用SQL写过交叉报表的,往往都比较头痛,还好现在SQL2005中提供了新的PIVOT操作符,可以很简单地写出交叉数据查询。正好前两天在研究ORACLE最新的11G版本提供的新特性,发现ORACLE11G也同样推出这个新PIVOT,而且语法格式也几乎是一样的,呵,看来这些主流的数据库都......
  • Net 高级调试之六:对象检查之值类型、应用类型、数组和异常的转储
    一、简介今天是《Net高级调试》的第六篇文章。记得我刚接触Net框架的时候,还是挺有信心的,对所谓的值类型和引用类型也能说出自己的见解,毕竟,自己一直在努力。当然这些见解都是书本上的,并没有做到眼见为实,所以总是有些东西说不清楚。今天,我们就好好的说说C#的类型,是从......
  • 赋值运算符,比较运算符,逻辑运算符的应用
    print('-----------赋值运算------------')a=20b=30a=a+b#赋值运算:此处的a是经过20+30后再次赋值给aprint(a)#运行接轨a=50a+=b#这里的运算相当于a=a+b其运算结果为50+30=80print(a)#结果为80a-=b#这里的运算相当于a=a-b其运算结果为80-30......
  • 记录2023.11.7算法分析与应用课程学习
    题目-迷宫scanner是键盘录入底下的n=sc.nextInt();是输入内容;可以在地下输入东西录入进去的意思java中的next和nextline的区别简单的java键盘输入代码起别名sc可以任意取名字将键盘的数据赋值给变量sc.next就是相对于Scanner(System.in).next输入的名称=定义的名称 输入的密码=定......
  • 标题:计算机音视频技术的发展与应用
    音视频技术是计算机领域中备受关注的研究方向之一,近年来随着计算机性能的不断提升和网络带宽的增加,音视频技术在通讯、娱乐、教育等领域得到了广泛的应用。本文将就计算机音视频技术的发展历程、基本原理及应用进行探讨。###1.计算机音视频技术的发展历程计算机音视频技术起源于......
  • 标题:计算机音视频技术的发展与应用
    音视频技术是计算机领域中备受关注的研究方向之一,近年来随着计算机性能的不断提升和网络带宽的增加,音视频技术在通讯、娱乐、教育等领域得到了广泛的应用。本文将就计算机音视频技术的发展历程、基本原理及应用进行探讨。###1.计算机音视频技术的发展历程计算机音视频技术起源于......
  • 【C】堆的实现及应用(Tok问题、排序)
    文章介绍了堆的基本定义以及代码实现,并针对常用的TopK问题、排序方法做了应用模拟,同时对有可能出现的疑问做了解释说明,希望可以帮助到大家,如有错误,还望不吝赐教。一、基本知识在百度百科中,基本定义如下:简陋一些讲,就是一棵完全二叉树,其中任意节点的值都大于(小于)它的孩子节点,称......
  • hashmap的小应用---投票去旅游
    在学习了map之后,使用简单的hashmap进行简单的全班同学投票旅游地点packagecom.itheima.myMap;importjava.util.*;importjava.util.function.BiConsumer;publicclassText2{publicstaticvoidmain(String[]args){//模拟投票Randomra=newRandom......