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

Linux系統(tǒng)的簡單安全加固

2025-01-13 10:48:03 3467

Linux系統(tǒng)的簡單安全加固

歡迎來到藍(lán)隊(duì)云技術(shù)小課堂,每天分享一個(gè)技術(shù)小知識。

 

適用于 CentOS 7

---

- name: secure linux

  hosts: all

  ignore_errors: true

  vars:

    pass_max_days: 90  # 密碼過期時(shí)間

    # 密碼復(fù)雜度相關(guān)

    minlen: 8         # 最少位數(shù)

    minnum: 1         # 數(shù)字出現(xiàn)的最少次數(shù),配置為0表示不校驗(yàn)是否包含數(shù)字

    minupper: 1       # 大寫字母出現(xiàn)的最少次數(shù),配置為0表示不校驗(yàn)是否包含大寫字母

    minlower: 1       # 小寫字母出現(xiàn)的最少次數(shù),配置為0表示不校驗(yàn)是否包含小寫字母

    minspecial: 1     # 特殊字符出現(xiàn)的最少次數(shù),配置為0表示不校驗(yàn)是否包含特殊字符

    # 用戶連續(xù)登錄幾次失敗就鎖定用戶

    user_deny: 3

    # 用戶鎖定時(shí)長,單位秒

    user_lock_time: 300

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

    tmout: 900

    # 歷史命令保留條數(shù)

    his_size: 10000

    # 服務(wù)相關(guān)

    stop_and_disable_services: ["telnet", "bluetooth"] # 要禁用的服務(wù)

    start_and_enable_services: ["rsyslog", "auditd"]   # 要啟動(dòng)的服務(wù)

    # 內(nèi)核參數(shù)修改

    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: 配置密碼復(fù)雜度

    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: 停止服務(wù)

    service:

      name: "{{ item }}"

      state: stopped

    loop: "{{ stop_and_disable_services }}"

    register: stop_service

 

  - name: 禁用服務(wù)

    service:

      name: "{{ item }}"

      enabled: no

    loop: "{{ stop_and_disable_services }}"

    when: stop_service is succeeded

 

  - name: 啟動(dòng)服務(wù)

    service:

      name: "{{ item }}"

      state: started

    loop: "{{ start_and_enable_services }}"

    register: start_service

 

  - name: 配置開機(jī)自啟動(dòng)

    service:

      name: "{{ item }}"

      enabled: yes

    loop: "{{ start_and_enable_services }}"

    when: start_service is succeeded

 

  - name: 延長日志保存時(shí)間

    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: 添加會話超時(shí)鎖定

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

 

  - name: 修改內(nèi)核參數(shù)

    command:

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

    loop: "{{ kernel_params }}"

 

  - name: 修改歷史命令保存條數(shù)

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

 

  - name: 修改歷史命令顯示內(nèi)容

    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 ''

 

密碼復(fù)雜度參數(shù)詳解

密碼復(fù)雜度配置通過修改 /etc/pam.d/system-auth 來實(shí)現(xiàn),主要關(guān)注這一行

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 文件來修改密碼復(fù)雜度

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

authtok_type: 默認(rèn)設(shè)置密碼時(shí)的提示信息是:New password:,如果設(shè)置authtok_type=FOO,則提示信息是:New FOO password

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

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

dcredit=N: 當(dāng)N>0時(shí)表示新密碼中數(shù)字出現(xiàn)的最多次數(shù);當(dāng)N<0時(shí)表示新密碼中數(shù)字出現(xiàn)最少次數(shù)

ucredit=N: 當(dāng)N>0時(shí)表示新密碼中大寫字母出現(xiàn)的最多次數(shù);當(dāng)N<0時(shí)表示新密碼中大寫字母出現(xiàn)最少次數(shù)

lcredit=N: 當(dāng)N>0時(shí)表示新密碼中小寫字母出現(xiàn)的最多次數(shù);當(dāng)N<0時(shí)表示新密碼中小寫字母出現(xiàn)最少次數(shù)

ocredit=N: 當(dāng)N>0時(shí)表示新密碼中特殊字符出現(xiàn)的最多次數(shù);當(dāng)N<0時(shí)表示新密碼中特殊字符出現(xiàn)最少次數(shù)

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

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

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

enforce_for_root: 如果用戶更改密碼是root,則模塊將在失敗檢查時(shí)返回錯(cuò)誤。默認(rèn)情況下,此選項(xiàng)處于關(guān)閉狀態(tài),只打印有關(guān)失敗檢查的消息,但root仍可以更改密碼。不要求root用戶輸入舊密碼,因此不會執(zhí)行比較舊密碼和新密碼的檢查

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

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

登錄失敗策略參數(shù)詳解

even_deny_root: 表示也限制root用戶

deny: 表示設(shè)置普通用戶和root用戶連續(xù)錯(cuò)誤登陸的最大次數(shù),超過最大次數(shù),則鎖定該用戶

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

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

命令歷史顯示效果

  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

 

藍(lán)隊(duì)云官網(wǎng)上擁有完善的技術(shù)支持庫可供參考,大家可自行查閱,更多技術(shù)問題,可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。

更多技術(shù)知識,藍(lán)隊(duì)云期待與你一起探索。

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

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

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

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