ansible实现服务器安全配置基线自动化核查及修复

打印 上一主题 下一主题

主题 934|帖子 934|积分 2802

【个人感悟拙见】
吾生也有涯,而知也无涯,以有涯随无涯,则殆已! ---《庄子·内篇·养生主第三节》
知识是无穷无尽无限多的,本随笔用到ansible相关技能栈,不建议去把ansible全部知识点学完,可大致了解ansible是什么,能做些什么。然后结合实际工作需要场景去现学现用特定知识点。参考链接:【拥抱运维次元的哆啦A梦】什么是Ansible?
【功效】
通过ansible playbook实现一次编排,对批量服务器开展安全基线核查及修复任务,提升安全运维自动化能力。同时ansible playbook基于.yml文件进行管理,方便后续更新维护。
【技能栈】

  • Ansible
  • Linux
  • Python
【代码】

  • 暗码过期安全配置,核查并配置/etc/login.defs文件
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
复制代码

  • 暗码复杂度安全配置,核查并配置/etc/pam.d/system-auth文件
    password    requisite     pam_cracklib.so minlen=8 ucredit=-2 lcredit=-1 dcredit=-4 ocredit=-1


  • minlen:最小暗码长度
  • dcredit:最少数字
  • ucredit:最少大写字母
  • ocredit:最少特别字符
  • lcredit:最少小写字符
  • retry:尝试次数
  • difok:最少不同字符
点击查看代码
  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
复制代码
【隐含条件】

  • 已在linux服务器上安装ansible,安装方法可自行上网搜索。
  • 配置了ansible操作主机对客户端主机的免密登录,linux免密登录配置方法可自行上网搜索。

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

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

雁过留声

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表