系统账号基本措施
将非登录用户的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