Linux系统安全及应用

目录

一、账号安全控制

(一)基本安全措施

(二)用户切换与提权

[1. su 与 sudo 对比](#1. su 与 sudo 对比)

[2. su 安全控制](#2. su 安全控制)

[3. sudo 授权配置](#3. sudo 授权配置)

二、系统引导和登录控制

(一)开关机安全控制

三、端口扫描(NMAP)

[1. 常用扫描类型对比](#1. 常用扫描类型对比)

四、端口扫描技术深度解析

[(一)NMAP 核心扫描原理](#(一)NMAP 核心扫描原理)

(二)高级扫描技巧

[2. 实战示例](#2. 实战示例)

(1)检测本地开放端口

(2)网段存活主机检测

[(3)检测 FTP 服务主机](#(3)检测 FTP 服务主机)

五、核心安全工具对比

(一)安全基线检查清单

(二)日志审计与应急响应

六、总结:构建多层防御体系


一、账号安全控制

(一)基本安全措施

安全措施 核心目标 关键命令 / 配置 示例说明
系统账号清理 禁用非必要登录账号 grep "/sbin/nologin" /etc/passwd 检查非登录用户(如 bin、daemon)的 Shell 是否为/sbin/nologin,禁止终端登录。
防止用户文件被篡改 chattr +i /etc/passwd /etc/shadow 锁定用户信息文件,禁止任何修改(包括新增用户)。
密码安全控制 设置密码有效期 vi /etc/login.defs PASS_MAX_DAYS 30 全局配置新建用户密码有效期为 30 天。
强制用户修改密码 chage -M 30 lisi chage -d 0 zhangsan chage -M修改已有用户有效期;chage -d 0强制用户下次登录时改密码。
命令历史控制 限制历史记录条数 vi /etc/profile HISTSIZE=200 全局设置历史命令最多记录 200 条(生效需重新登录)。
退出时清空历史记录 vi ~/.bash_logout history -c 用户退出时自动清空本次会话的历史命令。
自动注销设置 防止终端闲置风险 vi /etc/profile export TMOUT=600 全局设置终端闲置 10 分钟(600 秒)后自动注销。

(二)用户切换与提权

1. su 与 sudo 对比
特性 su 命令 sudo 命令
权限范围 完全切换用户身份 仅执行授权的特定命令
密码验证 需要目标用户密码(root 除外) 需要当前用户密码
安全风险 可能泄露目标用户密码 最小权限原则,风险更低
典型场景 临时获取 root 权限 普通用户执行单次特权命令
2. su 安全控制
  • 授权用户加入 wheel 组

    复制代码
    gpasswd -a tsengyia wheel  # 添加用户到wheel组  
    grep wheel /etc/group       # 确认组成员  
  • 修改 PAM 配置

    复制代码
    vi /etc/pam.d/su  # 去掉`auth required pam_wheel.so use_uid`前的#号  
3. sudo 授权配置
  • 基本格式用户 主机=命令

    复制代码
    visudo  # 编辑sudo配置文件  
    jerry localhost=/sbin/ifconfig  # 允许jerry执行ifconfig命令  
    %wheel ALL=NOPASSWD:ALL          # wheel组用户免密执行所有命令  
  • 通配符与取反

    复制代码
    syrianer localhost=/sbin/*,!/sbin/ifconfig  # 允许执行/sbin/下除ifconfig外的所有命令  

二、系统引导和登录控制

(一)开关机安全控制

控制项 实现方法 命令示例
GRUB 密码保护 1. 生成密码哈希:grub2-mkpasswd-pbkdf2 2. 编辑/etc/grub.d/00_header添加密码 3. 重建 grub.cfg:grub2-mkconfig -o /boot/grub2/grub.cfg ```bash
grub2-mkpasswd-pbkdf2 # 交互生成密码哈希
vi /etc/grub.d/00_header # 添加密码配置

三、端口扫描(NMAP)

1. 常用扫描类型对比

扫描类型 选项 原理 特点 示例
TCP SYN 扫描 -sS 发送 SYN 包,收到 SYN/ACK 则判断端口开放 隐蔽性强,不建立完整连接 nmap -sS 192.168.1.1
TCP 连接扫描 -sT 完整三次握手建立连接 准确性高,易被日志记录 nmap -sT 127.0.0.1
UDP 扫描 -sU 探测 UDP 端口,开放端口可能无响应 速度慢,需处理 ICMP 不可达消息 nmap -sU -p 53 192.168.4.0/24
ICMP 扫描 -sP 类似 ping 检测主机存活 快速发现在线主机,不扫描端口 nmap -sP 192.168.1.0/24
端口指定 -p 扫描特定端口(如 21、80) 针对性检测服务 nmap -p 21,80 192.168.1.100

四、端口扫描技术深度解析

(一)NMAP 核心扫描原理

  1. TCP 三次握手与扫描类型

    • SYN 扫描(-sS)

      发送 SYN→接收 SYN/ACK(端口开放)或 RST(端口关闭)→回复 RST(不完成握手)

      • 优点:隐蔽性强,不记录到目标日志
      • 缺点:可能被防火墙拦截 SYN 包
    • 连接扫描(-sT)

      完整三次握手(SYN→SYN/ACK→ACK),目标会记录连接日志

      • 优点:准确性 100%,适合无状态防火墙环境
      • 缺点:易被检测到攻击行为
  2. UDP 扫描(-sU)

    • 原理:发送 UDP 数据包到目标端口,开放端口可能无响应,关闭端口返回 ICMP 端口不可达
    • 挑战:UDP 协议无连接状态,扫描速度慢(需等待超时)
    • 优化:结合--min-parallelism 100提高并发度

(二)高级扫描技巧

  1. 操作系统识别(-O)

    • 原理:分析 TCP/IP 协议栈指纹(如 TTL、窗口大小、选项字段)
    • 示例:nmap -O 192.168.1.1
    • 准确率:约 90%,依赖 NMAP 指纹库更新
  2. 服务版本检测(-sV)

    • 作用:识别端口对应的服务及版本(如 OpenSSH 8.0、Apache 2.4.38)
    • 风险:老旧版本可能存在已知漏洞(如 OpenSSL Heartbleed)
  3. 脚本扫描(NMAP Scripting Engine, NSE)

    • 内置脚本分类:

      • vuln:检测漏洞(如 CVE-2021-44228 Log4j)
      • auth:测试认证机制(如弱 FTP 密码)
      • exploit:尝试利用漏洞(需谨慎使用)
    • 示例:检测 WordPress 弱密码

      复制代码
      nmap --script http-wordpress-login 192.168.1.100 -p 80  

      2. 实战示例

(1)检测本地开放端口
复制代码
nmap 127.0.0.1          # 扫描TCP常用端口  
nmap -sU 127.0.0.1     # 扫描UDP端口  
(2)网段存活主机检测
复制代码
nmap -n -sP 192.168.4.0/24  # 禁用DNS解析,快速ping扫描  
(3)检测 FTP 服务主机
复制代码
nmap -p 21 192.168.4.0/24  # 扫描21端口,定位FTP服务器  

五、核心安全工具对比

工具 功能 优势 典型场景
chage 密码有效期管理 细粒度控制用户密码策略 批量设置员工账号密码有效期
su/sudo 用户切换与提权 sudo 支持最小权限原则 管理员授权普通用户执行特定命令
John the Ripper 弱口令检测 支持多种加密算法,字典 / 暴力破解 定期检测系统账号密码强度
NMAP 端口扫描与服务发现 支持多种扫描类型,跨平台 网络安全评估,发现开放服务漏洞

(一)安全基线检查清单

账号管理

  1. 定期清理过期账号:chage -l username(查看有效期),删除 6 个月未登录账号:find /home -maxdepth 1 -type d ! -name "root" -mtime +180 -exec userdel -r {} \;
  2. 禁用 guest/nobody 等公共账号:usermod -s /sbin/nologin guest
  3. 服务加固
  4. 关闭危险服务:systemctl disable --now telnet.socket rpcbind.service
  5. 启用 HTTPS:为 Web 服务配置 SSL 证书(如 Let's Encrypt),禁止 HTTP 访问

(二)日志审计与应急响应

  1. 关键日志监控
    • 登录失败日志:grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c(定位暴力破解源 IP)
    • sudo 操作审计:tail -f /var/log/sudo(监控特权命令执行)
  2. 应急响应流程
    1. 检测:通过 NMAP 定期扫描、IDS 报警发现异常
    2. 隔离:防火墙封禁攻击源 IP,断开异常连接
    3. 修复 :补丁更新(yum update),重置弱密码(passwd username
    4. 复盘:记录事件详情到《安全事件报告》,更新安全策略

六、总结:构建多层防御体系

用户层:最小权限原则(普通用户禁用 root 直接登录,通过 sudo 授权)

系统层:引导安全(GRUB 密码)、登录控制(/etc/securetty)、会话安全(TMOUT/HISTSIZE)

网络层:端口扫描(NMAP 检测开放服务)、弱口令检测(John 工具修复密码风险)

管理层面:定期审计、日志分析、应急响应预案

通过技术手段与管理策略的结合,可有效降低系统安全风险,保障业务连续性。实际操作中需根据场景调整配置(如生产环境禁用 UDP 扫描以减少误报),并持续关注安全漏洞库(如 CVE、NVD)的更新

相关推荐
Zfox_1 分钟前
Git 进阶之路:高效协作之分支管理
大数据·linux·运维·c++·git·elasticsearch
微学AI7 分钟前
详细介绍:MCP(大模型上下文协议)的架构与组件,以及MCP的开发实践
前端·人工智能·深度学习·架构·llm·mcp
夏天里的肥宅水30 分钟前
解决方案:远程shell连不上Ubuntu服务器
linux·运维·服务器·ubuntu
牛角上的男孩33 分钟前
使用QEMU(8.2.10)调试ARM64 Linux内核6.6.30
linux·运维·服务器
SpikeKing35 分钟前
Server - 优雅的配置服务器 Bash 环境(.bashrc)
服务器·bash·bashrc·bash_profile
liangshanbo121537 分钟前
CSS 包含块
前端·css
Mitchell_C38 分钟前
语义化 HTML (Semantic HTML)
前端·html
倒霉男孩40 分钟前
CSS文本属性
前端·css
晚风3081 小时前
前端
前端
JiangJiang1 小时前
🚀 Vue 人如何玩转 React 自定义 Hook?从 Mixins 到 Hook 的华丽转身
前端·react.js·面试