Linux系統安全設置

根據此文章寫了一個自動檢測腳本linux

腳本位置:https://gitee.com/wdze/linux_security_settingsgit

1、帳號管理vim

一、用戶密碼安全

檢測方法:bash

(1)是否存在以下相似的簡單用戶密碼配置,好比:root/root, test/test, root/root1234
(2)執行:more /etc/login.defs,檢查PASS_MAX_DAYS/ PASS_MIN_DAYS/PASS_WARN_AGE參數
(3)執行:awk -F: '($2 == "") { print $1 }' /etc/shadow, 檢查是否存在空口令賬號

建議安全標準:服務器

(1)在/etc/login.defs文件中配置:
PASS_MAX_DAYS   90        #新建用戶的密碼最長使用天數
PASS_MIN_DAYS   0          #新建用戶的密碼最短使用天數
PASS_WARN_AGE   14        #新建用戶的密碼到期提早提醒天數
(2)不容許存在空口令賬號

二、密碼強度ssh

檢測方法:ide

/etc/pam.d/system-auth文件中是否對pam_cracklib.so的參數進行了正確設置。

建議安全標準:工具

密碼長度至少8位,幷包括數字、小寫字母、大寫字母和特殊符號4種中至少3種
建議在/etc/pam.d/system-auth 文件中配置:
password  requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=1

三、用戶鎖定策略ui

檢測方法:

/etc/pam.d/system-auth文件中是否對pam_tally.so的參數進行了正確設置。

建議安全標準:

設置連續輸錯10次密碼,賬號鎖定5分鐘,
使用命令「vim /etc/pam.d/system-auth」修改配置文件,添加
auth required pam_tally.so onerr=fail deny=10 unlock_time=300
注:解鎖用戶 faillog  -u  <用戶名>  -r

四、禁止root用戶遠程登陸

檢測方法:

執行:more /etc/securetty,檢查Console參數

建議安全標準:

建議在/etc/securetty文件中配置:CONSOLE = /dev/tty01

五、檢查是否存在root外的UID爲0用戶

檢測方法:

執行:awk -F: '($3 == 0) { print $1 }' /etc/passwd

建議安全標準:

UID爲0的任何用戶都擁有系統的最高特權,保證只有root用戶的UID爲0,返回值包括「root」之外的條目,則低於安全要求;

六、檢查root環境變量中是否包含777的目錄

檢測方法:

執行:echo $PATH | egrep '(^|:)(\.|:|$)',檢查是否包含父目錄,
執行:find `echo $PATH | tr ':' ' '` -type d \( -perm -002 -o -perm -020 \) -ls,檢查是否包含組目錄權限爲777的目錄

建議安全標準:

確保root用戶的系統路徑中不包含父目錄,在非必要的狀況下,不該包含組權限爲777的目錄

七、遠程鏈接的安全性配置

檢測方法:

執行:find  / -name  .netrc,檢查系統中是否有.netrc文件,
執行:find  / -name  .rhosts ,檢查系統中是否有.rhosts文件

建議安全標準:

如無必要,刪除這兩個文件

八、用戶的umask安全配置

檢測方法:

執行:more /etc/profile  more /etc/csh.login  more /etc/csh.cshrc  more /etc/bashrc檢查是否包含umask值且umask=027

建議安全標準:

建議設置用戶的默認umask=027

九、重要目錄和文件的權限

檢測方法:

執行如下命令檢查目錄和文件的權限設置狀況:
ls -l /etc/
ls -l /etc/rc.d/init.d/
ls -l /etc/inetd.conf	
ls -l /etc/passwd
ls -l /etc/shadow
ls -l /etc/group
ls -l /etc/security
ls -l /etc/services
ls -l /etc/rc*.d

建議安全標準:

