2018-12-28 Linux服務器安全加固

對未經(jīng)過安全認證的RPM包進行安全檢查

rpm -qp xxx.rpm --scripts 查看rpm包中的腳本信息

設定密碼策略

修改 /etc/login.defs 配置文件
PASS_MAX_DAYS 90 密碼最長有效期
PASS_MIN_DAYS 10 密碼修改之間最小的天數(shù)
PASS_MIN_LEN 8 密碼長度
PASS_WARN_AGE 7 口令失效前多少天開始通知用戶修改密碼

設置密碼策略

腳本實現(xiàn)設定密碼策略

#伶椿! /bin/bash
# Function: 實現(xiàn)對用戶密碼策略的設定鸭轮,如密碼最長有效期等
read -p  "設置密碼最多可多少天不修改:" A
read -p  "設置密碼修改之間最小的天數(shù):" B
read -p  "設置密碼最短的長度:" C
read -p  "設置密碼失效前多少天通知用戶:" D
sed -i '/^PASS_MAX_DAYS/c\PASS_MAX_DAYS   '$A'' /etc/login.defs
sed -i '/^PASS_MIN_DAYS/c\PASS_MIN_DAYS   '$B'' /etc/login.defs
sed -i '/^PASS_MIN_LEN/c\PASS_MIN_LEN     '$C'' /etc/login.defs
sed -i '/^PASS_WARN_AGE/c\PASS_WARN_AGE   '$D'' /etc/login.defs
echo "已設置好密碼策略......"
腳本實現(xiàn)設定密碼策略

對用戶密碼強度的設定

打開 /etc/pam.d/sysetm-auth 文件 浇雹,修改如下稿蹲。我們設置新密碼不能和舊密碼相同,同時新密碼至少8位,還要同時包含大字母舌稀、小寫字母和數(shù)字
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1

對用戶密碼強度的設定

  • difok= :此選項用來定義新密碼中必須要有幾個字符和舊密碼不同
  • minlen=:此選項用來設置新密碼的最小長度
  • ucredit= :此選項用來設定新密碼中可以包含的大寫字母的最大數(shù)目啊犬。-1 至少一個
  • lcredit=:此選項用來設定新密碼中可以包含的小寫字母的最大數(shù)目
  • dcredit=:此選項用來設定新密碼中可以包含的數(shù)字的最大數(shù)目
    注意:這個密碼強度的設定只對普通用戶有限制作用,root用戶無論修改自己的密碼還是修改普通用戶的時候壁查,不符合強度設置依然可以設置成功
image.png

腳本實現(xiàn)對用戶密碼強度的設定

#觉至! /bin/bash
# Function: 對用戶密碼強度的設定,新密碼不能和舊密碼相同睡腿,同時新密碼至少8位语御,還要同時包含大字母、小寫字母和數(shù)字
sed -i '/pam_pwquality.so/c\password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=  difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1' /etc/pam.d/system-auth

對用戶的登錄次數(shù)進行限制

有一些攻擊性的軟件是專門采用暴力破解密碼的形式反復進行登錄嘗試席怪,對于這種情況应闯,我們可以調(diào)整用戶登錄次數(shù)限制,使其密碼輸入3次后自動鎖定挂捻,并且設置鎖定時間碉纺,在鎖定時間內(nèi)即使密碼輸入正確也無法登錄
打開 /etc/pam.d/sshd 文件,在 #%PAM-1.0 的下面刻撒,加入下面的內(nèi)容骨田,表示當密碼輸入錯誤達到3次,就鎖定用戶150秒声怔,如果root用戶輸入密碼錯誤達到3次态贤,鎖定300秒。鎖定的意思是即使密碼正確了也登錄不了
auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300

對用戶的登錄次數(shù)進行限制

當輸入3次密碼錯誤時

image.png

pam_tally2 查看被鎖定的用戶
pam_tally2 --reset -u username 將被鎖定的用戶解鎖

image.png

腳本設置對用戶的登錄次數(shù)做限制

#醋火! /bin/bash
# Function: 對用戶登錄輸入錯誤密碼次數(shù)做限制
n=`cat /etc/pam.d/sshd | grep "auth required pam_tally2.so "|wc -l`
if [ $n -eq 0 ];then
sed -i '/%PAM-1.0/a\auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300' /etc/pam.d/sshd
fi

