Linux系統加固:如何有效管理系統賬號

Linux系統加固:如何有效管理系統賬號

    • 1.1 口令重復次數限制
    • 1.2 避免系統存在uid相同的賬號
    • 1.3 空密碼的帳戶
    • 1.4 口令復雜度
    • 1.5 口令生存期
    • 1.6 登錄失敗次數鎖定策略


💖The Begin💖點點關注,收藏不迷路💖

在Linux系統中,系統賬號的安全性至關重要。惡意用戶或黑客可能利用弱密碼、未使用的賬號或其他漏洞來入侵系統。

因此,加固系統賬號是保護系統安全的重要一環。本文將介紹一些有效的方法來管理和加固Linux系統賬號,以提高系統的安全性。

1.1 口令重復次數限制

口令重復次數限制是一種安全策略,用于限制用戶在一定時間內重復使用相同的密碼。這個策略的目的是防止用戶頻繁地在短時間內更改密碼,從而增加系統的安全性。通過限制口令重復次數,可以減少密碼被惡意破解或盜用的風險。

在實際應用中,口令重復次數限制通常會結合密碼歷史記錄功能一起使用。當用戶更改密碼時,系統會檢查新密碼是否與之前使用過的密碼相同,如果相同則不允許使用。同時,系統還會記錄用戶的密碼歷史,以便在限制口令重復次數時進行比對。

檢查點:

檢查是否設置口令重復次數限制。

加固步驟:

1、執行備份

cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth.bak

2、創建文件/etc/security/opasswd用于存儲舊密碼,并設置權限

 touch /etc/security/opasswdchown root:root /etc/security/opasswdchmod 600 /etc/security/opasswd

在這里插入圖片描述

3、修改策略設置

 vi /etc/pam.d/system-auth

建立/etc/security/opasswd后,即可在配置文件中的pam_unix模塊后面添加參數remember=N來開始記錄舊密碼。這個參數N的作用是指定系統要記住的舊密碼數量,N代表要記住的舊密碼數量。

查看配置文件/etc/pam.d/system-auth ,查看類似password sufficient pam_unix.so所在行是否存在remember=5,如果沒有則新增,例如:

password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5

在這里插入圖片描述

檢查加固結果:

將系統認證配置文件system-auth中的包含"password"關鍵字的行,使用grep命令篩選出包含"password"關鍵字的行并輸出。

if ([ -f /etc/redhat-release ] && [ -f /etc/pam.d/system-auth ]);
then FILE=/etc/pam.d/system-auth
cat $FILE |sed '/^#/d'|sed '/^$/d'|grep password
fi

在這里插入圖片描述

1.2 避免系統存在uid相同的賬號

檢查點:

查看文件/etc/passwd,檢查是否存在uid相同的賬號。

加固步驟:

1、檢查系統中的UID情況

cat /etc/passwd | cut -d: -f1,3

這個命令的含義是:

cat /etc/passwd:顯示/etc/passwd文件的內容,該文件包含了系統中所有用戶的信息。

cut -d: -f1,3:使用冒號作為分隔符,提取每行中的第1列(用戶名)和第3列(UID)

這個命令會輸出系統中所有用戶的用戶名和對應的UID。

執行該命令后,可以看到類似以下的輸出:

root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
operator:11
games:12
ftp:14
nobody:99
systemd-network:192
dbus:81
polkitd:999
sshd:74
postfix:89
zyl:1000

2、檢查是否存在相同UID的賬號

for venus_test in `cat /etc/passwd|awk -F: '{print $3}'|uniq -d`
do
for venus_test1 in `cat /etc/passwd|grep "^\s*[^:]*\:[^:]*\:$venus_test"|awk -F: '{print $1}'`
do
echo "The same uuid account:"$venus_test1;
done
done

在這里插入圖片描述

或者使用:

ut -d: -f3 /etc/passwd | sort | uniq -d

這個命令的含義是:

cut -d: -f3 /etc/passwd:使用冒號作為分隔符,提取/etc/passwd文件中每行的第3列(UID)。

sort:對提取出來的UID進行排序。

uniq -d:查找重復的行(即相同的UID),并只顯示重復的行。

如果輸出了重復的UID,則表示系統中存在相同UID的賬號。

3、處理相同UID的賬號

如果發現系統中存在相同UID的賬號,需要根據實際情況進行處理。一般情況下,可以通過修改賬號的UID或者刪除重復的賬號來解決這個問題。

1、修改賬號的UID可以使用usermod命令,例如:usermod -u <new_uid> <username>2、刪除重復的賬號可以使用userdel命令,例如:userdel <username>3、其他命令:
1、#useradd username    #創建賬號
2、#userdel username     #刪除賬號
3、#passwd username    #設置密碼修改權限