對於重要目錄,建議執行以下相似操做:
chmod -R 750 /etc/rc.d/init.d/*
這樣只有root能夠讀、寫和執行這個目錄下的腳本。

十、查找未受權的SUID/SGID文件

檢測方法:

for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do
find $PART \( -perm -04000 -o -perm -02000 \) -type f -xdev -print
done

建議安全標準:

若存在未受權的文件,則低於安全要求
建議常常性的對比suid/sgid文件列表,以便可以及時發現可疑的後門程序

十一、檢查任何人都有寫權限的目錄

檢測方法:

for PART in `awk '($3 == "ext2" || $3 == "ext3") \
{ print $2 }' /etc/fstab`; do
find $PART -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print
done

建議安全標準:

若返回值非空,則低於安全要求

十二、查找任何人都有寫權限的文件

檢測方法:

for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do
find $PART -xdev -type f \( -perm -0002 -a ! -perm -1000 \) -print
done

建議安全標準:

若返回值非空,則低於安全要求

1三、檢查沒有屬主的文件

檢測方法:

for PART in `grep -v ^# /etc/fstab | awk '($6 != "0") {print $2 }'`; do
find $PART -nouser -o -nogroup -print
done
注意:不用管「/dev」目錄下的那些文件。

建議安全標準:

若返回值非空,則低於安全要求
發現沒有屬主的文件每每就意味着有******你的系統了。不能容許沒有主人的文件存在。若是在系統中發現了沒有主人的文件或目錄,先查看它的完整性,若是一切正常,給它一個主人。有時候卸載程序可能會出現一些沒有主人的文件或目錄,在這種狀況下能夠把這些文件和目錄刪除掉

1四、檢查異常隱含文件

檢測方法:

用「find」程序能夠查找到這些隱含文件。例如:
find  / -name ".. *" -print -xdev
find  / -name "…*" -print -xdev | cat -v
同時也要注意象「.xx」和「.mail」這樣的文件名的。(這些文件名看起來都很象正常的文件名)

建議安全標準:

若返回值非空,則低於安全要求
在系統的每一個地方都要查看一下有沒有異常隱含文件(點號是起始字符的,用「ls」命令看不到的文件),由於這些文件多是隱藏的***工具或者其它一些信息(口令破解程序、其它系統的口令文件,等等)。在UNIX下,一個經常使用的技術就是用一些特殊的名,如:「…」、「..    」(點點空格)或「..^G」(點點control-G),來隱含文件或目錄。

1五、登陸超時設置

檢測方法:

使用命令「cat /etc/profile |grep TMOUT」查看TMOUT是否設置

建議安全標準:

使用命令「vi /etc/profile」修改配置文件,添加「TMOUT=」行開頭的註釋,建議設置爲「TMOUT=180」,即超時時間爲3分鐘

1六、遠程登陸設置

檢測方法:

查看SSH服務狀態:
service ssh status
查看telnet服務狀態:
service telnet status

建議安全標準:

SSH服務狀態查看結果爲:running 
telnet服務狀態查看結果爲:not running/unrecognized

1七、Root遠程登陸限制

檢測方法:

使用命令「cat /etc/ssh/sshd_config」查看配置文件
(1)檢查是否容許root直接登陸
檢查「PermitRootLogin 」的值是否爲no
(2)檢查SSH使用的協議版本
檢查「Protocol」的值

建議安全標準:

(1)不容許root直接登陸
設置「PermitRootLogin 」的值爲no
設置後root用戶須要使用普通用戶遠程登陸後su進行系統管理
(2)修改SSH使用的協議版本
設置「Protocol」的版本爲2

1八、關閉沒必要要的服務

檢測方法:

使用命令「who -r」查看當前init級別
使用命令「chkconfig --list <服務名>」查看全部服務的狀態

建議安全標準:

如有沒必要要的系統在當前級別下爲on,則低於安全要求
使用命令「chkconfig --level <init級別> <服務名> on|off|reset」設置服務在個init級別下開機是否啓動

2、日誌審計

一、syslog登陸事件記錄

檢測方法:

執行命令:more /etc/syslog.conf
查看參數authpriv值

建議安全標準:

若未對全部登陸事件都記錄,則低於安全要求

二、Syslog.conf的配置審覈

檢測方法:

執行:more /etc/syslog.conf,查看是否設置了下列項:
kern.warning;*.err;authpriv.none\t@loghost
*.info;mail.none;authpriv.none;cron.none\t@loghost
*.emerg\t@loghost
local7.*\t@loghost

建議安全標準:

若未設置,則低於安全要求
建議配置專門的日誌服務器,增強日誌信息的異地同步備份

3、系統文件

一、系統core dump狀態

檢測方法:

執行:more /etc/security/limits.conf 檢查是否包含下列項:
* soft core 0
* hard core 0

建議安全標準:

若不存在,則低於安全要求
core dump中可能包括系統信息,易被***者利用,建議關閉
相關文章
相關標籤/搜索