精华内容
下载资源
问答
  • [安全架构]攻防之间_账号安全立体防护新探索 数据安全 安全体系 信息安全研究 安全众测 安全开发
  • 账号安全建设一期.ppt

    2021-07-21 10:50:09
    企业员工账号安全建设一期
  • [安全方案与集成]面向账号安全的黑产攻防体系建设 安全运营 零信任 安全众测 零信任 风险评估
  • 账号安全是业务系统第一道防火墙,围绕账号安全的攻防之间诞生了验证码、双因素认证、生物识别等一系列技术。但面对黑产群体——高投入高度专业定制化对抗的神器利器层出不穷,导致账号安全防护体系整体形势不容乐观...
  • 海颐特权账号安全管理系统(HAIYI-PAS)让企业用户可以安全地、自动化地管理企业特权账号,包括各种操作系统平台、数据库系统、各种网络设备的管理密码以及业务系统中间件密码,建立系统化自动化的集中安全管理模式...
  • LINUX帐号安全基础

    2010-12-19 17:52:44
    LINUX帐号安全基础,包括:选择安全的口令,口令机制,帐号管理.......
  • Linux账号安全的简单设置.pdf
  • 如何保护账号安全?

    2013-10-07 14:09:17
    账号安全一直都是困扰众多网站主的一个难题,而现在号令手机令牌提供免费开放平台,免费提供API接口接入,让您免费体验银行级的服务,具体详情请访问www.haoling.net查看
  • 海颐特权账号安全管理系统(HAIYI-PAS),可以灵活适配您的复杂环境,全面覆盖各种特权凭证。无论是本地机房、云,还是工控网络,系统都能提供账号安全管控服务。
  • 第2章 操作系统安全 实训2-1Windows的账号安全性学时 本次课要点 学习目标 重点 难点 实训目的 掌握Windows账号与密码数据库的特点 理解Windows系统的特性 掌握强化Windows 2003密码安全性的方法 通过模拟攻击实训...
  • 京东吴迪-面向账号安全的黑产攻防体系建设.pdf
  • 系统安全与应用(一)一、账号安全控制1、系统账号清理2、密码安全控制①、设置密码有效期②、要求用户下次登陆时更改密码3、命令历史...一、账号安全控制 1、系统账号清理 将非登录用户的shell设为不可登陆 us


    一、账号安全控制

    1、系统账号清理

    将非登录用户的shell设为不可登陆usermod -s /sbin/nologin 用户名禁止用户登录
    usermod -s /bin/false 用户名禁止用户登录
    锁定长期不使用的账号usermod -L 用户名锁定用户账户
    passwd -l 用户名锁定用户账户
    删除无用的账号userdel [-r] 用户名
    锁定账号文件chattr +i /etc/passwd /etc/shadow锁定账号文件
    lsattr /etc/passwd /etc/shadow查看账号文件
    chattr -i /etc/passwd /etc/shadow解锁账号文件

    在这里插入图片描述

    2、密码安全控制

    ①、设置密码有效期

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    ②、要求用户下次登陆时更改密码

    在这里插入图片描述
    在这里插入图片描述

    3、命令历史限制

    • 减少记录的命令条数
    • 登录时自动清空命令历史

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    4、终端自动注销

    在这里插入图片描述

    5、切换用户:su

    ①、用途及用法

    在这里插入图片描述

    ②、密码验证

    • root→任意用户,不验证密码
    • 普通用户→其他用户,验证目标用户的密码
      在这里插入图片描述

    ③、限制使用su命令切换用户

    • 将允许使用su命令的用户加入wheel组
    • 启用pam_wheel认证模块

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二、Linux中的PAM安全认证

    1、su命令的安全隐患

    • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
    • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

    2、PAM可插拔式认证模块

    • 是一种高效而且灵活便利的用户级别的认证方式
    • 也是当前Linux服务器普遍使用的认证方式

    3、PAM认证原理

    • 一般遵循的规律
      • Service(服务)→ PAM(配置文件)→ pam_*.so
    • 首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于 /etc/pam.d 下),最后调用认证文件(位于 /lib64/security 下)进行安全认证
    • 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到 PAM 模块进行认证
    • 不同的应用程序所对应的 PAM 模块是不同的
    • 如果想要查看某个程序是否支持 PAM 认证,可以使用 ls 命令,进行查看 /etc/pam.d/

    4、每一列的名称解释

    在这里插入图片描述

    第一列代表PAM认证模块类型auth对用户身份进行识别,如提示输入密码,判断是否为root
    account对账号各项属性进行检查,如是否允许登录系统,账号是否已经过期,是否到达最大用户数等
    password使用用户信息来更新数据,如修改用户密码
    session定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统
    第二列代表PAM控制标记required表示需要返回一个成功值,如果返回失败,不会立即将失败结果返回,而是继续进行同类型的下一步验证,所有此类型的模块都执行完成后,再返回失败
    requisite与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败
    sufficient如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值
    optional不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于session类型)
    include表示在验证过程中调用其他的 PAM 配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth (主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项
    第三列代表PAM模块默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径
    同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数
    第四列代表PAM模块的参数根据所使用的模块进行添加
    传递给模块的参数,参数可以有多个,之间用空格分隔开

    5、控制标记的补充说明

    • required
      表示该行以及所涉及模块的成功是用户通过鉴别的【必要条件】。换句话说,只有当对应于应用程序的所有带required标记的模块全部成功后,该程序才能通过鉴别。同时,如果任何带required标记的模块出现了错误,PAM并不立刻将错误消息返回给应用程序,而是在所有此类型模块都调用完毕后才将错误消息返回调用他的程序。
      反正说白了,就是必须将所有的此类型模块都执行一次,其中任何一个模块验证出错,验证都会继续进行,并在执行完成之后才返回错误信息。这样做的目的就是不让用户知道自己被哪个模块拒绝,通过一种隐蔽的方式来保护系统服务。就像设置防火墙规则的时候将拒绝类的规则都设置为drop样,以致于用户在访问网络不成功的时候无法准确判断到底是被拒绝还是目标网络不可达。
    • requisite
      与required相仿,只有带此标记的模块返回成功后,用户才能通过鉴别。不同之处在于其一旦失败就不再执行堆中后面的其他模块,并且鉴别过程到此结束,同时也公立即返回错误信息。与上面的required相比,似乎要显得更光明正大一些。
    • sufficient
      表示该行以及所涉及模块验证成功是用户通过鉴别的【充分条件】。也就是说只要标记为sufficient的模块一旦验证成功,那么PAM便立即向应用程序返回成功结果而不必尝试任何其他模块。即便后面的层叠模块使用了requisite或者required控制标志也是一样。当标记为sufficient的模块失败时,sufficient模块会当做optional对待。因此拥有sufficient标志位的配置项在执行验证出错的时候并不公导致整个验证失败,但执行验证成功之时则大门敞开。所以该控制位的使用务必慎重。
    • optional
      他表示即便该行所涉及的模块验证失败用户仍能通过认证。在PAM体系中,带有该标记的模块失败后将继续处理下一模块。也就是说即使本行指定的模块验证失败,也允许用户享受应用程序提供的服务。使用该标志,PAM框架会忽略这个模块产生的验证错误,继续顺序执行下一个层叠模块。

    6、PAM安全认证流程

    在这里插入图片描述

    • 1、required验证失败时仍然继续,但返回Fail
    • 2、requisite验证失败则立即结束整个验证过程,返回Fail
    • 3、sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
    • 4、optional不用于验证,只显示信息(通常用于session类型)
    展开全文
  • 一种基于电力系统业务上云访问账号安全模型.pdf
  • 账号安全和登录控制一、账号安全控制1.1 账号安全的基本措施1.1.1 将非登录用户的Shell设为nologin1.1.2 锁定长期不使用的账号1.1.3 删除无用的账号1.1.4 锁定账号文件1.1.5 密码安全控制1.1.6 命令历史记录限制...

    在这里插入图片描述

    一、账号安全控制

    1.1 账号安全的基本措施

    1.1.1 将非登录用户的Shell设为nologin

    [root@hostname ~]# usermod -s nologin 用户名						#格式
    [root@cheng0307 ~]# usermod -s nologin zhangsan					#实际操作
    

    在这里插入图片描述

    1.1.2 锁定长期不使用的账号

    [root@cheng0307 ~]# usermod -L lisi			#锁定账户方式一
    [root@cheng0307 ~]# usermod -U lisi			#解锁账户方式一
    [root@cheng0307 ~]# passwd -l lisi			#锁定账户方式二
    [root@cheng0307 ~]# passwd -u lisi			#解锁账户方式二
    

    在这里插入图片描述

    1.1.3 删除无用的账号

    [root@hostname ~]# userdel 用户名			#格式
    [root@cheng0307 ~]# userdel lisi			#实际操作
    

    在这里插入图片描述

    1.1.4 锁定账号文件

    [root@cheng0307 ~]# lsattr /etc/passwd /etc/shadow				#查看文件的状态
    [root@cheng0307 ~]# chattr +i /etc/passwd /etc/shadow			#锁定文件
    [root@cheng0307 ~]# chattr -i /etc/passwd /etc/shadow			#解锁文件
    

    在这里插入图片描述

    1.1.5 密码安全控制

    • 设置密码有效期
    • 要求用户下次登录时修改密码

    1.格式:

    1.适用于新建用户
    [root@cheng0307 ~]# vim /etc/login.defs 			#修改配置文件
    -----此处省略部分注释及配置-------
    PASS_MAX_DAYS   30									#修改密码有效期为30
    
    2.适用于已有用户
    [root@cheng0307 ~]# chage -M 30 zhangsan			#修改密码有效期
    
    3.强制在下次登录成功时修改密码(/etc/shadow第三个字段被修改为0
    [root@cheng0307 ~]# chage -d 0 zhangsan				#设置下次登录强制修改密码
    

    2.实例1:修改密码配置文件,要求新创建的用户密码有效期都为30天
    在这里插入图片描述
    在这里插入图片描述
    3.实例2:将现有用户zhangsan的密码有效期也修改为30天。
    在这里插入图片描述

    4.实例3:将现有用户zhangsan设置为强制下次登录时需要修改密码。
    在这里插入图片描述
    登录时输入密码后,需要设置新的密码才可以。
    在这里插入图片描述

    1.1.6 命令历史记录限制

    • 减少记录的命令条数;
    • 登录时自动清空命令历史 ;
    • 系统默认保存1000条历史命令记录;
    • history -c 命令只可以临时清除记录,重启后记录还在。

    1.格式:

    1.对历史命令的数量进行限制
    [root@cheng0307 ~]# vim /etc/profile		#修改配置文件
    export HISTSIZE=200					#修改命令历史记录数量最大为200,前面添加export为全局有效
    source /etc/profile 				#刷新配置文件,立即生效
    
    2.设置登录时自动清空命令历史
    vim .bashrc 					#修改/etc/profile配置文件(每次切换bash都执行)
    
    vim /etc/profile				#修改/etc/profile配置文件(执行一次)
    echo " " > ~/.bash_history		#
    
    

    2.实例1:修改历史命令记录为200条,并设置全局有效,并验证
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    3.实例2:设置登录时自动清空命令历史
    在这里插入图片描述
    在这里插入图片描述

    1.1.7 终端自动注销

    • 闲置 [ n ] 秒后自动注销。(n为数字)

    1.格式:

    [root@cheng0307 ~]# vim /etc/profile			#编辑/etc/profile文件
    export TMOUT=100								#设置全局自动注销时间
    

    2.案例1:设置100s秒终端自动注销
    在这里插入图片描述

    1.1.8 使用su命令切换用户

    1.用途和用法

    • 用途:Substitute User,切换用户
    • 格式:su - 目标用户(横杠“ - ”代表切换到目标用户的家目录)

    2.密码验证

    • root - - - >任意用户,不验证密码
    • 普通用户- - - >其他用户,验证目标用户的密码
    • 带 “ - ” 表示将使用目标用户的登录Shell环境

    3.格式:

    1.切换用户
    [root@cheng0307 ~]# su - zhangsan			#root切换普通用户
    [zhangsan@cheng0307 ~]$ su - root			#普通用户切换其他用户
    
    2.查看当前登录的用户
    [root@cheng0307 ~]# whoami					#显示当前登录的用户
    

    4.案例:测试用户之间切换
    在这里插入图片描述

    1.1.9 限制使用su命令的用户

    • 将允许使用su命令的用户加入wheel组中;
    • 启用pam_wheel 认证模块

    1.格式:

    [root@cheng0307 ~]# vim /etc/pam.d/su			#编辑/etc/pam.d/su配置文件
    [root@cheng0307 ~]# gpasswd -a zhangsan wheel	#将希望可以使用su命令的用户加入到wheel组中
    auth  required  pam_wheel.so use_uid			#将此行的注释取消即可
    

    2.实例:有zhangsan和lisi两个用户,要求设置zhangsan可以使用su命令切换用户,lisi用户不允许使用。
    在这里插入图片描述
    在这里插入图片描述
    3. 实例2:查看su操作记录
    在这里插入图片描述

    1.1.10 Linux中的PAM安全认证

    1.su命令的安全隐患

    • 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;
    • 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。

    2.PAM(Pluggable Authentication Modules)可插拔式认证模块

    • 是一种高效而且灵活便利的用户级别的认证方式;
    • 也是当前Linux服务器普遍使用的认证方式。

    3.PAM认证原理:

    • PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,
    • PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于/lib64/security/下)进行安全认证。
    • 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
    • 如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/
    • PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用.

    在这里插入图片描述

    1.1.11 使用sudo机制提升权限

    1.sudo命令的用途及用法

    • 用途 :以其他用户身份(如root执行授权的命令)
    • 用法:sudo 权限命令

    2.配置sudo授权
    - visudo或者vi /etc/sudoers(此文件默认权限为440,保存时必须 wq!强制执行操作)
    - 记录格式:用户 主机名=命令程序列表
    - 可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
    - 权限生效后,输入密码后5分钟可以不用重新输入密码。

    3.语法格式:

    用户 主机名=命令程序列表
    用户 主机名=(用户)命令程序列表
    zhangsan ALL=(root) /sbin/ifconfig				#实际操作
    
    • 用户: 直接授权指定的用户名,或采用“&组名"的形式(授权一个组的所有用户)。
    • 主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机。
    • (用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令。
      命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“。"进行分隔。ALL则代表系统中的所有命令

    4.启用sudo操作日志

    • 需启用Defaults logfile配置
    • 默认日志文件:/var/log/sudo
    • 操作:在/etc/sudoers末尾添加Defaults logfile="/var/log/sudo"

    5.查询授权的sudo操作

    • sudo -l

    6.实例1:查看当前sudo配置文件。
    在这里插入图片描述

    实例2:配置相关文件,使得zhangsan可以通过sudo命令使用ifconfig。

    1. 切换到zhangsan用户进行测试。
      在这里插入图片描述

    2. 末尾插入下列配置,然后强制保存并退出。
      在这里插入图片描述

    3. 进行测试。
      在这里插入图片描述

    实例3:设置wheel组进行sudo操作时无需密码验证,并将lisi用户添加到wheel组中测试。
    在这里插入图片描述
    这里是sudo配置文件 /etc/sudoers 内的具体修改步骤:
    在这里插入图片描述
    实例4:使用关键字来进行设置别名,批量控制用户进行sudo操作时无法使用重启(reboot)、关机(poweroff)、切换init和无法删除。
    第一步:vim /etc/sudoers 或者visudo 修改配置文件(这里我使用的是第一种)
    在这里插入图片描述
    第二步:添加配置
    在这里插入图片描述
    第三步:使用普通用户进行测试
    在这里插入图片描述
    第四步:查看zhangsan和lisi的可使用权限。
    在这里插入图片描述
    实例5:修改实例4,使zhangsan和lisi用户可以无需密码使用sudo可以使用的权限为/sbin下所有。
    在这里插入图片描述

    实例6: 在/car/log下创建sudo日志文件,用来存储用户使用的sudo命令记录。
    在这里插入图片描述

    二、系统引导和登录控制

    2.1 开关机安全控制

    1.调整BIOS引导设置

    • 将第一引导设备设为当前系统所在硬盘;
    • 禁止从其他设备(光盘、 U盘、网络)引导系统;
    • 将安全级别设为setup,并设置管理员密码。

    2.GRUB限制

    • 使用grub2-mkpasswd-pbkdf2生成密钥;
    • 修改/etc/grub.d/00_ header文件中, 添加密码记录;
    • 生成新的grub.cfg配置文件。

    3.限制更改GRUB引导参数
    通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

    4.实例:为GRUB菜单设置密码
    第一步:我们先来看一下未设置之前的状态
    在这里插入图片描述
    第二步:使用grub2-mkpasswd-pbkdf2生成密钥并复制,然后备份两个配置文件。
    在这里插入图片描述
    第三步:修改/etc/grub.d/00_ header文件中, 添加密码记录,并存并退出
    在这里插入图片描述
    第四步:生成新的grub.cfg文件,然后重启系统
    在这里插入图片描述
    第五步:验证结果
    在这里插入图片描述

    2.2 限制root只在安全终端登录

    • 安全终端配置:/etc/securetty
    • tty1~ 6是文本型控制台,tty7 是X Window图形显示管理器。可以通过CtrI+Alt+F1 (F1-F7键) 切换到对应的登录控制台。

    实例:禁止root在tty3终端登录
    第一步:更改相关配置文件
    在这里插入图片描述
    第二步:切换至tty3进行测试
    在这里插入图片描述
    第三步:切换至其他终端进行测试
    在这里插入图片描述

    2.3 禁止普通用户登录

    • 建立/etc/nologin文件
    • 删除nologin文件或者重启后即恢复正常

    1.格式

    [root@cheng0307 ~]# touch /etc/nologin			#禁止普通用户登录
    [root@cheng0307 ~]# rm -rf /etc/nologin 		#删除后即可恢复
    

    2.禁止普通用户登录系统
    第一步:创建/etc/nologin文件
    在这里插入图片描述
    第二步:使用普通用户进行测试
    在这里插入图片描述
    第三步:使用root进行测试
    在这里插入图片描述

    2.4 系统弱口令检测(Joth the Ripper,检测JR)

    1.介绍:

    • 一款密码分析工具,支持字典式的暴力破解;
    • 通过对shadow文件的口令分析,可以检测密码强度;
    • 官方网站:http://www.openwall.com/john

    2.安装JR工具

    • 安装方法 make clean 系统类型
    • 主程序文件为john

    3.检测弱口令账户

    • 获得Linux/Unix服务器的shadow文件;
    • 执行john程序,将shadow文件作为参数

    4.密码文件的暴力破解

    • 准备好密码字典文件,默认为psaaword.lst
    • 执行john程序,结合--wordlist=字典文件(有更强大的字典可以使用).

    第一步:将john-1.8.0.tar.gz安装包拖入Linux系统内。
    在这里插入图片描述
    第二步:移动至/opt 然后解压

    在这里插入图片描述
    第三步:编译安装指定程序
    在这里插入图片描述
    第四步:添加三个用户并设置简单密码,用于下面测试破解
    在这里插入图片描述
    第五步:将/etc/shadow 文件复制到/opt下进行暴力破解
    在这里插入图片描述
    第六步:可以使用--show进行查看破解处的密码
    在这里插入图片描述

    2.5 网络端口扫描

    1.NMAP

    • 一款强大的网络扫描、安全 检测工具
    • 官方网站:http://nmap.org/
    • CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm

    2.格式:

    nmap [扫描类型]  [选项]  <扫描目标>
    netstat natp											#查看正在运行的使用TCP协议的网络状态信息
    [root@cheng0307 ~]# netstat -natp | grep httpd			#实际操作(httpd换成80也可以)
    
    netstat -naup											#查看正在运行的使用UDP协议的网络状态信息
    

    3.常见的选项

    常见的选项选项的作用
    -p指定扫描的端口。
    -n禁用反向DNS 解析(以加快扫描速度)
    -sSTCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
    -sTTCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
    -sFTCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
    -sUUDP扫描,探测目标主机提供哪些UDP 服务,UDP扫描的速度会比较慢。
    -sPICMP 扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
    -P0跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。

    4.natstat命令常用选项:

    常用选项作用
    -a显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
    -n以数字的形式显示相关的主机地址、端1等信息。
    -t查看TCP相关的信息。
    -u显示UDP协议相关的信息。
    -p显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)
    -r显示路由表信息。
    -l显示处于监听状态的网络连接及端口信息。

    5.实例1:开启本机的httpd,然后进行扫描
    第一步:查询并安装nmap和httpd程序
    在这里插入图片描述
    在这里插入图片描述
    第二步:开启httpd服务,然后对httpd进行扫描查看网络状态
    在这里插入图片描述
    实例2:查看本机开放的TCP和UDP端口
    在这里插入图片描述
    实例3:查看192.168.80.0/24网段内有多少存活主机。
    第一步:开启另一台虚拟机进行查看ip地址测试
    在这里插入图片描述
    第二步:返回原虚拟机进行扫描测试
    在这里插入图片描述

    实例4:查看192.168.80.0/24网段内有哪些主机提供HTTP服务
    在这里插入图片描述

    展开全文
  • YY四无账号安全中心登录绑定手机修改密码源码
  • 本文属于SQL Server安全专题...本篇将介绍关于服务帐号的一些安全方面的内容。 类型:  截至到SQL 2016,SQL Server支持下面类型的帐号作为服务帐号: Local User:创建在本机的Windows帐号。Domai

    本文属于SQL Server安全专题系列


     服务帐号本质是一个操作系统帐号,每个SQL Server服务都需要配置一个服务帐号,并使用这个帐号来运行服务。本篇将介绍关于服务帐号的一些安全方面的内容。


    类型:


     截至到SQL 2016,SQL Server支持下面类型的帐号作为服务帐号:
    • Local User:创建在本机的Windows帐号。
    • Domain User:域用户。
    • Built-in accounts:包括NETWORK SERVICE、LOCAL SERVICE和LOCAL SYSTEM这三类在Windows中总是可用的帐号
    • Managed Service Accounts(MSAs):
    • Virtual Accounts:从Windows 2008R2和Win7开始引入,在本地服务器创建,但是可以使用计算机帐号的证书访问域资源。

    Virtual Accounts:
       过去,管理员通常在本地服务帐号(LOCAL SERVICE)的上下文中运行服务 (如 SQL Server、Exchange 或 IIS) 的环境中的服务之间的隔离。虚拟帐号的出现就是为了进行一种“隔离”,以便减少特权帐号的过度使用,基于这种隔离,虚拟帐号还可以用于“托管(Managed)”。意味着管理员不需要注册SPN(服务主体名)和不需要管理密码。而由Windows环境自动管理。
     默认情况下,虚拟帐号是本地的,不能用于多服务器,意味着这类帐号不适合用于AlwaysOn或者Cluster。如果在Win 7或者Windows 2008 R2及以上版本中独立安装SQL Server,那么下面的服务默认使用虚拟帐号:
    • 数据库引擎
    • SQL Agent
    • SSAS
    • SSIS
    • SSRS
    • SQL Server Distributed Relay Controller
    • SQL Server Distributed Relay Client
    • Full-Text Daemon Launcher Service(FD Launcher)
     在集群环境下的SQL 实例,SSIS、SSRS和FD  Launcher还是使用虚拟账号,因为这些对集群不敏感并且常规是安装在每个单独节点中。

    Managed Service Accounts:

     简称MSAs,也叫托管帐号。类似虚拟帐号,不需要手动配置SPN或者管理密码。两者的区别在于MSAs是域级别的帐号而虚拟帐号是本地帐号。由于MSAs是基于域的,所以可以用于必须进行网络层资源。但是即使这样,MSA依旧仅指定给网络中的单台机器。意味着MSAs依旧不能用于集群。 
     为了减缓这种限制,从Windows 2012 R2开始引入了gMSAs(组托管帐号),跟MSAs一样,但是可以运行在多台服务器,用于解决集群限制。
     如果计划使用MSA或者gMSA,那么帐号必须在安装SQL Server之前先在域控制器中创建好。

    下面脚本可以用于查询SQL Server服务帐号

    --查询SQL Server服务帐号(SQL 2008 R2 SP1)
    SELECT  DSS.servicename,
            DSS.startup_type_desc,
            DSS.status_desc,
            DSS.last_startup_time,
            DSS.service_account,
            DSS.is_clustered,
            DSS.cluster_nodename,
            DSS.filename,
            DSS.startup_type,
            DSS.status,
            DSS.process_id
    FROM    sys.dm_server_services AS DSS;
    
    当需要 SQL Server 计算机外部的资源时, Microsoft 建议使用配置了必需的最小特权的托管服务帐户 (MSA)。

    对于SQL Server配置管理器中的帐号选择,可能名字会不一样,这里列出了对应的名字:
    Local Service:NT AUTHORITY\LOCAL SERVICE,注意这是共享服务的帐号,SQL 引擎及SQL 代理不支持它作为启动帐号。
    Network Service:NT AUTHORITY\NETWORK SERVICE
    Local System:NT AUTHORITY\SYSTEM
    Admin Group:BUILTIN\Administrators



    展开全文
  • 账号安全控制与sudo授权命令(详细)

    千次阅读 多人点赞 2020-12-01 23:59:57
    文章目录一、账号安全控制1、系统账号清理2、密码安全控制使用su命令切换用户linux中的PAM安全认证PAM 认证原理: 一、账号安全控制 1、系统账号清理 ●将非登陆用户的Shell设为/sbin/nologin或者/bin/falsh usermod...

    一、账号安全控制

    1、系统账号清理

    ●将非登陆用户的Shell设为/sbin/nologin或者/bin/falsh

    usermod -s /sbin/nologin 用户名
    

    ●锁定长期不使用的账号

    usermod -L 用户名           锁定用户账户  
    passwd -l 用户名            锁定用户密码
    passwd -S 用户名            查看用户状态
    

    ●删除无用的账号

    userdel -r 用户名           删除用户及其宿主目录   
    

    ●清空一个账号密码

    passwd -d 用户名            清空账户密码
    

    ●锁定账号文件passwd、shadow

    chattr +i /etc/passwd /etc/shadow      锁定文件
    lsattr /etc/passwd /etc/shadow         查看文件状态
    chattr -i /etc/passwd /etc/shadow      解锁文件
    

    在这里插入图片描述

    得出结论,由于/etc/passwd和/etc/shadow都存放的用户账号信息,所以两个缺一不可,少一个都无法创建用户与更改密码

    2、密码安全控制

    chage -M 日期 用户               设置用户密码有效期
    chage -E xxxx-xx-xx             设置过期日期
    

    在这里插入图片描述
    设置密码有效期
    ●要求用户下次登陆时修改密码

    vi /etc/login.defs     修改密码配置文件适用于新建用户
    ……
    PASS_MAX_DAYS 30
    [root@localhost ~]# chage -M 30 用户
    [root@localhost ~]# cat /etc/shadow | grep 用户
    

    在这里插入图片描述
    强制下次登陆更换密码

    chage -d 0 用户                    强制在下次登陆时更改密码               
    cat /etc/shadow | grep 用户        shadow文件中的第三个字段被修改为0
    

    3、命令历史限制

    ●减少记录的命令条数
    /etc/profile这个文件是系统全局变量配置文件,可以通过重启系统或者执行source /etc/profile命令使文件被读取重载。

    [root@localhost ~]# vi /etc/profile              #编辑全局变量配置文件    
    export HISTSIZE=200                              #输入export HISTZIZE=200
    [root@localhost ~]# source /etc/profile          #相当于使/etc/profile内的命令重载一遍
    

    在这里插入图片描述
    ●登陆时自动清空历史命令
    ~/.bashrc文件中的命令会在每次打开新的bash shell时(也包括登录系统)被执行

    echo " " > ~/.bash_history       
    

    在这里插入图片描述

    4、终端自动注销

    闲置600秒后自动注销,与上方减少历史条数类似,不再演示

    vi /etc/profile        #编辑全局变量配置文件
    export TMOUT=600       #输出timeout=600
    

    二、使用su命令切换用户

    用途及用法
    用途:Substitute User,切换用户
    格式 su -目标用户

    ●密码验证
    ①root→任意用户,不验证密码
    ②普通用户→其他用户,验证目标用户的密码

    su - root     带-选项表示将使用目标用户的登陆Shell环境
    

    1、限制用户使用su命令

    ①将允许使用su命令的用户加入wheel组
    ②启用pam_wheel认证模块

    ●su命令具有安全隐患
    su命令使得每个用户都具有反复尝试其他用户的登陆密码,若是root用户,则风险更大。
    所以需要加强su命令的使用控制,可以借助PAM认证模块,仅允许极个别指定用户可使用su命令进行切换。

    [root@localhost ~]# gpasswd -a admin wheel              将用户“admin”加入到whell组中
    

    在/etc/pam.d/su文件里设置禁止用户使用su命令

    vim /etc/pam.d/su

    auth sufficient pam_rootok.so
    ............
    #auth required pam_wheel.so use_uid
    ...........
    

    在这里插入图片描述

    【1】以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。

    【2】两行都注释也是允许所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码
    (pam_rootok.so模块的主要作用是使uid为0的用户,即 root用户能够直接通过认证而不用输入密码)

    3】如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令。

    【4】如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。

    例:
    1、首先,我们创建两个新用户并给与他们密码让他们可以使用,然后我们发现,root用户可以随意切换至任何用户,而其他用户切换至root用户则需要输入密码,正确即可切换,将admin1用户加入wheel组中。
    在这里插入图片描述
    2、我们进入编辑/etc/pam.d/su文件中找到下图匹配行,将auth前的注释#号删除即可启用该字段
    在这里插入图片描述
    3、这下我们再来试一下用户与root用户之间来回切换,发现,加入wheel组中的admin1用户输入正确密码后依旧可以切换至root用户,而admin2用户即使密码输对,也无法切换,显示su:拒绝权限。
    在这里插入图片描述
    说明启用/etc/pam.d/su文件中那一行后,就会仅允许root和wheel组中的成员使用su命令

    三、linux中的PAM安全认证

    Linux-PAM是linux可插拔认证模块,是一套可定制、可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式。

    ●PAM使用/etc/pam.d/下的配置文件,来管理对程序的认证方式。应用程序调用相应的PAM配置文件,从而调用本地的认证模块,模块放置在/lib64/security下,以加载动态库的形式进行认证。比如使用su命令时,系统会提示输入root用户的密码,这就是su命令通过调用PAM模块实现的。

    查看su操作记录
    安全日志文件:/var/log/secure

    cat /var/log/secure        
    

    四、PAM 认证原理:

    1.PAM 认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so;(认证模块)

    2.PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于 /lib64/security/下)进行安全认证。

    3.用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM 模块也是不同的。
    如果想查看某个程序是否支持 PAM 认证,可以用 ls 命令进行查看/etc/pam.d/。

    在这里插入图片描述
    ●PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用
    在这里插入图片描述

    ●第一列代表PAM认证模块类型
    ①auth:对用户身份进行识别,如提示输入密码,判断是否为root。
    ②account:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
    ③password:使用用户信息来更新数据,如修改用户密码。
    ④session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。

    ●第二列代表PAM控制标记
    ①required表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
    ②requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
    ③sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
    ④optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session 类型)。
    ⑤include:表示在验证过程中调用其他的PAM配置文件。比如很多应用通过完整调用/etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。

    ●第三列代表PAM模块默认是在/lib64/security/目录下如果不在此默认路径下,要填写绝对路径。

    ●第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。

    在这里插入图片描述

    五、使用sudo机制提权

    ●sudo是一个授权命令
    用途:以其他用户身份(如root)执行授权的命令

    1、配置sudo授权

     ● visudo或者vi /etc/sudoers(此文件的默认权限为 440,保存退出时必须执行“:wq!”命令来强制操作)
    

    在这里插入图片描述 在这里插入图片描述

    2、语法格式

    用户 主机名=命令程序列表
    用户 主机名=(用户) 命令程序列表

    ①用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)。

    ②主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机

    ③(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令

    ④命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。ALL则代表系统中的所有命令

    例子分析 :

    admin ALL=/sbin/ifconfig      #说明admin在所有主机上拥有ifconfig权限
    
    admin1 localhost=/sbin/*,!/sbin/reboot,!/sbin/poweroff	  #通配符“*”表示所有、取反符号“!”表示排除   #说明admin1拥有除了重启和关机的所有权限
    
    %wheel ALL=NOPASSWD: ALL	  #表示wheel组成员无需验证密码即可使用sudo执行任何命令
    
    admin2 ALL=(root)NOPASSWD: /bin/kill, /usr/bin/killall    #说明admin2用户不需要输入密码即可执行kill和killall命令
    

    1、首先查询主机名称:hellolee,然后查询命令ifconfig绝对路径/sbin/ifconfig,然后进入配置sudo授权,大G跳到最后一行,输入admin hellolee=/sbin/ifconfig,接下来请看图中注释。
    在这里插入图片描述在这里插入图片描述
    ●启动sudo操作日志

    visudo                             #进入编辑
    Defaults logfile = /var/log/sudo   #将该命令添加至最后一行:wq保存并退出即可
    

    3、别名创建

    用户别名 User_Alias
    主机别名 Host_Alias
    命令别名 Cmnd_Alias

    例子分析:

    User_Alias USERS=admin,admin1,admin2             用户的别名users包括:admin,admin1,admin2
    Host_Alias HOSTS=localhost,hellolee   主机别名hosts包括:localhost,hellolee
    Cmnd_Alias CMNDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel
    USERS HOSTS=CMNDS        相当于:用户组   主机组  =  命令程序列表
    

    例:这边我换成白底,会更容易看一下,原本黑底配蓝字看不清
    1、首先我们设置sudo授权

    在这里插入图片描述
    2、我们进入之后可以看到,visudo内原本就有别名格式,我们直接复制粘贴拿过来用就行了
    在这里插入图片描述
    3、我即将要设置排除重启和关机的命令,来复制会话中which查询一下完整路径
    在这里插入图片描述
    4、这边再在visudo中插入,具体描述看下图
    在这里插入图片描述

    5、验证,设置成功
    在这里插入图片描述

    六、开关机安全控制

    ●调整BIOS引导设置
    ①将第一引导设备设为当前系统所在硬盘
    ②禁止从其他设备(光盘、U盘、网络)引导系统
    ③将安全级别设为setup,并设置管理员密码

    1、GRUB限制

    ①使用grub2-mkpasswd-pbkdf2生成密钥
    ②修改/etc/grub.d/00_header文件,添加密码记录
    ③生成新的grub.cfg配置文件

    限制更改 GRUB 引导参数
    1、通常情况下在系统开机进入GRUB 菜单时,按 e 键可以查看并修改GRUB 引导参数,这对服务器是一个极大的威胁。

    在这里插入图片描述在这里插入图片描述

    2、可以为 GRUB 菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

    grub2-mkpasswd-pbkdf2 			        #根据提示设置GRUB 菜单的密码
    PBKDF2 hash of your password is grub.pbkdf2…… 		#省略部分内容为经过加密生成的密码字符串
    
    cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
    cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
    
    vim /etc/grub.d/00_header
    cat << EOF
    set superusers="root"					#设置用户名为root
    password_pbkdf2 root grub.pbkdf2……		#设置密码,省略部分内容为经过加密生成的密码字符串
    EOF
    grub2-mkconfig -o /boot/grub2/grub.cfg	#生成新的 grub.cfg 文件
    

    1、为grub配置文件生成一个根据算法加密的密码字符串,根据提示设置grub菜单密码
    在这里插入图片描述
    2、编辑/etc/grub.d/00_header文件

    在这里插入图片描述

    3、找到GRUB配置文件,先进行一个备份,防止出现问题,然后再重新生成一个新的grub菜单,重新虚拟机
    在这里插入图片描述
    4、这时再重启或开机按e也无法进入查看修改grub引导参数,需要输入用户与密码,对我们的服务器形成一个基本的保护
    在这里插入图片描述

    ●禁止 root 用户登录
    在 Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统。

    vi /etc/securetty           
    #tty5           想要不让在哪个终端登陆就在该终端前加注释#
    tty6         
    

    ●禁止普通用户登录
    login 程序会检查/etc/nologin 文件是否存在,如果存在,则拒绝普通用户登录系统(root 用户不受限制)

    touch /etc/nologin			#创建/etc/nologin文件即禁止普通用户登录
    rm -rf /etc/nologin			#删除该文件即取消登录限制
    
    展开全文
  • YY四无账号安全中心登录绑定手机修改密码源码
  • 今天我们记录一下shiro的一个账号安全。 在网上看了一下其他人的实现,个别案例显得繁琐,配置太过于沉重,今天在这里介绍一种简单的方法。 1.首先说一下我实现的思路 首先,在这之前我们知道,当用户登陆成功...
  • 指纹浏览器的账号安全导入新科技:候鸟浏览器环境包
  • itchat库 账号安全无法登陆网页微信

    千次阅读 热门讨论 2019-11-22 17:34:22
    itchat库 账号安全无法登陆网页微信 无聊学习itchat库时,碰到的问题。却告知,再三感谢!!! import itchat, json # hotReload表示热部署,这样调试的时候就不用频繁登录了hotReload=True itchat.auto_login() #...
  • 本文属于SQL Server安全专题系列  在安全领域中,“攻”“防”一直... 本文将集中在服务帐号上的攻击介绍。曾经看过一部外国电影,名字早忘了,但是有一句话一直记在脑海里(大概也有十几年了吧):世界上不存在没有
  • 如何确保用户帐号安全,是所有开发者都极为重视的问题,而“认证”——确认用户身份,就是保障帐号安全性的关键步骤。 我们时常看到这类新闻:银行APP密码泄露,存款被转移造成重大经济损失;游戏帐号被他人恶意...
  • 黑灰产攻防背景 “安全”与“风控”体系 “人工”与“智能”模型 案例分享 总结
  • 本文属于SQL Server安全专题系列  在安装SQL Server时,很重要的一步就是选择所需的服务,由于每个服务必须有一个服务帐号,所以也就需要帐号的选择和配置,应该坚持最小所需权限原则。最小所需权限原则应该...
  • 风控系统实现账号安全

    千次阅读 2020-02-25 09:57:32
    账号面临的风险 ✔注册账号登录风险 注册登录过程都可以通过一些自动化工具来完成—批量注册账号、扫号。“羊毛党”们则利用了这一点,刷取了大量的活动资源。因此,账号注册登录系统则是打击黑产以及薅羊毛的...
  • 4.4 Windows 2k帐号安全

    2007-03-17 16:23:00
    Windows 2k帐号安全首先,也是最困难的工作就是确保只有必须的帐号被使用,而且每个帐号仅有能满足他们工作的最小权限。通常使用域来集中管理帐号,域是一个中央集权的帐号数据库。解决帐号的安全问题,需要确保不再...
  • 苹果开发者账号安全问题解决方案

    千次阅读 2018-05-03 09:33:47
    前几天开发者账号到期了,需要充值,但是上面提醒说我的账号信息不完善,需要完善电话号码,但是完善个人信息是需要通过安全认证的,当时申请号码的时候选择了三个安全问题,但是答案都忘记了,经过一番折腾,苹果给...
  • 苹果账号安全提示问题忘了怎么办?

    千次阅读 2018-04-03 17:49:33
    今天看到苹果通知的需要添加电话号码的提示,很不幸,需要输入“安全提示问题”才能操作,更不幸的是所有的安全问题都忘了,于是就是一通的搜索和电话,好麻烦的操作了一番,也没能解决这个问题,苹果的技术支持只...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 313,469
精华内容 125,387
关键字:

账号安全