1. 程式人生 > >Linux 服務器安全加固

Linux 服務器安全加固

帶來 優秀 通過 linux中 地方 流行 fir 網絡服務 deny

一、summary

隨著互聯網的發展,隱私以及安全被大家看的越來越重視,越來越多的重要交易正在通過網絡完成,與此同時數據被損壞、截取和修改的風險也在增加。優秀的系統應當擁有完善的安全措施,應當足夠堅固、能夠抵抗來自Internet的侵襲,這正是Linux之所以流行並且成為Internet骨幹力量的主要原因。但是,如果你不適當地運用Linux的安全工具,它們反而會埋下隱患。配置拙劣的安全系統會產生許多問題。

然而這也是我的薄弱之處,希望以本文告誡自己,時刻加強安全防護意識,不要存任何僥幸心理,中間可能會有遺漏的地方,也希望大家能留言告知,讓我們所有運維的兄弟們都可以輕松的了解。

二、 用戶帳號安全

2.1 設定密碼策略

#!/bin/bash
# Function: 實現對用戶密碼策略的設定,如密碼最長有效期等
read -p  "設置密碼最多可多少天不修改:" A
read -p  "設置密碼修改之間最小的天數:" 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 "已設置好密碼策略......"

2.2 、對用戶密碼強度的設定

打開 /etc/pam.d/sysetm-auth文件 ,修改如下。我們設置新密碼不能和舊密碼相同,同時新密碼至少8位,還要同時包含大字母、小寫字母和數字。

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

2.3 、對用戶的登錄次數進行限制

打開/etc/pam.d/sshd文件,在#%PAM-1.0的下面,加入下面的內容,表示當密碼輸入錯誤達到3次,就鎖定用戶150秒,如果root用戶輸入密碼錯誤達到3次,鎖定300秒。鎖定的意思是即使密碼正確了也登錄不了。

auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300

2.4、禁止ROOT用戶遠程登錄

2.5、設置歷史命令保存條數和賬戶超時時間

#! /bin/bash
read -p "設置歷史命令保存條數:" E
read -p "設置賬戶自動註銷時間:" F
sed -i ‘/^HISTSIZE/c\HISTSIZE=‘$E‘‘ /etc/profile
sed -i ‘/^HISTSIZE/a\TMOUT=‘$F‘‘ /etc/profile

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

在linux中,有一個默認的管理組 wheel。在實際生產環境中,即使我們有系統管理員root的權限,也不推薦用root用戶登錄。一般情況下用普通用戶登錄就可以了,在需要root權限執行一些操作時,再su登錄成為root用戶。但是,任何人只要知道了root的密碼,就都可以通過su命令來登錄為root用戶,這無疑為系統帶來了安全隱患。所以,將普通用戶加入到wheel組,被加入的這個普通用戶就成了管理員組內的用戶。然後設置只有wheel組內的成員可以使用su命令切換到root用戶。

#! /bin/bash
# Function: 修改配置文件,使得只有wheel組的用戶可以使用 su 權限
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  

2.7、對Linux賬戶進行管理

#! /bin/bash
# Function: 對系統中的用戶做檢查,加固系統
echo "系統中有登錄權限的用戶有:"
awk -F: ‘($7=="/bin/bash"){print $1}‘ /etc/passwd
echo "********************************************"
echo "系統中UID=0的用戶有:"
awk -F: ‘($3=="0"){print $1}‘ /etc/passwd
echo "********************************************"
N=`awk -F: ‘($2==""){print $1}‘ /etc/shadow|wc -l`
echo "系統中空密碼用戶有:$N"
if [ $N -eq 0 ];then
 echo "恭喜你,系統中無空密碼用戶!!"
 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 "恭喜,系統中已經沒有空密碼用戶了!"
 else
echo "系統中還存在空密碼用戶:$M"
 fi
fi

三、網絡服務安全

四、系統設置安全

五、文件系統安全

未完待續。。。。

Linux 服務器安全加固