系统安全及应用

目录

一 账号安全控制

1 基本安全措施

(1)系统账号清理

(2)密码安全控制

(3)命令历史,自动注销

2 用户切换与提权

(1)su命令的用法

(2)PAM认证

3 sudo命令——提升执行权限

(1)在配置文件/etc/sudoers中添加授权

(2)通过sudo执行特权命令

二 系统引导和登陆控制

1 开关机安全控制

(1)调整BIOS引导设置

(2)限制更改GRUB引导参数

2 终端及登录控制

(1)禁止root用户登录

(2)禁止普通用户登录

三 弱口令检测,端口扫描

1 弱口令检测——John the Ripper

(1)下载并安装John the Ripper

(2)检测弱口令账号

(3)使用密码字典文件

2 网络扫描——NMAP

(1)安装NMAP软件包

(2)扫描语法及类型

(3)扫描操作示例一

(4)扫描示例二

(5)扫描示例三

(6)扫描示例四


一 账号安全控制

1 基本安全措施

(1)系统账号清理

  • 定期删除 / 禁用闲置账号,避免僵尸账号被利用。
  • 核查账号权限,遵循 “最小权限原则”,仅保留必要访问权限。

grep  "/sbin/nologin$"  /etc/passwd

usermod  -L  lisi                  //锁定账号

passwd  -S  lisi                    //查看帐号状态

usermod  -U  lisi                  //解锁账号

chattr  +i  /etc/passwd  /etc/shadow                   //锁定文件

lsattr    /etc/passwd  /etc/shadow                     //查看为锁定的状态

chattr  -i  /etc/passwd  /etc/shadow                   //解锁文件

useradd   billgate                       //查看是否锁定

(2)密码安全控制

  • 强制设置复杂密码(如长度≥8 位,包含大小写字母、数字、特殊符号)。
  • 配置密码有效期(如 90 天强制修改)、错误登录锁定(如 5 次错误锁定账号)。

vim  /etc/login.defs                //适用于新建的用户

chage  -M 30  lisi                //适用于已有的lisi用户

chage  -d  0  lisi                //强制用户下次登录时重设密码

(3)命令历史,自动注销

  • 限制或清理用户命令历史(如清空~/.bash_history),防止敏感操作泄露。
  • 设置会话超时自动注销(如TMOUT=600,10 分钟无操作自动退出)。

vim  /etc/profile           //适用于新建的用户     

export  HISTSIZE=200         //适用于当前用户

2 用户切换与提权

(1)su命令的用法

  • 功能:切换用户身份(如su - username切换至指定用户,su -切换至 root)。
  • 安全要点
    • 仅授权可信用户使用su,避免普通用户直接获取 root 权限。
    • 使用时需验证目标用户密码(如切换至 root 需输入 root 密码)。
su [选项] [目标用户] 

su # 直接输入su,默认切换到root用户

su - # 或 su - root           //完全切换到 root 用户环境

su user1                      //切换到普通用户(如 user1)

su -c "命令" 目标用户                 //以目标用户身份执行单次命令

su -m user1 # 或 su -p user1                 //保留当前环境变量切换用户

(2)PAM认证

基本概念:

