Linux基線檢查與安全加固方式
安全加固
Linux安全加固
賬戶管理
一、口令鎖定策略
檢查操作步驟
查看配置文件:
more /etc/pam.d/password-auth
查看是否存在如下內(nèi)容:
auth required pam_tally2.so deny=5 onerr=fail unlock time=300 even_deny_root=5 root unlock_time=600
(連續(xù)認(rèn)證5次會鎖定賬戶,鎖定300秒,root的話,5次失敗,鎖定600秒)
基線符合性判定依據(jù)
用戶連續(xù)認(rèn)證失敗次數(shù)設(shè)置為5次即合規(guī),否則不合規(guī)。
安全加固方案
參考配置操作
1.執(zhí)行備份
cp -p /etc/pam.d/password-auth /etc/pam.d/password-auth_bak
2.修改策略設(shè)置,編輯文件
vim /etc/pam.d/password-auth
增加以下內(nèi)容
auth required pam_tally2.so deny=5 onerr=fail unlock time=300 even_deny_root=5 root unlock_time=600
注意:unlock_time和root_unlock_time單位為秒。
驗證成功:
備注
PAM通過提供一些動態(tài)鏈接庫和一套統(tǒng)一的AP1,將系統(tǒng)提供的服務(wù) 和該服務(wù)的認(rèn)證方式分開,使得系統(tǒng)管理員可以靈活地根據(jù)需要給不同的服務(wù)配置不同的認(rèn)證方式而無需更改服務(wù)程序,同時也便于向系統(tǒng)中添加新的認(rèn)證手段。
root下可查看因為驗證登錄失敗的賬戶
pam_tally2 -u
如果需要解鎖的話,需要以root輸入
pam_tally2 -u baiyun -r
二、口令生存期
檢查操作步驟
查看文件:
more /etc/login.defs
檢查如下參數(shù)值是否滿足要求
- PASS_MAX_DAYS用戶的密碼最長使用天數(shù)不大于90
- PASS_WARN_AGE #用戶的密碼到期提前提醒天數(shù)為7
基線符合性判定依據(jù)
- PASS_MAX_DAYS不大于90
- PASS_WARN_AGE等于7即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
1.執(zhí)行備份:
cp -p /etc/login.defs /etc/login.desfs_bak
2.修改策略設(shè)置,編輯/etc/login.defs在文件中加入如下內(nèi)容(存在的話修改,不存在則添加):
PASS_MAX_DAYS 90 PASS_WARN_AGE 7
chage -M 90 -W 7 baiyun
//修改已有用戶的口令生存期和過期告警天數(shù)
未加固前
加固后
三、口令復(fù)雜度
檢查操作步驟
執(zhí)行命令:
grep -E '^minlen|^minclass' /etc/security/pwquality.conf
查看是否有返回結(jié)果。
基線符合性判定依據(jù)
有返回結(jié)果且返回結(jié)果等于或者大于minlen = 8,minclass =3 即合規(guī),
否則不合規(guī)。
安全加固方案
1.執(zhí)行備份:
cp -p /etc/security/pwquality.conf /etc/security/pwquality.conf_bak
2.執(zhí)行命令:
authconfig --passminlen=8 --passminclass=3 --update
#至少包含數(shù)字、小寫字母、大寫字母、特殊字符中的三項,且密碼長度>=8
3、執(zhí)行命令
chage -d 0 username
#強(qiáng)制指定的用戶下次登錄修改密碼
四、檢查密碼重用是否受限制
檢查操作步驟
查看文件:
cat /etc/pam.d/system-auth
找到
password sufficient pam_unix.so 這行,檢查未尾是否有 remember參數(shù)
基線符合性判定依據(jù)
有remember參數(shù)且參數(shù)的值大于等于5即合規(guī),否則不合規(guī)。
安全加固方案
參考配置操作
1.執(zhí)行備份:
cp -p /etc/pam.d/system-auth
2.執(zhí)行命令:
vi /etc/pam.d/system-auth
編輯該文件,找到password sufficient pam_unix.so這行在末尾添加remember參數(shù)他的值為5,原來的內(nèi)容不用更改,只在末尾加remember=5即可,他表示禁止使用最近用過的5個密碼(已使用過的密碼會被保存在 /etc/security/opasswd下面)
未加固前
加固后
五、檢查是否存在除root之外UID為0的用戶
檢查操作步驟
執(zhí)行命令:
awk -F: '($3 == 0){ print $1}' /etc/passwd
查看返回值。
基線符合性性判定依據(jù)
返回值包括“root”以外的條目,則低于安全要求
安全加固方案
參考配置操作
1、執(zhí)行備份:
cp -p /etc/passwd cp -p /etc/shadow
2、執(zhí)行命令:
userdel -r username
刪除返回值中root除外的其他用戶。
或者使用命令:
usermod -u uid username
為他們分配新的UID
六、禁止存在空密碼的帳戶
檢查操作步驟
執(zhí)行以下命令查看系統(tǒng)中是否存在空口令賬號#
awk -F: '( $2 ==""){ print $1} /etc/shadow
基線符合性性判定依據(jù)
執(zhí)行命令后沒有返回值即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
1、為帳戶設(shè)置滿足密碼復(fù)雜度的密碼
#passwd username
服務(wù)管理
一、禁止SSH空密碼用戶登錄
檢查操作步驟
執(zhí)行命令:
more /etc/ssh/sshd_config
查看 PermitEmptyPasswords 配置情況
基線符合性性判定依據(jù)
PermitEmptyPasswords 的值設(shè)置為no即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
1、執(zhí)行備份:
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
2、執(zhí)行命令:
vi /etc/ssh/sshd_config
找到 PermitEmptyPasswords 將其設(shè)置為no后保存并退出
3、執(zhí)行命令:
systemctl restrat sshd
重啟服務(wù)使配置生效
未配置前
這個雖然是no,但是被注釋掉了,不生效
加固后
二、SSH多次登錄失敗后鎖定用戶
檢查操作步驟
執(zhí)行命令:
more /etc/pam.d/sshd
查看是否存在
auth required pam_tally2.sodeny=5 unlock_time=300
內(nèi)容基線符合性性判定依據(jù)
存在該行且 deny小于等于5,unlock_time大于等于300,否則不合規(guī)
安全加固方案
參考配置操作
1、執(zhí)行備份:
cp -p /etc/pam.d/sshd /etc/pam.d/sshd bak
2、執(zhí)行命令:
vi /etc/pam.d/sshd
在文件開頭添加一行,內(nèi)容為
auth requiredpam_tally2.so deny=5 unlock time=300
如要對root用戶也進(jìn)行限制,在剛添加的內(nèi)容后繼續(xù)添加:
even deny_root=5 root_unlock time=1200
重啟生效
systemctl restart sshd
未加固
加固后
三、限制root用戶遠(yuǎn)程登錄
檢查操作步驟
執(zhí)行命令:
more /etc/ssh/sshd_config
查看PermitRootLogin 參數(shù)的值
基線符合性性判定依據(jù)
PermitRootLogin參數(shù)值為no且該行沒有被注釋即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
1、執(zhí)行備份:
cp -p /etc/ssh/sshd_config /etc/ssh
2、執(zhí)行命令:
vi /etc/ssh/sshd_config
找到 PermitRootLogin 將其后方的 yes改為 no 并刪除前方的 # 取消該行的注釋
3、釋執(zhí)行命令:
systemctl restart sshd
重啟服務(wù)使其生效
未加固前
加固后
四、檢查ssh使用的端口
檢查操作步驟
執(zhí)行命令:
more /etc/ssn/sshd_config
查看Port 參數(shù)的值
基線符合性性判定依據(jù)
Port參數(shù)值不是默認(rèn)值 (22) 且該行沒有被注即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
1、執(zhí)行命令:
vi /etc/ssh/sshd_config
找到 Port 將其后方的 22 改為其他端口號,然后刪除前方的 # 取消該行的注釋 (端口號最好挑10000-65535之間的端口號,10000以下容易被系統(tǒng)或一些特殊軟件占用)
2、執(zhí)行命令:
semanage port -a -t ssh_port_t -p tcp 22233
修改后的端口號,將修改后的端口添加到SELinux開放給ssh使用的端口
3、執(zhí)行命令:
firewall-cmd --zone=public --add-port=22233/tcp --permanent
防火墻放行剛修改的 ssh 端口號
4、執(zhí)行命令:
systemctl restart sshd;systemctl restart firewalld
重啟ssh和防火墻,使配置生效
未加固
加固后
五、設(shè)置登錄超時自動注銷
檢查操作步驟
執(zhí)行命令:
more /etc/profile
查看是否有export TMOUT=180
基線符合性性判定依據(jù)
存在export TMOUT且他的值小于等于180即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
1、執(zhí)行備份 :
cp - p /etc/profile /etc/profile_bak
2、執(zhí)行命令:
vi /etc/profile
在該文件末尾添加
export TMOUT=180
或者將原來的值修改為180
注意=號前后不要有空格。
權(quán)限管理
一、檢查默認(rèn)umask值
補(bǔ)充:
umask 027是一種文件權(quán)限掩碼,它用于控制新創(chuàng)建的文件和目錄的默認(rèn)權(quán)限。
umask 027指定了在創(chuàng)建文件和目錄時,文件權(quán)限將減去2個位的可寫權(quán)限和一個位的可執(zhí)行權(quán)限。
也就是說,如果創(chuàng)建一個新文件,權(quán)限將是所有者權(quán)限為rw-r-----(所有者可讀可寫,組可讀,其他用戶沒有任何權(quán)限),如果創(chuàng)建一個新目錄,權(quán)限將是所有者權(quán)限為rwxr-x---(所有者可讀可寫可執(zhí)行,組可讀可執(zhí)行,其他用戶沒有任何權(quán)限)。
檢查操作步驟
執(zhí)行命令:
more /etc/profile
查看該文件末尾是否設(shè)置umask值
基線符合性性判定依據(jù)
/etc/profile文件末尾存在umask 027,則合規(guī),否則為不合規(guī)。
安全加固方案
參考配置操作
1、執(zhí)行備份:
cp -p /etc/profile /etc/profile_bak
2、執(zhí)行命令:
vi /etc/profile
編輯文件,在該文件末尾添加
umask 027
3、執(zhí)行以下命令讓配置生效:
source /etc/profile
二、檢查重要目錄和文件的權(quán)限
檢查操作步驟
執(zhí)行命令:
ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/hosts.allow /etc/hosts.allow /etc/services /etc/ssh/sshd_config
查看文件權(quán)限
基線符合性性判定依據(jù)
- /etc/passwd文件的權(quán)限<=644
- /etc/shadow文件的權(quán)限<=600
- /etc/group文件的權(quán)限<=644
- /etc/gshadow文件的權(quán)限<=600
- /etc/hosts.deny文件的權(quán)限<=644
- /etc/hosts.allow文件的權(quán)限<=644
- /etc/services文件的權(quán)限<=644
- /etc/ssh/sshd_config文件的權(quán)限<=600
以上條件同時滿足則合規(guī),否則不合規(guī)
安全加固方案
參考配置提作
1、執(zhí)行命令:
ls -l /etc/passwd /etc/shadow /etc/group /etc/ashadow/etc/hosts.allow /etc/hostsallow /etc/services /etc/ssh/sshd_config
查看文件權(quán)限
2、對不符合要求的文件使用chmod命令修改權(quán)限,如
chmod 644 /etc/passwd
三、設(shè)置限制可以su為root的用戶
檢查操作步驟
執(zhí)行命令:
more /etc/pam.d/su
找到
auth required pam_wheel.souse_uid
查看該行是否存在且是否被注釋
基線符合性性判定依據(jù)
auth required pam_wheel.so use_uid
存在且未被注釋即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
執(zhí)行備份:
1、
cp - p /etc/pam.d/su /etc/pam.d/su_bak
2、執(zhí)行命令:
vi /etc/pam.d/su
找到 auth required pam_wheel.souse_uid 刪除該行前面的 # 使其生效,如果該行不存在則在文件末尾添加該行。
3、將需要su為root的用戶使用命令:
usermod -G wheel username
加入 wheel 組,該用戶即可su為root用戶。如果需要將某個用戶移出wheel組,可使用命令:
gpasswd -d username wheel
日志管理
一、檢查rsyslog服務(wù)啟用狀況以及對登錄事件的記錄
補(bǔ)充:
- rsyslog是一個開源的系統(tǒng)日志服務(wù),可用于Linux和Unix系統(tǒng)中收集、存儲和處理系統(tǒng)日志。
- rsyslog可以通過網(wǎng)絡(luò)協(xié)議和文件系統(tǒng)接收來自各種設(shè)備和應(yīng)用程序的日志信息,并將其輸出到文件、數(shù)據(jù)庫、遠(yuǎn)程日志服務(wù)器等不同的目標(biāo)。
檢查操作步驟
執(zhí)行命令:
more /etc/rsyslog.conf
查看authpriv的值
基線符合性性判定依據(jù)
authpriv值為authpriv.* /var/log/secure即合規(guī)注:/var/log/secure為可變項,否則不合規(guī)
安全加固方案
參考配置操作
1、執(zhí)行備份:
cp - p /etc/rsyslog.conf /etc/rsyslog.conf_bak
2、執(zhí)行命令:
systemctl enable rsyslog
添加開機(jī)自啟動
3、執(zhí)行命令:
systemctl start rsyslog
啟動服務(wù)
4、執(zhí)行命令:
vi/etc/rsyslog.conf
查看authpriv值 將其設(shè)置為 authpriv.*/var/log/secure#將authpirv 的任何級別的信息記錄到/var/log/secure 文件中
5、執(zhí)行命令:
systemctl restart rsyslog
二、檢查是否啟用記錄定時任務(wù)行為日志功能
檢查操作步驟
執(zhí)行命令:
more /etc/rsyslog.conf
查看 cron 的值
基線符合性判定依據(jù)
corn值為cron.* 即合規(guī),否則不合規(guī)注: var/log/cron為可變項
安全加固方案
參考配置操作
1、執(zhí)行備份:
cp -p /etc/rsyslog.conf /etc/rsyslog.conf_bak
2、執(zhí)行命令 :
vi /etc/rsyslog.conf
查看 cron 的值,將其設(shè)置為cron.* /var/log/cron# 即將 cron 的任何級別的信息記錄到 /ar/log/cron 文件中
3、執(zhí)行命令:
systemctl restart rsyslog
重啟 rsyslog 使配置生效
合規(guī)
三、查看SSH LogLevel設(shè)置是否為INFO
補(bǔ)充:
SSH LogLevel設(shè)置為INFO是用來指定在SSH連接建立并進(jìn)行時記錄的信息級別的。
INFO級別記錄大量有關(guān)連接的詳細(xì)信息,包括身份驗證,所使用的密鑰,認(rèn)證的結(jié)果等。
這些信息對診斷問題和了解連接的詳細(xì)情況非常有用,但可能會產(chǎn)生大量的日志。
因此,在平時使用SSH時,通常將LogLevel設(shè)置為更低的級別(如ERROR或WARNING),以避免生成過多的日志,并且只在需要排除連接問題時將其調(diào)整為更高的級別。
檢查操作步驟
執(zhí)行命令:more vi /etc/ssh/sshd_config 找到 LogLevel 查看設(shè)置的級別是否為INFO
基線符合性性判定依據(jù)
LogLevel 的級別是INFO 且該行未被注釋即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
1、進(jìn)行備份
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak(log)
2、執(zhí)行命令:
vi /etc/ssh/sshd_config
找到 LogLevel 將其設(shè)置為 INFO,如果該行被注釋,i還應(yīng)刪掉該行前方的 #
3、執(zhí)行命令:
systemctl restart sshd
重啟ssh服務(wù)使其生效
四、是否將 /var/log/messages 文件設(shè)置為只可追加
補(bǔ)充:
`isattr`是一個Linux系統(tǒng)中的命令,用于檢查指定文件或目錄中是否包含擴(kuò)展屬性(extended attributes)。
擴(kuò)展屬性是在Linux文件系統(tǒng)上添加的一種元數(shù)據(jù)形式,可以包含文件或目錄的其他信息,例如訪問控制列表和文件所有者。
檢查操作步驟
執(zhí)行命令:Isattr /var/log/messages 查看該文件屬性第六位是否為a
基線符合性性判定依據(jù)
為a即合規(guī),否則不合規(guī)
安全加固方案
參考配置操作
執(zhí)行命令:
lsattr var/log/messages
查看該文件屬性第六位是否為a不為a則執(zhí)行命令:
chattr +a /var/log/messages
將該文件的屬性修改為只可追加
未添加只可追加前
設(shè)置只可追加后
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解linux系統(tǒng)目錄sys,tmp,usr,var!
在本篇文章里小編給大家詳解了關(guān)于linux系統(tǒng)目錄,sys,tmp,usr,var!的相關(guān)知識點內(nèi)容,有興趣的朋友們參考下。2019-06-06Linux中文件描述符fd與文件指針FILE*互相轉(zhuǎn)換實例解析
這篇文章主要介紹了Linux中文件描述符fd與文件指針FILE*互相轉(zhuǎn)換實例解析,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-01-01