系统安全及应用

ZYC·2023-11-08 14:24·16 次阅读

系统安全及应用

系统账号基本措施

将非登录用户的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/*  代表这个路径下所有的文件都可以

 #解析下

 #可以解挂

 

posted @   citywalk  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示
目录