**PAM(Pluggable Authentication Modules,可插拔认证模块)** 是 Linux/Unix 系统中用于实现灵活认证逻辑的框架。

  • 核心目标:将系统服务的认证功能与服务本身解耦,通过配置不同的认证模块(Module),实现对用户登录、权限提升(如 su/sudo)、远程连接(如 SSH)等场景的认证方式灵活定制(如密码认证、指纹识别、LDAP 认证等)。
  • 应用场景:常见于需要认证的服务,如loginsshdsusudoftp等。
  1. 配置文件

    • 路径:位于/etc/pam.d/目录下,每个服务对应一个同名配置文件(如/etc/pam.d/sshd对应 SSH 服务的认证规则)。
    • 格式:每行定义一个认证模块,格式为:

      plaintext

      <控制标志> <模块路径> <模块参数>  
      
       
      • 控制标志:定义模块的执行结果对整体认证的影响(如必须通过、可选通过等)。
      • 模块路径:认证模块的二进制文件路径(通常位于/lib64/security//usr/lib64/security/)。
      • 模块参数:传递给模块的参数(如是否开启调试、允许尝试次数等)。

       2. 控制标志(关键分类)

su命令的 PAM 配置文件/etc/pam.d/su为例:

# 验证用户是否允许执行su(需属于wheel组)  
auth    required    pam_wheel.so use_uid  
# 验证目标用户的密码(如切换到root,需输入root密码)  
auth    required    pam_unix.so likeauth nullok  
# 记录su操作日志  
account required    pam_access.so  
session required    pam_loginuid.so  
控制标志说明
required模块必须成功,否则认证失败(但会先执行后续模块,再返回失败结果)。
requisite模块必须成功,否则立即终止认证并返回失败(不再执行后续模块)。
sufficient模块成功则直接认证通过(不再执行后续模块);失败则忽略,继续执行。
optional模块成功与否不影响整体认证结果(常用于记录日志等辅助功能)。

      3. 常用认证模块 

  • 密码认证模块
    • pam_unix.so:基于本地用户密码文件(/etc/shadow)进行认证。
    • pam_pwhistory.so:限制用户重复使用旧密码(需配合pam_unix.so)。
  • 会话管理模块
    • pam_limits.so:限制用户会话资源(如最大进程数、文件打开数)。
    • pam_motd.so:在用户登录时显示消息(如/etc/motd内容)。
  • 其他认证方式模块
    • pam_ldap.so:通过 LDAP 服务器进行认证。
    • pam_tally2.so:限制密码错误尝试次数(防暴力破解)。
    • pam_google_authenticator.so:集成 Google 动态令牌二次认证。

3 sudo命令——提升执行权限

(1)在配置文件/etc/sudoers中添加授权

  • 在配置文件 /etc/sudoers 中添加授权
    • 编辑工具:使用visudo(避免多用户同时修改导致文件损坏)。
    • 授权格式

      # 语法:用户名 主机=(运行身份) [选项] 命令列表  
      user1 ALL=(ALL) /usr/sbin/useradd, /usr/sbin/userdel  # 允许user1在任意主机以任意身份执行useradd/userdel  
      user2 ALL=(root) NOPASSWD: /usr/bin/apt-get  # 允许user2免密以root身份执行apt-get  
      
    • 安全原则:按 “最小权限” 分配命令,避免使用ALL通配符。

授权配置主要包括用户,主机,命令三个部分,概括三个部分的具体含义:

用户被授权执行操作的主体,可以是单个用户、用户组或特殊身份(如超级用户 root)。
主机允许用户执行操作的客户端主机或网络来源,用于限制用户的访问范围。
命令用户被授权执行的具体系统命令或脚本,需指定命令的完整路径以确保唯一性。

(2)通过sudo执行特权命令

  • 执行方式:普通用户通过sudo + 命令触发特权操作(如sudo apt update)。
  • 认证逻辑
    • 首次执行需输入当前用户密码(除非配置NOPASSWD)。
    • 密码有效期内(默认 15 分钟)可免密执行其他授权命令。
  • 日志记录:操作记录存于/var/log/auth.log,便于审计(如user1 sudo: 用户执行了rm -rf)。

二 系统引导和登陆控制

1 开关机安全控制

(1)调整BIOS引导设置

  • 核心目的:防止未授权用户通过修改引导顺序(如从 U 盘启动)绕过系统安全机制。
  • 操作要点
    • 进入 BIOS 界面,设置管理员密码,禁止未授权访问 BIOS 配置。
    • 锁定引导顺序(如仅允许从硬盘启动),关闭 USB 设备启动权限。
    • 启用 “安全启动”(Secure Boot)功能,验证引导加载程序的签名合法性。

(2)限制更改GRUB引导参数

  • GRUB 安全风险:未授权用户可通过修改 GRUB 参数(如单用户模式)绕过密码认证获取 root 权限。
  • 加固措施
    1. 设置 GRUB 密码
      • 执行grub-mkpasswd-pbkdf2生成密码哈希,写入/etc/grub.d/00_header/etc/grub.conf
      • 示例配置:

        bash

        set superusers="admin"  
        password_pbkdf2 admin grub.pbkdf2.sha512.10000.XXXXXXXX...  # 哈希值  
        
    2. 禁用编辑模式:在/etc/default/grub中设置GRUB_DISABLE_RECOVERY="true",禁止通过按键进入引导参数编辑界面。
    3. 重新生成 GRUB 配置:修改后执行update-grubgrub2-mkconfig -o /boot/grub2/grub.cfg使配置生效。

2 终端及登录控制

(1)禁止root用户登录

  • 场景与目的
    • 禁止 root 通过 SSH、本地终端等直接登录,降低暴力破解风险。
    • 强制通过普通用户登录后,使用sudo执行特权操作,实现操作审计。
  • 实现方式
    1. SSH 禁止 root 登录
      • 编辑/etc/ssh/sshd_config,设置PermitRootLogin no,重启 SSH 服务:systemctl restart sshd
    2. 本地终端限制
      • /etc/pam.d/login中添加auth required pam_securetty.so,仅允许 root 从安全终端(如/dev/tty1)登录。
      • 或修改/etc/securetty,删除允许 root 登录的终端列表(如pts/*代表远程终端)。

(2)禁止普通用户登录

    • 适用场景:维护期间临时禁止用户登录,或锁定违规账号。
    • 实现方法
      1. 全局禁止登录
        • 创建空文件/etc/nologin,普通用户登录时会显示指定提示(内容写入该文件),root 仍可登录。
        • 示例:echo "系统维护中,请稍后再试" > /etc/nologin
      2. 锁定单个用户
        • 使用passwd -l username锁定账号(添加!到密码字段),用户无法登录但进程仍可运行。
        • 解锁命令:passwd -u username
      3. 限制登录时间段
        • 通过 PAM 模块pam_time.so配置,如在/etc/pam.d/login中添加:

          bash

          session required pam_time.so times=login_time.conf  # 引用配置文件  
          
        • /etc/time.conf中定义规则:LOGIN_TIME;*;*;09:00-18:00(仅允许工作日 9:00-18:00 登录)。

三 弱口令检测,端口扫描

1 弱口令检测——John the Ripper

概念
John the Ripper(简称 John)是一款开源密码破解工具,通过字典攻击、规则攻击等方式检测系统中存在的弱口令,支持 Linux、Windows 等多平台,常用于渗透测试和安全审计。

(1)下载并安装John the Ripper

  • Linux

    sudo apt update  
    sudo apt install john  # 安装稳定版  
    sudo apt install john-the-ripper  # 或安装完整版本  
    
  • 源码编译安装

    wget http://www.openwall.com/john/g/john-1.9.0.tar.gz  
    tar -zxvf john-1.9.0.tar.gz  
    cd john-1.9.0/src  
    make clean && make linux-x86-64  # 根据系统架构选择编译参数  

(2)检测弱口令账号

  • 步骤 1:获取密码哈希
    • /etc/passwd(明文用户名)和/etc/shadow(哈希密码)获取账号数据:

      bash

      sudo unshadow /etc/passwd /etc/shadow > unshadowed.txt  
      
  • 步骤 2:使用 John 进行破解

    bash

    john --format=sha512crypt unshadowed.txt  # 指定哈希格式(默认自动识别)  
    
     
    • 破解结果显示在终端,使用john --show unshadowed.txt查看明文密码。

(3)使用密码字典文件

  • 指定字典路径

    bash

    john --wordlist=/usr/share/john/password.lst unshadowed.txt  # 使用内置字典  
    john --wordlist=/path/to/custom.dict unshadowed.txt  # 使用自定义字典  
    

  • 组合攻击(字典 + 规则)

    bash

    john --wordlist=dictionary.txt --rules unshadowed.txt  # 通过规则扩展字典(如首字母大

2 网络扫描——NMAP

概念
NMAP(Network Mapper)是一款开源网络探测和安全审计工具,用于扫描目标主机的开放端口、运行的服务及操作系统类型,支持 TCP/UDP 扫描、隐蔽扫描等多种模式,是渗透测试和网络管理的核心工具。

(1)安装NMAP软件包

Linux

sudo yum install nmap  # CentOS  
sudo apt install nmap  # Ubuntu  

(2)扫描语法及类型

  • 基础语法

    nmap [扫描选项] [目标IP/域名/网段]  
    
  • 常见扫描类型
    选项描述
    -sSTCP SYN 扫描(半开放扫描,隐蔽性强,需 root 权限)
    -sUUDP 扫描(检测 UDP 端口开放情况,速度较慢)
    -sTTCP 全连接扫描(适合无防火墙环境,结果准确但易被日志记录)
    -sL列表扫描(仅列出目标,不发送探测包)
    -p <端口范围>指定扫描端口(如-p 80,443-p 1-1000
    -O操作系统指纹识别(识别目标主机的操作系统类型)
    -A综合扫描(启用操作系统识别、服务版本检测、脚本扫描等)
    -v显示详细扫描过程

(3)扫描操作示例一

扫描单个主机的常用端口

(4)扫描示例二

扫描网段内所有开放主机

(5)扫描示例三

扫描网段中存活的主机

(6)扫描示例四

扫描网段中是否开放文件共享服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值