這里修改上面輸出的ftp用戶(ftp:14)為例:

usermod -u 15 ftp##檢查修改結果
cat /etc/passwd | cut -d: -f1,3

在這里插入圖片描述

如果當前修改用戶有進程占用的話(如zyl用戶),會有如下提示:

usermod: user zyl is currently used by process 1562

這個錯誤提示表明在嘗試修改用戶的UID時,系統發現該用戶當前正在被一個進程(PID為1562)使用,因此無法修改。這種情況下,需要先停止使用該用戶的進程,然后再嘗試修改用戶的UID。

查找并停止使用該用戶的進程:

1、使用以下命令查找使用用戶"zyl"的進程:
ps -u zyl2、根據輸出結果找到相關的進程ID(PID),然后使用kill命令停止這些進程:
kill -9 <PID>

在這里插入圖片描述

1.3 空密碼的帳戶

檢查點:

系統中口令為空的賬號個數為0則合規,否則不合規。

執行以下命令查看系統中是否存在空口令賬號:

awk -F: '( $2 == "" ) { print $1 }' /etc/shadow

在這里插入圖片描述

如果執行該命令后有輸出,表示系統中存在口令為空的賬號。如果輸出為空,則表示系統中不存在口令為空的賬號。

加固步驟:

1、執行備份

cp -p /etc/passwd /etc/passwd_bak
cp -p /etc/shadow /etc/shadow_bak

2、為口令為空的帳戶設置滿足密碼復雜度的密碼

passwd username

1.4 口令復雜度

查看配置文件/etc/pam.d/system-auth,是否存在如下配置:

 password requisite  pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=8

設置了口令復雜度則合規,否則不合規。這個配置指定了使用pam_cracklib.so模塊來實現口令復雜度要求。

下面是各個參數的含義:

try_first_pass:如果前一個認證模塊已經成功驗證了用戶的口令,那么嘗試使用用戶提供的口令。

retry=3:在用戶輸入錯誤口令時,允許重試的次數為3次。

dcredit=-1:至少包含一個數字(digit)。

lcredit=-1:至少包含一個小寫字母(lowercase)。

ucredit=-1:至少包含一個大寫字母(uppercase)。

ocredit=-1:至少包含一個特殊字符(other)。

minlen=8:口令最小長度為8個字符。

根據這個配置,用戶在設置口令時必須滿足以下要求:

1、口令長度至少為8個字符。

2、必須包含至少一個數字、一個小寫字母、一個大寫字母和一個特殊字符。

加固步驟:

1、編輯配置文件/etc/pam.d/system-auth,
vi /etc/pam.d/system-auth2、在文件中找到如下內容password requisite  pam_cracklib.so,在其內容后面追加,例如:
password requisite  pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=8    
#至少包含一個數字、一個小寫字母、一個大寫字母、一個特殊字符、且密碼長度>=8

這樣的口令復雜度設置可以增強系統的安全性,防止用戶設置過于簡單的口令。

1.5 口令生存期

口令生存期是指用戶在一定時間內必須更改其口令的頻率。這有助于增強系統的安全性,因為定期更改口令可以減少口令泄露和被猜測的風險。

在Linux系統中,口令生存期通常由PAM(Pluggable Authentication Modules)模塊來管理。可以在/etc/login.defs文件中查看口令生存期的相關設置。

PASS_MAX_DAYS不大于180天,PASS_MIN_DAYS至少為1天,PASS_WARN_AGE不小于28天則合規,否則不合規

加固步驟:

1、執行備份cp -p /etc/login.defs /etc/login.defs_bak2、修改策略設置,編輯文件/etc/login.defs,在文件中加入如下內容(如果存在則修改,不存在則添加)
PASS_MAX_DAY          180
PASS_MIN_DAYS	       1
PASS_WARN_AGE         28

在這里插入圖片描述

下面是各個參數的含義:

PASS_MAXDAYS:指定口令的最大有效天數,超過這個天數后用戶必須更改口令。

PASS_MIN_DAYS:指定用戶更改口令之間的最小天數間隔。

PASS_WARN_AGE:在口令過期前多少天提醒用戶更改口令。

加固結果檢查:

cat /etc/login.defs |grep -v "^[[:space:]]*#"|grep -E '^\s*PASS_MAX_DAYS|^\s*PASS_MIN_DAYS|^\s*PASS_WARN_AGE'

在這里插入圖片描述

1.6 登錄失敗次數鎖定策略

檢測方法

1、查看/etc/pam.d/system-auth文件是否存在類似如下配置:

cat /etc/pam.d/system-authauth        required      pam_faillock.so preauth audit deny=5 even_deny_root unlock_time=60