禁止ROOT用戶遠程登錄

禁止ROOT用戶遠程登錄 悠汽。打開 /etc/ssh/sshd_config

禁止ROOT用戶遠程登錄

腳本設置禁止ROOT用戶遠程登錄

#! /bin/bash
# Function: 禁止ROOT用戶遠程登錄
sed -i '/PermitRootLogin/c\PermitRootLogin no'  /etc/ssh/sshd_config

設置歷史命令保存條數(shù)和賬戶超時時間

設置賬戶保存歷史命令條數(shù)芥驳,超時時間 柿冲。打開 /etc/profile ,修改如下

image.png

設置只有指定用戶組才能使用su命令切換到root用戶

在linux中,有一個默認的管理組 wheel兆旬。在實際生產(chǎn)環(huán)境中姻采,即使我們有系統(tǒng)管理員root的權(quán)限,也不推薦用root用戶登錄爵憎。一般情況下用普通用戶登錄就可以了,在需要root權(quán)限執(zhí)行一些操作時婚瓜,再su登錄成為root用戶宝鼓。但是,任何人只要知道了root的密碼巴刻,就都可以通過su命令來登錄為root用戶愚铡,這無疑為系統(tǒng)帶來了安全隱患。所以,將普通用戶加入到wheel組沥寥,被加入的這個普通用戶就成了管理員組內(nèi)的用戶碍舍。然后設置只有wheel組內(nèi)的成員可以使用su命令切換到root用戶。
比如邑雅,我們將普通用戶xie加入wheel組片橡。 usermod -G wheel xie
然后,我們修改配置文件 /etc/pam.d/su 淮野,將這行的注釋給去掉

image.png

然后去 /etc/login.defs 末尾加入 SU_WHEEL_ONLY yes 即可捧书。

image.png

當 tom 用戶使用su命令切換到root用戶時,會提示拒絕權(quán)限

image.png

使用腳本設置配置文件

#骤星! /bin/bash
# Function: 修改配置文件经瓷,使得只有wheel組的用戶可以使用 su 權(quán)限
sed -i '/pam_wheel.so use_uid/c\auth            required        pam_wheel.so use_uid ' /etc/pam.d/su
n=`cat /etc/login.defs | grep SU_WHEEL_ONLY | wc -l`
if [ $n -eq 0 ];then
echo SU_WHEEL_ONLY yes >> /etc/login.defs
fi

對Linux賬戶進行管理

  • 使用命令 userdel -r 用戶名 刪除不必要的賬號
  • 使用命令 passwd -l 用戶名 鎖定不必要的賬號
  • 使用命令 awk -F: '($7=="/bin/bash"){print $1}' /etc/passwd 查看具有登錄權(quán)限的用戶
  • 使用命令 awk -F: '($3==0)' /etc/passwd 查看UID為0的賬號,UID為0的用戶會自- 動切換到root用戶洞难,所以危害很大
  • 使用命令 awk -F: '($2=="")' /etc/shadow 查看空口令賬號舆吮,如果存在空口令用戶的話必須設置密碼
    使用腳本對賬戶進行管理
#! /bin/bash
# Function: 對系統(tǒng)中的用戶做檢查,加固系統(tǒng)
echo "系統(tǒng)中有登錄權(quán)限的用戶有:"
awk -F: '($7=="/bin/bash"){print $1}' /etc/passwd
echo "********************************************"
echo "系統(tǒng)中UID=0的用戶有:"
awk -F: '($3=="0"){print $1}' /etc/passwd
echo "********************************************"
N=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`
echo "系統(tǒng)中空密碼用戶有:$N"
if [ $N -eq 0 ];then
 echo "恭喜你队贱,系統(tǒng)中無空密碼用戶I健!"
 echo "********************************************"
else
 i=1
 while [ $N -gt 0 ]
 do
    None=`awk -F: '($2==""){print $1}' /etc/shadow|awk 'NR=='$i'{print}'`
    echo "------------------------"
    echo $None
    echo "必須為空用戶設置密碼B锻病呐伞!"
    passwd $None
    let N--
 done
 M=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`
 if [ $M -eq 0 ];then
  echo "恭喜,系統(tǒng)中已經(jīng)沒有空密碼用戶了慎式!"
 else
