首页 > 其他分享 >系统安全

系统安全

时间:2023-11-12 23:13:12浏览次数:28  
标签:lisi 系统安全 命令 用户 etc root localhost

系统安全

1. 账号安全措施

  1. ​ 将非登录用户的shell设置为/sbin/nologin(无法登陆)
  2. ​ 锁定长期不使用的账号
  3. ​ 删除无用的账号
  4. ​ 锁定账号配置文件(/etc/passwd、/etc/shadow)

1.1.1 将非登录用户的shell设置为/sbin/nologin(无法登陆)

/sbin/nologin 所谓的“无法登陆”仅仅指这个用户无法通过bash或其他shell来登录系统而已,该用户还是可以使用系统资源的

1.1.4 锁定账号配置文件(/etc/passwd、/etc/shadow)

[root@localhost /]# lsattr /etc/passwd
---------------- /etc/passwd
[root@localhost /]# chattr +i /etc/passwd  /etc/shadow   # 锁定文件
[root@localhost /]# lsattr /etc/passwd  /etc/shadow     # 查看文件的状态
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost /]# 
[root@localhost /]# rm -rf /etc/passwd          # 删除文件
rm: 无法删除"/etc/passwd": 不允许的操作         # 可以看到无法进行删除操作
[root@localhost /]# useradd lisi -M         
useradd:无法打开 /etc/passwd
[root@localhost /]# usermod wy -u 3000
usermod:无法打开 /etc/passwd              

# 使用chattr命令锁定该文件后,只能对该文件进行“查看”,不能进行“增删改” 



1.2 密码安全措施

  1. 新用户设置复杂的密码
  2. 设置密码有效期
  3. 要求用户下次登录时修改密码

1.2.1 新用户设置复杂的密码

新创建的用户设置复杂的密码,提高账号的安全性


1.2.2 设置密码有效期

修改指定用户的密码有效期

[root@localhost /]# chage -M 30 lisi      # 修改李四密码有效期为30天
[root@localhost /]# cat /etc/shadow
lisi:$6$ftcN3XYY$jsbwN0NI67huO9VnIqGf.WNUI11zl/9Xp.eM3J6LyPpJYApHAvwIYfhS5DIVyUTYt8Ker/dYGU6PRoyDbYoOr0:0:0:30:7:::


1.2.3 要求用户下次登录时修改密码

chage命令

# 格式
chage [选项] 用户名

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


让指定用户下次登录时,强制修改密码

[root@localhost /]# chage -d 0 lisi    # 该命令强制用户下次登录修改密码,无法取消
# -d 0  强制修改密码  
# 让李四下一次登录系统强制修改密码

image-20231107164720832



1.3 历史命令安全措施

​ shell的历史命令机制给用户提供了极大的便利,同时这一机制也给用户带来了风险。只要获得了用户的历史命令文件,那么该用户的所有操作都会被知道。如果在历史命令中有着明文的密码或其他重要的信息,那可能对服务器造成隐患。

​ 为了解决这个隐患,我们需要对历史命令的安全进行防护。bash的终端环境中,变量HISTSIZE记录着历史命令的最大条数(默认为1000),我们可以通过修改/etc/profile文件中HISTSIZE的值,来改变系统中能够显示历史命令的最大值,例如:HISTSIZE=200


防护历史命令安全的方法

  1. ​ 清除历史命令(临时性)
  2. ​ 改变历史命令HISTSIZE最大值
  3. ​ 在登录或登出时,清空历史命令文件内容
  4. ​ 闲置不操作一定时间后,自动注销当前用户(自动退出)

方法1:清除历史命令(临时性)

[root@localhost /]# history -c    # 临时清除历史命令,重启系统后,还会重新显示
[root@localhost /]# history
    1  history
[root@localhost /]# 


方法2:改变历史命令HISTSIZE最大值

vim /etc/profile   # 历史命令的HISTSIZE的文件位置
HISTSIZE=1000     # 默认值
HISTSIZE=100 	  # 修改后的值

image-20231107182017086

image-20231107182115034


方式3:在登录或登出时,清空历史命令文件内容


登录系统,清空历史命令
# ~/.bashrc文件输入清空历史命令文件内容的命令,使得登录系统时清空历史命令

vim ~/.bashrc      # 登录运行的文件
echo " " > ~/.bash_history
echo "已清空历史命令文件内容,clear history file"
--------------------------------------------------------------
修改完配置文件,也可以使用"."或"source"刷新配置文件
刷新文件(重新运行文件)
.=source

[root@localhost ~]# . ~/.bashrc
已清空历史命令文件内容,clear history file
[root@localhost ~]# 
--------------------------------------------------------------
# 重新登陆系统后,会清除历史命令
Last login: Tue Nov  7 18:35:35 2023 from 192.168.32.1
已清空历史命令文件内容,clear history file
[root@localhost ~]# history
    1   
    2  history
[root@localhost ~]# 

登出系统,清空历史命令
# ~/.bash_logout文件输入清空历史命令文件内容的命令,使得退出系统时清空历史命令

vim ~/.bash_logout     # 登出(退出)运行的文件
echo " " > ~/.bash_history
echo "已清空历史命令文件内容,clear history file"
------------------------------------------------------------------------
修改完配置文件,也可以使用"."或"source"刷新配置文件
刷新文件(重新运行文件)
.=source
你已经10秒没有操作该系统,将自动注销
[root@localhost ~]# source ~/.bash_logout
已清空历史命令文件内容,clear history file
[root@localhost ~]#
-------------------------------------------------------------------------
# 按“exit”命令退出终端后,清除历史命令
[root@localhost ~]# exit
登出
已清空历史命令文件内容,clear history file

方法4:闲置不操作一定时间后,自动注销当前用户(自动退出)

在/etc/profile文件中配置“一定时间不操作系统,自动注销账户”

vim /etc/profile
-------------------------------------
# 20秒没有操作系统,系统将自动注销
export TMOUT=20


vim ~/.bash_logout
-------------------------------------
echo "自动注销"


# 刷新配置文件
. /etc/profile
. ~/.bash_logout




1.4 切换用户

su Substitute User,切换用户


su命令格式

su [-] 目标用户

密码验证

root ---> 任意用户,不验证密码

普通用户 ---> 其他用户,验证目标用户的密码

[root@localhost ~]# su lisi
[lisi@localhost root]$ su root
密码:
[root@localhost ~]# 


切换用户方式

su lisi 不加“-”切换,不完全切换,lisi会集成root的一些信息

su - lisi 加“-”切换,完全切换,lisi和root没有一点关系,lisi是独立的

注意

​ 使用su切换新用户后,可以使用“exit”退出至旧用户身份,而不要再用su切换回旧用户,否则会产生很多abash子进程,环境可能会混乱

​ 有“-”切换用户身份会更彻底,如果不加“-”切换,只会切换一部分,这会导致某些命令出现问题或错误(例如:无法使用service命令)

1.5 PAM模块

作用:统一了标准

1.5.1 PAM相关文件

pam包的名字:pam

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

特定模块相关的pam配置文件:/etc/security/*(只有功能比较强大的模块才有特定的配置文件)

man 8 模块名 查看帮助

主配置文件:/etc/pam.d/*

shell解释器的配置文件路径:/etc/shells

插件式的模块

vim /etc/pam.d/su
-------------------------------------------------
#%PAM-1.0
# 模块类型       control控制位     模块名称              可选项(对模块名称的描述,可能有1、2、3项等,可有可无)
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid
auth            substack        system-auth
auth            include         postlogin
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         include         postlogin
session         optional        pam_xauth.so



没总结完,视频2小时处

1.5.2 PAM认证原理

口令模块(常见的功能)

用户名,密码

1.5.3 limit √

作用

在用户级别实现对用户可使用的资源的限制

修改限制的方式

ullimit

1)ulimit是linux shell的内置命令,用于对shell进程及其子进程进行资源限制

2)每个进程都有自己的limits值,使用ulimit进行修改,立即生效

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

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

-a 显示当前所有的资源限制.
-H 设置硬件资源限制.
-S 设置软件资源限制.
-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 是一个特殊值,用于表示不限制

nginx调优,调整最大文件数量,实现ngixn的高并发

vim /etc/security/limits.conf
------------------------------------------------
*                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

reboot   # 重启生效

[root@localhost ~]# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7168
max locked memory       (kbytes, -l) 32000
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1000000
# open files  变成了100 0000,实现了nginx的高并发
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 8192000
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1000000
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
[root@localhost ~]# 

nginx调优后,模拟nginx高并发

192.168.32.11(相当于服务器)
---------------------------------------------
1. 开启nginx服务
2. 设置open files的大小(/etc/security/limits.conf)




192.168.32.12(相当于客户机)
[root@localhost ~]# yum install -y httpd-tools.x86_64 
# ab这个命令在httpd-tools.x86_64 里面

ab -c 1025 -n 10000 http://192.168.32.11/bigfile

-c  一次发出的请求数
-n  要执行的请求数

这是内核调优

一阶段最喜欢用的

安全架构

系统调优

3. 面试题:nginx调优

nginx要调优

系统也要调优

面试题:给你100台裸机,你该怎么做?

① 做raid备份

② 装系统

③ 系统调优

④ 装软件

1.6 sudo

super user do

sudo特性

  • sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
  • sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
  • sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票
  • sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440

缺点

可以切换超级管理员,会拥有最高权限

sudo格式

sudo的配置文件(可以有两种方式打开,如下)
-------------------------------------------------
vim /etc/sudoers    
或者
visudo     # 官方推荐使用这个,因为有语法检测功能
visudo -c  # 解析/etc/sudoers这个文件格式是否正确




user        host=(runas)                     command
用户      登录的主机=代表的用户身份               命令、文件夹
user          ALL=(ALL)                        ALL
------------------------------------------------------------
user      运行命令者的身份
host      通过哪些主机登录,可以是IP地址(多个)、域名;不写,默认是all
runas     哪个用户的身份登录,不写,默认是超级管理员
command   该用户可以使用哪些命令或文件夹

user和runas
  username(用户名)
  uid
  group_name(组名)
  gid
  

host
	ip地址或主机名(域名)
	可以写多个

command
	command name   命令名字
	directory      命令的文件夹
	folder         文件夹
	sudoedit	   可以编辑sudoers这个文件,变相的你就变成了管理员
	command_Alias  命令的别名
	
command中可以使用通配符
	*  任意字符,任意长度
    ! 不,取反,不使用这个命令
    ? 单个任意字符
    

sudo用法

使用sudo给普通用户赋权

[lisi@localhost ~]$ sudo mount /dev/sr0 /mnt

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] lisi 的密码:
lisi 不在 sudoers 文件中。此事将被报告。


vim /etc/sudoers
--------------------------------------------------------
lisi   ALL=(ALL)    /usr/bin/mount /dev/sr0 /mnt/
-------------------------------------------------------
visudo -c   # 解析/etc/sudoers这个文件格式是否正确


[lisi@localhost ~]$ sudo mount /dev/sr0 /mnt/
# /etc/sudoers配置文件中写的是什么内容,外面输入命令时必须写一样的内容,否则不运行,系统认为没有这个命令
对不起,用户 lisi 无权以 root 的身份在 localhost.localdomain 上执行 /bin/mount /dev/sr0 /mnt/。
[lisi@localhost ~]$ 

[lisi@localhost ~]$ sudo mount /dev/sr0 /mnt
[sudo] lisi 的密码:
mount: /dev/sr0 写保护,将以只读方式挂载
[lisi@localhost ~]$ 

sudo的command中可以使用通配符

lisi   ALL=()      /usr/bin/cat /var/log/vm* 
# vm*   可以使用通配符


[lisi@localhost log]$ sudo /usr/bin/cat /var/log/vmware-vmusr.log 


[lisi@localhost test]$ sudo /usr/bin/cat /var/log/vmware-vmusr.log /opt/test/t1
# 因为vm*,所以该用户可以查看多个文件,这是个bug

sudo的command中如果有矛盾,靠后的命令生效

lisi   ALL=()      !/usr/bin/cat,/usr/bin/cat

1.7 grub加密

1.8 暴力破解密码

系统弱口令检测

1.9 nmap扫描

总结

1.做了哪些安全加固

2.pam

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

3.面试题

内核调优

​ 打开文件数量

​ 打开转发功能

​ 系统调优

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

​ 将国外yum源改为清华,阿里等国内源

​ 时间同步

​ 内核调优

​ 日志分割(将大的日志进行分割成小日志)

4.sudo

root localhost|ALL = (ALL)NOPASSWD:命令序列

用户 主机名 以谁的身份运行 免密 命令

注意事项:在改配置文件前先备份

hostname 查看主机名

cat /etc/redhat-release 查看系统版本

uname -r 内核版本

升级内核版本 yum、编译

ifconfig 查看网卡信息

标签:lisi,系统安全,命令,用户,etc,root,localhost
From: https://www.cnblogs.com/wuyao-bk/p/17828128.html

相关文章

  • 盘点U-Mail邮件系统安全设计
    在当今社会,电子邮件已经成企业沟通和信息传递重要的手段之一,是企业办公中不可或缺的一部分。但是由于企业邮件服务器端口对外开放、企业邮件安全管理能力不足、邮件内容敏感性高等特点,电子邮件也成为了网络攻击者进行网络钓鱼、恶意软件传播和勒索攻击的主要对象。根据麦赛邮件安全......
  • 系统安全与应用
    账号安全基本措施账号管理:将用户设置无法登录锁定账号锁定配置文件1、将用户设置无法登录 2、锁定账号passwd-l 用户名:锁定用户密码 #锁定用户chen08的密码 #发现从lisi用户切换到chen08用户失败 passwd-u用户名:解锁用户密码 #将用户chen08解除锁定......
  • 系统安全及应用
    系统账号基本措施将非登录用户的shell设为/sbin/nologin锁定长期不适用的账号(passwd-l/usermod-L)删除无用的账号锁定账号文件passwd,shadowchattrchattr+iaa#给aa文件一个不可删除状态cahtte-iaa#将aa文件的不可删除状态撤销掉 #给了aa的i权限无法删除 #把a......
  • 基于边缘智能网关的储能系统安全监测管理方案
    “储能系统+充电”是配套新能源汽车产业发展的重要应用之一。得益于电池技术的发展,新能源汽车正逐步迈入快充时代,由于在使用快速充电桩时,可能导致用电峰值负荷超过电网的承载能力,对于电网的稳定性和持续性会有较大影响,因此就需要搭配边缘侧的储能系统,通过灵活调节适配功率峰值,从而......
  • 13 | Linux系统安全:多人共用服务器,如何防止别人干“坏事”?
    Linux中的安全模型内核层防护:确保使用官方的镜像并保持更新用户层防护:确保正确配置权限 黄金法则应用Linux中的认证机制安全问题:认证是linux内核提供的,在用户层只需要关注弱密码导致的身份信息泄露防护:在/etc/shadow中,制定适当的密码策略;使用已知的弱密码库来检测linux中......
  • 高层次人才一站式服务平台系统安全策略
    高层次人才一站式服务平台的系统安全是确保平台正常运行、用户数据安全和保护高层次人才信息的重要方面。为了实现系统的安全性,以下是一些可以采取的安全策略:1.身份验证与访问控制确保平台只有经过身份验证的合法用户才能访问,并且根据用户角色设置不同的访问权限。采用强密码策略,......
  • Wasm软件生态系统安全分析
     演讲嘉宾 | 王浩宇回顾整理 | 廖   涛排版校对 | 李萍萍嘉宾简介王浩宇,华中科技大学教授,博士生导师,华中科技大学OpenHarmony技术俱乐部主任。研究关注于新兴软件系统中的安全、隐私和可靠性问题,近五年发表CCF A类和CSRankings顶会论文近70篇,在软件安全和系统......
  • OS(二十五):系统安全性
    数据加密是保障网络通信安全方面所的主要技术。1、数据加密的基本概念数据加密技术是对系统中所有存储和传输的数据进行加密,使之成为密文。数据加密技术包括数据加密、数据解密、数字签名、签名识别以及数字证明。1.1、数据加密模型一个数据加密模型由四部分构成......
  • 软件评测报告-提供系统安全检测服务和出具报告
      本报告旨在评估软件系统的安全性,提供系统安全检测服务,并出具相应的报告。本报告基于对软件系统的深入了解和专业的安全检测工具进行编写,以确保全面、客观、准确的评测结果。简介被评测的软件系统是一款用于管理企业资源的软件,旨在提供员工管理、财务管理、客户关系管......
  • 探究eFuse:硬件保障与系统安全的核心
    探究eFuse:硬件保障与系统安全的核心图1:编程熔断的eFuseeFUSE的全名是"ElectricallyProgrammableRead-OnlyMemoryFuse",它是一种电可编程只读存储器。eFUSE是一种用于存储固定信息的存储器,它的主要特点是一旦编程后就无法再进行擦除或修改,类似于传统的只读存储器(ROM)的功......