2、查看/etc/login.defs文件,檢查LOGIN_RETRIES和LOGIN_TIMEOUT配置:

cat /etc/login.defsLOGIN_RETRIES  5
LOGIN_TIMEOUT 60

判定依據:
1、/etc/pam.d/system-auth文件配置:deny=5
2、/etc/pam.d/system-auth文件配置:unlock_time=60
3、/etc/login.defs文件配置:LOGIN_RETRIES 5
4、/etc/login.defs文件配置:LOGIN_TIMEOUT 60

條件1和條件2同時滿足或條件3和條件4同時滿足則合規;否則不合規。

加固步驟:

1、備份文件

cp /etc/login.defs /etc/login.defs.bakcp /etc/pam.d/system-auth /etc/pam.d/system-auth_bak

2、編輯 /etc/login.defs 文件,

vi /etc/login.defs  ## 添加以下類似配置:LOGIN_RETRIES  5
LOGIN_TIMEOUT 60

在這里插入圖片描述

或者:

vi /etc/pam.d/system-auth 添加以下類似配置:

auth        required      pam_faillock.so preauth audit deny=5 even_deny_root unlock_time=60

在這里插入圖片描述


💖The End💖點點關注,收藏不迷路💖

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/711340.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711340.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711340.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

為什么軟考報名人數越來越多?

2020年軟考報名人數404666人&#xff0c;廣東省報考人數超過14萬人。 ●2021年軟考通信考試報名人數突破100萬人&#xff0c;估計軟考有90多萬。 ●2022年軟考通信考試共129萬人&#xff0c;估計軟考占了120多萬人。 ●2023年軟考具體報名人數沒有公布&#xff0c;但工業和信…

【AI+應用】aliyun的EMO圖生視頻模型引起的思考如何做AI數字人

昨天2 月 29 日消息&#xff0c;2 月 28 日&#xff0c;阿里巴巴集團智能計算研究院日前上線了一款新的 AI 圖片 - 音頻 - 視頻模型技術 EMO&#xff0c;官方稱其為 " 一種富有表現力的音頻驅動的肖像視頻生成框架 "。據悉&#xff0c;用戶只需要提供一張照片和一段任…

springboot235基于SpringBoot的房屋交易平臺的設計與實現

房屋交易平臺設計與實現 摘 要 信息數據從傳統到當代&#xff0c;是一直在變革當中&#xff0c;突如其來的互聯網讓傳統的信息管理看到了革命性的曙光&#xff0c;因為傳統信息管理從時效性&#xff0c;還是安全性&#xff0c;還是可操作性等各個方面來講&#xff0c;遇到了互…

死記硬背spring bean 的生命周期

1.bean的生命周期 我們平常經常使用類似于new Object()的方式去創建對象&#xff0c;在這個對象沒有任何引用的時候&#xff0c;會被gc給回收掉。而對于spring而言&#xff0c;它本身存在一個Ioc容器&#xff0c;就是用來管理對象的&#xff0c;而對象的生命周期也完全由這個容…

Spring之AOP入門

1.AOP介紹 AOP&#xff08;Aspect Oriented Programming&#xff09;面向切面編程&#xff0c;一種編程范式&#xff0c;指導開發者如何組織程序結構&#xff0c;作用是在不改動原始設計的基礎上為其進行功能增強 2.AOP的核心概念 概念定義SpringAOP&#xff08;注解開發&am…

性能測試-反編譯jar

方法一&#xff0c;使用jd-gui 1、官網下載&#xff1a;Java Decompiler 2、下載mac版本后&#xff0c;解壓&#xff0c;如下所示&#xff1a; 雙擊 JD_GUI&#xff0c;提示錯誤&#xff0c;如下所示&#xff1a; 已經安裝了java 17&#xff0c;是java 1.8以上版本&#xff0…

Unity中URP下實現水體(水面高光)

文章目錄 前言一、實現高光反射原理1、原理&#xff1a;2、公式&#xff1a; 二、實現1、定義 _SpecularColor 作為高光反射的顏色2、定義 _SpecularIntensity 作為反射系數&#xff0c;控制高光反射的強度3、定義 _Smoothness 作為高光指數&#xff0c;用于模型高光范圍4、模擬…

ADO.NET+kafka實現發布訂閱保存到數據庫

??????ADO.NETkafka實現發布訂閱保存到數據庫 在.NET應用程序中&#xff0c;ADO.NET通常用于數據庫操作&#xff0c;而Apache Kafka是一個分布式流處理平臺&#xff0c;它允許發布&#xff08;Producer&#xff09;和訂閱&#xff08;Consumer&#xff09;消息流。使用A…

深入理解c指針(四)

