久久青草精品A片狠狠,日韩欧美视频一区二区,亚洲国码AV日韩,国产精品黄在

Linux系統的簡單安全加固

2025-01-13 10:48:03 3450

Linux系統的簡單安全加固

歡迎來到藍隊云技術小課堂,每天分享一個技術小知識。

 

適用于 CentOS 7

---

- name: secure linux

  hosts: all

  ignore_errors: true

  vars:

    pass_max_days: 90  # 密碼過期時間

    # 密碼復雜度相關

    minlen: 8         # 最少位數

    minnum: 1         # 數字出現的最少次數,配置為0表示不校驗是否包含數字

    minupper: 1       # 大寫字母出現的最少次數,配置為0表示不校驗是否包含大寫字母

    minlower: 1       # 小寫字母出現的最少次數,配置為0表示不校驗是否包含小寫字母

    minspecial: 1     # 特殊字符出現的最少次數,配置為0表示不校驗是否包含特殊字符

    # 用戶連續登錄幾次失敗就鎖定用戶

    user_deny: 3

    # 用戶鎖定時長,單位秒

    user_lock_time: 300

    # 會話超時,多長時間沒有操作退出用戶,單位秒

    tmout: 900

    # 歷史命令保留條數

    his_size: 10000

    # 服務相關

    stop_and_disable_services: ["telnet", "bluetooth"] # 要禁用的服務

    start_and_enable_services: ["rsyslog", "auditd"]   # 要啟動的服務

    # 內核參數修改

    kernel_params:

    - { key: 'net.ipv4.tcp_max_syn_backlog', value: '1024' }

 

  tasks:

  - name: 配置密碼周期策略

    command: sed -r -i 's#(PASS_MAX_DAYS)\\\\s+([0-9]+)#\\\\1 {{ pass_max_days }}#' /etc/login.defs

 

  - name: 配置密碼復雜度

    command: sed -r -i 's#(password\\\\s+requisite\\\\s+)(.*)#\\\\1pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen={{ minlen }} dcredit=-{{ minnum }} ucredit=-{{ minupper }} lcredit=-{{ minlower }} ocredit=-{{ minspecial }}#' /etc/pam.d/system-auth

 

  - name: 配置登錄失敗策略

    command: sed -i '1a\\\\auth required pam_tally2.so onerr=fail deny={{ user_deny }} unlock_time={{ user_lock_time }} even_deny_root root_unlock_time={{ user_lock_time }}' /etc/pam.d/sshd

 

  - name: 停止服務

    service:

      name: "{{ item }}"

      state: stopped

    loop: "{{ stop_and_disable_services }}"

    register: stop_service

 

  - name: 禁用服務

    service:

      name: "{{ item }}"

      enabled: no

    loop: "{{ stop_and_disable_services }}"

    when: stop_service is succeeded

 

  - name: 啟動服務

    service:

      name: "{{ item }}"

      state: started

    loop: "{{ start_and_enable_services }}"

    register: start_service

 

  - name: 配置開機自啟動

    service:

      name: "{{ item }}"

      enabled: yes

    loop: "{{ start_and_enable_services }}"

    when: start_service is succeeded

 

  - name: 延長日志保存時間

    shell: sed -i 's/week/month/g' /etc/logrotate.conf && sed -i 's/rotate 4/rotate 6/' /etc/logrotate.conf && sed -i 's/rotate 1/rotate 6/' /etc/logrotate.conf

 

  - name: 添加會話超時鎖定

    command: sed -i '$a\\\\export TMOUT={{ tmout }}' /etc/profile

 

  - name: 修改內核參數

    command:

      cmd: "sysctl -w {{ item.key }}={{ item.value }}"

    loop: "{{ kernel_params }}"

 

  - name: 修改歷史命令保存條數

    command: sed -i 's/^HISTSIZE=1000/HISTSIZE={{ his_size }}/g' /etc/profile

 

  - name: 修改歷史命令顯示內容

    shell:

      cmd: |

        cat << EOF >> /etc/profile

        USER_IP=\\\\$(who -m 2>/dev/null | awk '{print \\\\$NF}' |sed -e 's/[()]//g')

        if [ "\\\\$USER_IP" = "" ];then

          USER_IP=\\\\$(hostname)

        fi

        export HISTTIMEFORMAT="%F %T \\\\$USER_IP \\\\$(whoami) "

        shopt -s histappend

        export PROMPT_COMMAND="history -a"

        EOF

 

  - name: 重載/etc/profile

    shell: . /etc/profile && echo ''

 

