当前位置: 首页 > news >正文

系统安全应用

文章目录

  • 一.账号安全控制
    • 1.基本安全措施
      • ①系统账号清理
      • ②密码安全控制
    • 2.用户切换与提权
      • ①su命令用法
      • ②PAM认证
    • 3.sudo命令-提升执行权限
      • ①在配置文件/etc/sudoers中添加授权
  • 二.系统引导和登录控制
    • 1.开关机安全控制
      • ①调整bios引导设置
      • ②限制更改grub引导参数
  • 三.弱口令检测.端口扫描
    • 1.弱口令检测-John the Ripper
      • ①下载并安装John the ripper
      • ②检测弱口令账号
      • ③使用密码字典文件
    • 2.网络扫描-NMAP
      • ①安装nmap软件包
      • ②扫描语法及类型
      • ③扫描操作势力一
      • ④示例二
      • ⑤示例三
      • ⑥示例四

一.账号安全控制

1.基本安全措施

①系统账号清理

在 Linux 系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。除了超级用户 root之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登录的,因此也称为非登录用户账号。
常见的非登录用户账号包括 bin、daemon、adm、lp、mail 等。为了确保系统安全,这些用户账号的登录 shell 通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动

在这里插入图片描述
各种非登录用户账号中,还有相当一部分是很少用到的,如 games。这些用户账号可以视为冗余账号直接删除即可。除此之外,还有一些随应用程序安装的用户账号,若卸载程序以后未能自动删除,则需要管理员手动进行清理。
对于 Linux 服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。例如,若要锁定、解锁名为 zhangsan 的用户账号,可以执行以下操作(passwd、usermod 命令都可用来锁定解锁账号)

在这里插入图片描述
如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。使用chattr 命令,分别结合“+i”“-i”选项来锁定、解锁文件,使用 lsattr 命令可以査看文件锁定情况。
在这里插入图片描述

②密码安全控制

在不安全的网络环境中,为了降低密码被猜出或被暴力破解的风险,用户应养成定期更改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码己过期的用户登录时将被要求重新设置密码,否则将拒绝登录。
执行以下操作可将密码的有效期设为 30天(chage 命令用于设置密码时限)

在这里插入图片描述
在某些特殊情况下,如要求批量创建的用户初次登录时必须自设密码,根据安全规划统一要求所有用户更新密码等,可以由管理员执行强制策略,以便用户在下次登录时必须更改密码
在这里插入图片描述

2.用户切换与提权

①su命令用法

使用 su 命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。当然,切换时需要对目标用户的密码进行验证(从 root 用户切换为其他用户时除外)
在这里插入图片描述
选项“_”等同于“–login”或“-1”,表示切换用户后进入目标用户的登录 shell 环境,若缺少此选项则仅切换身份、不切换用户环境。对于切换为 root 用户的情况,“root”可以省略。默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root)的登录密码,这样带来了安全风险。为了加强 su 命令的使用控制,可以借助于 pam_whee1 认证模块,只允许极个别用户使用 su 命令进行切换。实现过程如下:将授权使用 su 命令的用户添加到 wheel 组,修改/etc/pam.d/su 认证配置以启用 pam wheel 认证

②PAM认证

PAM(Pluggable Authentication Modules),是 Linux 系统可插拔认证模块,是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux 服务器普遍使用的认证方式。PAM 提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp),等应用程序中。系统管理员通过PAM 配置文件来制定不同应用程序的不同认证策略

PAM 认证一般遵循的顺序:Service(服务)PAM(配置文件)→pam_*.so:
》 
PAM 认证首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security 下)进行安全认证;用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到 PAM 模块进行认证。不同的应用程序所对应的 PAM 模块也是不同的

在这里插入图片描述
su配置文件具体内容
在这里插入图片描述

每一行都是一个独立的认证过程;
每一行可以区分为三个字段:
认证类型
控制类型
PAM 模块及其参数
认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证;帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等;
密码管理(password management):主要是用来修改用户的密码;会话管理(session management):主要是提供对会话的管理和记账控制类型也可以称做 Control Flags,用于 PAM 验证类型的返回结果。required 验证失败时仍然继续,但返回 Fai1
requisite 验证失败则立即结束整个验证过程,返回 Fai1
sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续optional 不用于验证,只是显示信息(通常用于 session 类型)

PAM验证流程图
请添加图片描述

3.sudo命令-提升执行权限

通过 su 命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的登录密码。例如,若要从 jerry 用户切换为 root 用户,必须知道 root 用户的密码。对于生产环境中的 Linux 服务器每多一个人知道特权密码,其安全风险也就增加一分。
有没有一种折中的办法,既可以让普通用户拥有一部分管理权限,又不需要将 root 用户的密码告诉他呢?答案是肯定的,使用 sudo 命令就可以提升执行权限。不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户(或其他普通用户)的身份来执行哪些命令。

①在配置文件/etc/sudoers中添加授权

sudo 机制的配置文件为/etc/sudoers,文件的默认权限为 440,需使用专门的 visudo 工具进行
编辑。虽然也可以用 vi 进行编辑,但保存时必须执行“:w!”命令来强制操作,否则系统将提示为只读文件而拒绝保存

授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命令。各部分的具体含义如下。
用户(user):直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)。主机(MACHINE):使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份sudoers 文件,一般设为 localhost 或者实际的主机名即可。命令(COMMANDS):允许授权的用户通过 sudo 方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。
典型的 sudo 配置记录中,每行对应一个用户或组的 sudo 授权配置

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

二.系统引导和登录控制

1.开关机安全控制

①调整bios引导设置

将第一优先引导设备(First Boot Device)设为当前系统所在磁盘。禁止从其他设备(如光盘、U 盘、网络等)引导系统,对应的项设为“Disabled将 BIOS 的安全级别改为“setup”,并设置好管理密码,以防止未授权的修改

②限制更改grub引导参数

为 GRUB 菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2”命令生成,表现为经过 PBKDF2 算法加密的字符串,安全性更好。生成密码后在/etc/grub.d/00 header 配置文件中,添加对应的用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过上述配置,重新开机进入 GRUB 菜单时,按E键将无法修改引导参数。若要获得编辑权限,必须根据提示输入正确的 GRUB 密码
在这里插入图片描述

三.弱口令检测.端口扫描

1.弱口令检测-John the Ripper

在 Internet 环境中,过于简单的口令是服务器面临的最大风险。尽管大家都知道设置一个更长、更复杂的口令会更加安全,但总是会有一些用户因贪图方便而采用简单、易记的口令字串。对于任何一个承担着安全责任的管理员,及时找出这些弱口令账号是非常必要的,这样便于采取进一步的安全措施(如提醒用户重设更安全的口令):
John the Ripper 是一款开源的密码破解工具,能够在已知密文的情况下快速分析出明文的密码字串,支持 DES、MD5 等多种加密算法,而且允许使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。通过使用 John the Ripper,可以检测 Linux/UNIX 系统用户账号的密码强度

①下载并安装John the ripper

John the Ripper 的官方网站是 http://www.openwal1.com/john/,通过该网站可以获取稳定版源码包,如 john-1.8.0.tar.gz。
以源码包 john-1.8.0.tar.gz 为例,解压后可看到三个子目录–doc、run、src,分别表示手册文档、运行程序、源码文件,除此之外还有一个链接的说明文件 README。其中,doc 目录下包括 README、INSTALL、EXAMPLES 等多个文档,提供了较全面的使用指导。
在这里插入图片描述

切换到 src 子目录并执行“make clean linux-x86-64”命令,即可执行编译过程。若单独执行 make命令,将列出可用的编译操作、支持的系统类型。编译完成以后,run 子目录下会生成一个名为 john 的可执行程序
在这里插入图片描述

②检测弱口令账号

在这里插入图片描述
在执行过程中,分析出来的弱口令账号将即时输出,第一列为密码字串,第二列的括号内为相应的用户名(如用户 kadmin 的密码为“123456”)。默认情况下,john 将针对常见的弱口令设置特点,尝试破解已识别的所有密文字串,如果检测的时间太长,可以按 ctr1+C组合键强行终止。破解出的密码信息
在这里插入图片描述

③使用密码字典文件

John the Ripper 默认提供的字典文件为 password.1st,其列出了 3008 多个常见的弱口令。如果有必要,用户可以在字典文件中添加更多的密码组合,也可以直接使用更加完整的其他字典文件。执行john 程序时,可以结合“–wordlist=”选项来指定字典文件的位置,以便对指定的密码文件进行暴力分析。

[root@localhost run]# :>john.pot//清空已破解出的账户列表,以便重新分析
[root@localhost run]# ./john --wordlist=./password.lst /root/shadow.
txtLoaded 6 password hashes with 6 different salts (crypt, generic crypt(3)[?/64])Press 'q'or ctrl-c to abort, almost any other key for status123456(jerry)
123456(kadmin)

2.网络扫描-NMAP

NMAP 是一个强大的端口扫描类安全评测工具,官方站点是 http://nmap.org/。NMAP 被设计为检测众多主机数量的巨大网络,支持 ping 扫描、多端口检测、0S 识别等多种技术。使用 NMAP 定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,减小安全风险。

①安装nmap软件包

在 Linux 系统中,既可以使用光盘自带的 nmap-6.40-7.e17.x8664.rpm 安装包,也可以使用从NMAP 官方网站下载的最新版源码包,这里以 YUM 方式安装的 nmap 软件包为例
在这里插入图片描述

②扫描语法及类型

NMAP 的扫描程序位于/usr/bin/nmap 目录下,使用时基本命令格式如下所示

nmap[扫描类型][选项]<扫描目标...>

扫描常用的选项类型

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

③扫描操作势力一

TCP,UDP协议
在这里插入图片描述
扫描常用的UDP协议
在这里插入图片描述

④示例二

检查192.168.10.0网段有哪些ip使用了ftp服务
在这里插入图片描述

⑤示例三

快速检测 192.168.4.0/24 网段中有哪些存活主机(能 ping 通)
在这里插入图片描述

⑥示例四

检测 IP 地址位于 192.168.4.100~200 的主机是否开启文件共享服务
在这里插入图片描述

http://www.xdnf.cn/news/527239.html

相关文章:

  • 【C++】map和multimap的常用接口详解
  • flask蓝图的导入与注册
  • VS2017编译librdkafka 2.1.0
  • 【语音克隆Open Voice的使用】
  • mysql的安装方式
  • 【成品设计】基于STM32的环境监控系列
  • labview硬件开发板——LED流水灯
  • 微服务项目->在线oj系统(Java版 - 4)
  • 【Windows系统】向量数据库Milvus安装教程
  • MySQL - 如何突破单库性能瓶颈
  • vue Element-ui对图片上传和选用时的比例控制
  • C+++STL(一)
  • 自制操作系统day4(c指针)(指针和数组)(CLI和STI)(EFLAGS)
  • Flink概述
  • 问题 | 代码审查:函数是否包含返回语句
  • C++11特性
  • 计算机视觉设计开发工程师学习路线
  • 远程数据采集智能网关支持下的雨洪资源分布式监测网络搭建实践
  • 【每天一个知识点】embedding与representation
  • 关于 Web 漏洞原理与利用:2. XSS(跨站脚本攻击)
  • Scala 访问修饰符
  • java基础-关键字:static、单例模式
  • JDBC指南
  • 【线下沙龙】NineData x Apache Doris x 阿里云联合举办数据库技术Meetup,5月24日深圳见!
  • [[春秋云境] Privilege仿真场景
  • ElasticSearch 8.x 快速上手并了解核心概念
  • 比较两个用于手写体识别的卷积神经网络(CNN)模型
  • PostgreSQL基本用法
  • 谷歌 NotebookLM 即将推出 Sparks 视频概览:Gemini 与 Deep Research 加持,可生成 1 - 3 分钟 AI 视频
  • 前缀和——和为K的子数组