echo "系統(tǒng)中還存在空密碼用戶:$M"
 fi
fi

對重要的文件進行鎖定伶氢,即使ROOT用戶也無法刪除

chattr 改變文件或目錄的擴展屬性
lsattr 查看文件目錄的擴展屬性
chattr +i /etc/passwd /etc/shadow //增加屬性
chattr -i /etc/passwd /etc/shadow //移除屬性
lsattr /etc/passwd /etc/shadow

image.png

使用腳本對重要文件進行鎖定

#! /bin/bash
# Function: 鎖定創(chuàng)建用戶和組的文件,使之無法對用戶和組進行操作瘪吏!
read -p "警告:此腳本運行后將無法添加刪除用戶和組Q⒎馈!確定輸入Y掌眠,取消輸入N蕾盯;Y/N:" i
case $i in
      [Y,y])
            chattr +i /etc/passwd
            chattr +i /etc/shadow
            chattr +i /etc/group
            chattr +i /etc/gshadow
            echo "鎖定成功!"
;;
      [N,n])
            chattr -i /etc/passwd
            chattr -i /etc/shadow
            chattr -i /etc/group
            chattr -i /etc/gshadow
            echo "取消鎖定成功@侗级遭!"
;;
       *)
            echo "請輸入Y/y or  N/n"
esac

一個腳本對上面所有的合并了

#! /bin/bash
# Function:對賬戶的密碼的一些加固
read -p  "設置密碼最多可多少天不修改:" A
read -p  "設置密碼修改之間最小的天數(shù):" B
read -p  "設置密碼最短的長度:" C
read -p  "設置密碼失效前多少天通知用戶:" D
sed -i '/^PASS_MAX_DAYS/c\PASS_MAX_DAYS   '$A'' /etc/login.defs
sed -i '/^PASS_MIN_DAYS/c\PASS_MIN_DAYS   '$B'' /etc/login.defs
sed -i '/^PASS_MIN_LEN/c\PASS_MIN_LEN     '$C'' /etc/login.defs
sed -i '/^PASS_WARN_AGE/c\PASS_WARN_AGE    '$D'' /etc/login.defs
 
echo "已對密碼進行加固,新密碼不得和舊密碼相同渺尘,且新密碼必須同時包含數(shù)字挫鸽、小寫字母,大寫字母E父丢郊!"
sed -i '/pam_pwquality.so/c\password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=  difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1' /etc/pam.d/system-auth
 
echo "已對密碼進行加固盔沫,如果輸入錯誤密碼超過3次,則鎖定賬戶7阖摇架诞!"
n=`cat /etc/pam.d/sshd | grep "auth required pam_tally2.so "|wc -l`
if [ $n -eq 0 ];then
sed -i '/%PAM-1.0/a\auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300' /etc/pam.d/sshd
fi
 
echo  "已設置禁止root用戶遠程登錄!干茉!"
sed -i '/PermitRootLogin/c\PermitRootLogin no'  /etc/ssh/sshd_config
 
read -p "設置歷史命令保存條數(shù):" E
read -p "設置賬戶自動注銷時間:" F
sed -i '/^HISTSIZE/c\HISTSIZE='$E'' /etc/profile
sed -i '/^HISTSIZE/a\TMOUT='$F'' /etc/profile
 
echo "已設置只允許wheel組的用戶可以使用su命令切換到root用戶谴忧!"
sed -i '/pam_wheel.so use_uid/c\auth            required        pam_wheel.so use_uid ' /etc/pam.d/su
n=`cat /etc/login.defs | grep SU_WHEEL_ONLY | wc -l`
if [ $n -eq 0 ];then
echo SU_WHEEL_ONLY yes >> /etc/login.defs
fi
 
