IT评测·应用市场-qidao123.com

标题: ansible实现服务器安全配置基线自动化核查及修复 [打印本页]

作者: 雁过留声    时间: 2025-3-20 12:25
标题: ansible实现服务器安全配置基线自动化核查及修复
【个人感悟拙见】
吾生也有涯,而知也无涯,以有涯随无涯,则殆已! ---《庄子·内篇·养生主第三节》
知识是无穷无尽无限多的,本随笔用到ansible相关技能栈,不建议去把ansible全部知识点学完,可大致了解ansible是什么,能做些什么。然后结合实际工作需要场景去现学现用特定知识点。参考链接:【拥抱运维次元的哆啦A梦】什么是Ansible?
【功效】
通过ansible playbook实现一次编排,对批量服务器开展安全基线核查及修复任务,提升安全运维自动化能力。同时ansible playbook基于.yml文件进行管理,方便后续更新维护。
【技能栈】
【代码】
PASS_MAX_DAYS   90     #设置暗码过期日期
PASS_MIN_DAYS   1      #设置暗码最少更改日期
PASS_MIN_LEN    8      #设置暗码最小长度
PASS_WARN_AGE   7      #设置过期提前警告天数
点击查看代码
  1. ---
  2. - name: 服务器安全基线配置检查
  3.   hosts: k8s-test1           # 指定目标主机组/节点
  4.   gather_facts: no           # 禁用事实收集以加快执行速度
  5.   vars:                      # 定义变量区
  6.     file_name: "/etc/login.defs"   # 需修改的目标配置文件路径
  7.   become: true               # 启用特权权限执行任务
  8.   tasks:                     # 任务定义区
  9.     - name: "配置密码过期天数"
  10.       lineinfile:            # 使用行编辑模块
  11.         path: '{{ file_name }}'   # 目标文件路径(变量引用)
  12.         regexp: '^PASS_MAX_DAYS\s+\S+$'  # 正则匹配原配置行
  13.         line: 'PASS_MAX_DAYS   90'  # 新配置值(90天过期)
  14.         state: present       # 确保存在该配置
  15.     - name: "配置密码最少更改日期"
  16.       lineinfile:
  17.         path: '{{ file_name }}'      
  18.         regexp: '^PASS_MIN_DAYS\s+\S+$'
  19.         line: 'PASS_MIN_DAYS   1'    # 最小间隔1天才能修改密码
  20.         state: present
  21.     - name: "配置密码最小长度"
  22.       lineinfile:
  23.         path: '{{ file_name }}'
  24.         regexp: '^PASS_MIN_LEN\s+\S+$'
  25.         line: 'PASS_MIN_LEN    8'    # 密码长度至少8位
  26.         state: present
  27.     - name: "配置密码过期提前警告天数"
  28.       lineinfile:
  29.         path: '{{ file_name }}'
  30.         regexp: '^PASS_WARN_AGE\s+\S+$'
  31.         line: 'PASS_WARN_AGE   7'    # 过期前7天提醒
  32.         state: present
复制代码

点击查看代码
  1. - name: 服务器安全基线配置检查
  2.   hosts: k8s-test1
  3.   gather_facts: no
  4.   vars:
  5.     file_name: "/etc/pam.d/system-auth"
  6.   become: true
  7.   tasks:
  8.     - name: "配置密码复杂度"
  9.       lineinfile:
  10.         path: '{{ file_name }}'
  11.         regexp: '^password    requisite     pam_cracklib.so.*$'
  12.         line: 'password    requisite     pam_cracklib.so retry=3 minlen=8 maxrepeat=4 ucredit=-2 lcredit=-1 dcredit=-4 ocredit=-1 difok=3 gecoscheck=1'
  13.         state: present
复制代码
【隐含条件】

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4