目錄 六、assert斷言 七、指針的使用和傳址調用 1、strlen的模擬實現 2、傳值調用和傳址調用 3、練習-字符串逆序 在深入理解c指針&#xff08;三&#xff09;提到&#xff0c;在實際使用指針前可以檢測其是否指到有效空間&#xff1a; #include<stdio.h> int mai…

度量與評估客戶體驗:以客戶為中心的方法和工具

在當今的市場環境中&#xff0c;客戶體驗已經成為企業成功的關鍵因素。一個優秀的客戶體驗不僅能夠提升客戶滿意度&#xff0c;增強客戶忠誠度&#xff0c;還能夠吸引新的潛在客戶。然而&#xff0c;要實現這一目標&#xff0c;企業首先需要了解如何度量和評估客戶體驗。本文將…

day08_分類品牌管理商品規格管理商品管理

文章目錄 1 分類品牌管理1.1 菜單添加1.2 表結構介紹1.3 頁面制作1.4 品牌列表加載1.4.1 后端接口BrandControllerBrandServiceBrandMapperBrandMapper.xml 1.4.2 前端對接brand.jscategoryBrand.vue 1.5 分類數據加載1.6 列表查詢1.6.1 需求說明1.6.2 后端接口需求分析Categor…

linux nasm匯編中調用printf不報錯,但調用scanf報錯。拋出了分段錯誤(核心轉儲)

當我寫了如下匯編時 ; nasm -f elf64 -g -F dwarf charsin.asm ; gcc charsin.o -no-pie -o charsin ; ld -o eatclib eatclib.o ; gdb eatclib[SECTION .data]SPrompt db Enter string data, followed by Enter: ,0IPrompt db Enter an integer value, followed by Enter: ,1…

Python進階教學一

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 一、函數1.高階函數2.返回函數3.匿名函數4.裝飾器 二、實例1.類和實例2.限制訪問3. 繼承和多態4.實例屬性和類屬性 一、函數 1.高階函數 1.1 map1.2 reduce1.3 fi…

Dsco Dropship EDI需求分析

供應商要想從Dsco處通過EDI獲取訂單&#xff0c;需要部署自己的EDI系統&#xff0c;與Dsco的EDI供應商CommerceHub 建立連接&#xff0c;分為兩個方向&#xff1a; 1.從CommerceHub 的 Dsco 平臺獲取 EDI 850 采購訂單 2.向Dsco發送庫存&#xff08;846&#xff09;、訂單狀態…

MySQL的內外連接

1.內連接 內連接實際上就是利用 WHERE 子句&#xff08;連接條件&#xff09;對兩張表形成的笛卡爾積&#xff08;內連接&#xff09;進行篩選&#xff0c;我們之前學習的查詢基本都是內連接&#xff0c;也是在實際生產中被使用得最多的連接查詢。 另外內連接還可以使用下面的…

Java Swing游戲開發學習7

內容來自RyiSnow視頻講解 這一節實現的是背景音樂和音效的播放。 在這里&#xff0c;背景音樂和音效所用的音頻文件均為wav格式文件。Java SDK默認支持的格式有限&#xff0c;默認不支持mp3格式音樂。 背景音樂、拾取鑰匙、拾取靴子、開門分別有對應的音頻文件。 作者的實現…

2024-02學習筆記

1.當我們向Set集合中添加一個已經存在的元素時 當我們向Set集合中添加一個已經存在的元素時&#xff0c;Set集合會如何處理呢&#xff1f;實際上&#xff0c;Set集合不會將重復的元素添加到集合中。當我們向Set集合中添加一個元素時&#xff0c;Set集合會首先判斷該元素是否已…

Ubuntu-22.04安裝MegaCLI并查看MegaRAID的配置

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、MegaRAID二、安裝MegaCLI1.Ubuntu-18.042.Ubuntu-22.043.Ubuntu-20.044.CentOS-75.其它發行版 三、使用MegaCLI1.查看所有適配器信息2.查看所有物理磁盤信息…

華為配置WLAN高密業務示例

配置WLAN高密業務示例 組網圖形 圖1 配置高密WLAN環境網絡部署組網圖 業務需求組網需求數據規劃配置思路配置注意事項操作步驟配置文件 業務需求 體育場由于需要接入用戶數量很大&#xff0c;AP間部署距離較小&#xff0c;因此AP間的干擾較大&#xff0c;可能導致用戶上網網…

新王炸:文生視頻Sora模型發布,能否引爆AI芯片熱潮

前言 前方高能預警&#xff0c;Sora來襲&#xff01; 淺析Sora的技術亮點 語言模型中構建關鍵詞聯系 視頻素材分解為時空碎片 擴散模型DiT Not for play, But change world! OpenAI的宏大目標 未來已來&#xff0c;只是尚未流行 Sora的成本與OpenAI的7萬億美金豪賭 算…