echo "即將對系統(tǒng)中的賬戶進行檢查...."
echo "系統(tǒng)中有登錄權(quán)限的用戶有:"
awk -F: '($7=="/bin/bash"){print $1}' /etc/passwd
echo "********************************************"
echo "系統(tǒng)中UID=0的用戶有:"
awk -F: '($3=="0"){print $1}' /etc/passwd
echo "********************************************"
N=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`
echo "系統(tǒng)中空密碼用戶有:$N"
if [ $N -eq 0 ];then
 echo "恭喜你,系統(tǒng)中無空密碼用戶5戎俏蛮!"
 echo "********************************************"
else
 i=1
 while [ $N -gt 0 ]
 do
    None=`awk -F: '($2==""){print $1}' /etc/shadow|awk 'NR=='$i'{print}'`
    echo "------------------------"
    echo $None
    echo "必須為空用戶設置密碼!上遥!"
    passwd $None
    let N--
 done
 M=`awk -F: '($2==""){print $1}' /etc/shadow|wc -l`
 if [ $M -eq 0 ];then
  echo "恭喜搏屑,系統(tǒng)中已經(jīng)沒有空密碼用戶了!"
 else
echo "系統(tǒng)中還存在空密碼用戶:$M"
 fi
fi
 
echo "即將對系統(tǒng)中重要文件進行鎖定粉楚,鎖定后將無法添加刪除用戶和組"
read -p "警告:此腳本運行后將無法添加刪除用戶和組@绷怠!確定輸入Y模软,取消輸入N伟骨;Y/N:" i
case $i in
      [Y,y])
            chattr +i /etc/passwd
            chattr +i /etc/shadow
            chattr +i /etc/group
            chattr +i /etc/gshadow
            echo "鎖定成功!"
;;
      [N,n])
            chattr -i /etc/passwd
            chattr -i /etc/shadow
            chattr -i /etc/group
            chattr -i /etc/gshadow
            echo "取消鎖定成功H家臁携狭!"
;;
       *)
            echo "請輸入Y/y or  N/n"
esac
image.png

建立日志服務器

日志服務器的好處在于,每個工作服務器將自己的日志信息發(fā)送給日志服務器進行集中管理回俐,即使有人入侵了服務器并將自己的登錄信息悄悄刪除逛腿,但由于日志信息實時與日志服務器同步,保證了日志的完整性仅颇。以備工作人員根據(jù)日志服務器信息對服務器安全進行評測单默。


建立日志服務器
  • 客戶端的配置:
    打開 /etc/rsyslog.conf 配置文件
    你想把哪種類型的日志文件發(fā)送給服務端,你就把他原來的對應的目錄改成: @192.168.10.20
客戶端配置

如果你想吧所有的日志文件都發(fā)送給服務器的話忘瓦,你可以在文件最后加上: . @@192.168.10.20:514

image.png

然后重啟rsyslog服務: systemctl restart rsyslog

  • 服務器端的配置:
    打開 /etc/rsyslog.conf 配置文件搁廓,將這里的注釋給去掉
服務器端配置

然后重啟rsyslog服務:systemctl restart rsyslog
開啟防火墻: firewall-cmd --add-port=514/tcp
這樣客戶端的相應的日志文件就會保存在服務器端的相應的文件中。

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耕皮,一起剝皮案震驚了整個濱河市境蜕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凌停,老刑警劉巖汽摹,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異苦锨,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門舟舒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拉庶,“玉大人,你說我怎么就攤上這事秃励∈险蹋” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵夺鲜,是天一觀的道長皆尔。 經(jīng)常有香客問我,道長币励,這世上最難降的妖魔是什么慷蠕? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮食呻,結(jié)果婚禮上流炕,老公的妹妹穿的比我還像新娘。我一直安慰自己仅胞,他們只是感情好每辟,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著干旧,像睡著了一般渠欺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上椎眯,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天挠将,我揣著相機與錄音,去河邊找鬼盅视。 笑死捐名,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的闹击。 我是一名探鬼主播镶蹋,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼赏半!你這毒婦竟也來了贺归?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤断箫,失蹤者是張志新(化名)和其女友劉穎拂酣,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仲义,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡婶熬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年剑勾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赵颅。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虽另,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饺谬,到底是詐尸還是另有隱情捂刺,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布募寨,位于F島的核電站族展,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拔鹰。R本人自食惡果不足惜仪缸,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望格郁。 院中可真熱鬧腹殿,春花似錦、人聲如沸例书。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽决采。三九已至自沧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間树瞭,已是汗流浹背拇厢。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晒喷,地道東北人孝偎。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像凉敲,于是被迫代替她去往敵國和親衣盾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容