密碼復雜度參數詳解

密碼復雜度配置通過修改 /etc/pam.d/system-auth 來實現,主要關注這一行

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=

之前使用 pam_cracklib.so 模塊,后來改成了 pam_pwquality.so ,后者是完全兼容前者的也可通過修改 /etc/security/pwquality.conf 文件來修改密碼復雜度

retry=N: 定義修改密碼時,在滿足需求之前可以重試的次數

authtok_type: 默認設置密碼時的提示信息是:New password:,如果設置authtok_type=FOO,則提示信息是:New FOO password

minlen=N: 新密碼的最小長度

minclass=N: 四種類型的字符串中至少要包含幾種(數字、大寫字母、小寫字母、特殊符號)

dcredit=N: 當N>0時表示新密碼中數字出現的最多次數;當N<0時表示新密碼中數字出現最少次數

ucredit=N: 當N>0時表示新密碼中大寫字母出現的最多次數;當N<0時表示新密碼中大寫字母出現最少次數

lcredit=N: 當N>0時表示新密碼中小寫字母出現的最多次數;當N<0時表示新密碼中小寫字母出現最少次數

ocredit=N: 當N>0時表示新密碼中特殊字符出現的最多次數;當N<0時表示新密碼中特殊字符出現最少次數

maxrepeat=N: 拒絕包含多于N個相同連續字符的密碼,比如("aaaaaa")這種

maxsequence=N: 拒絕包含長于N的單調字符序列的密碼,比如("12345")這種。(建議使用maxclassrepeat代替)

maxclassrepeat=N: 新密碼中允許的最大連續相同類型的字符,限制比如("123456")這種

enforce_for_root: 如果用戶更改密碼是root,則模塊將在失敗檢查時返回錯誤。默認情況下,此選項處于關閉狀態,只打印有關失敗檢查的消息,但root仍可以更改密碼。不要求root用戶輸入舊密碼,因此不會執行比較舊密碼和新密碼的檢查

gecoscheck: 是否檢查密碼中包含要修改用戶的用戶名,比如用戶名是poorops,則密碼中不能包含poorops

我測試復雜度配置大于0無效,即配置了dcredit=3,但是密碼中包含大于3個的數字也是可以的

登錄失敗策略參數詳解

even_deny_root: 表示也限制root用戶

deny: 表示設置普通用戶和root用戶連續錯誤登陸的最大次數,超過最大次數,則鎖定該用戶

unlock_time: 表示設定普通用戶鎖定后,多少時間后解鎖,單位是秒

root_unlock_time: 表示設定root用戶鎖定后,多少時間后解鎖,單位是秒

命令歷史顯示效果

  997  2025-01-13 18:01:52 192.168.71.190 root history | tail

  998  2025-01-13 18:01:52 192.168.71.190 root history

  999  2025-01-13 18:01:52 192.168.71.190 root cat /etc/profile

 1000  2025-01-13 18:01:52 192.168.71.190 root exit

 1001  2025-01-13 18:01:05 192.168.71.190 root history | tail

 1002  2025-01-13 18:01:37 192.168.71.190 root vim /etc/profile

 1003  2025-01-13 18:01:47 192.168.71.190 root source /etc/profile

 1004  2025-01-13 18:01:50 192.168.71.190 root exit

 1005  2025-01-13 18:01:57 192.168.71.190 root history | tail

 

藍隊云官網上擁有完善的技術支持庫可供參考,大家可自行查閱,更多技術問題,可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。

更多技術知識,藍隊云期待與你一起探索。

提交成功!非常感謝您的反饋,我們會繼續努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務,我們很需要您進一步的反饋信息:

在文檔使用中是否遇到以下問題: