#!/bin/bash系統安全優化#當前版本僅支援centos7的系統
if [ `whoami` != '
root
' ]; then
echo -e "
\e[1;31m 請使用root執行... \e[1;31m
"exit 1fi
system_version=`lsb_release -i|awk''
`kernel_version=`uname -r|awk -f'.'
''`release_version=`lsb_release -r|awk -f"
[ \t]+
"+ ''`
#終端超時時間
tmout=600
#密碼最小長度
pass_min_len=8
#密碼最大有效期
pass_max_days=90
#修改密碼的最小間隔時間
pass_min_days=2
centos7_system_security_strengthening()
cp /etc/login
.defs
cp /etc/pam.d/system-auth
cp /etc/pam.d/sshd
cp /etc/pam.d/login
cp /etc/ssh/sshd_config
cp /etc/pam.d/password-auth
cp /etc/pam.d/system-auth
sed -i "
/`grep 'histsize=' /etc/profile`/a tmout=$
" /etc/profile
sed -ri "
s#^(pass_max_days)([\t ]+)([0-9]+)#\1\2$#g
" /etc/login
.defs
sed -ri "
s#^(pass_min_len)([\t ]+)([0-9]+)#\1\2$#g
" /etc/login
.defs
sed -ri "
s#^(pass_min_days)([\t ]+)([0-9]+)#\1\2$#g
" /etc/login
.defs
#啟用登入失敗處理功能
echo
"password requisite pam_cracklib.so retry=3 difok=2 minlen=8 lcredit=-1 dcredit=-1
" >> /etc/pam.d/system-auth
echo
"auth required pam_tally2.so onerr=fail deny=3 unlock_time=60 even_deny_root root_unlock_time=60
" >> /etc/pam.d/system-auth
echo
"auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
" >> /etc/pam.d/sshd
echo
"auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60
" >> /etc/pam.d/login
#sshd
sed -ri "
s:^(#loglevel)([ ]+)(.*):loglevel\2 info:g
" /etc/ssh/sshd_config
sed -ri "
s:^(#)(clientaliveinterval)([ ]+)([0-9]+):\2\3900:g
" /etc/ssh/sshd_config
sed -ri "
s:^(#)(clientalivecountmax)([ ]+)([0-9]+):\2\30:g
" /etc/ssh/sshd_config
sed -ri "
s:^(#)(permitemptypasswords)([ ]+)([a-z]+):\2\3\4:g
" /etc/ssh/sshd_config
sed -ri "
s:^(#)(maxauthtries)([ ]+)([0-9]+):\2\34:g
" /etc/ssh/sshd_config
if [ `grep -i protocol /etc/ssh/sshd_config|wc -l` -eq 0 ]; then
sed -i "
20a protocol 2
" /etc/ssh/sshd_config
else
sed -ri "
s#^(protocol)([ ]+)([0-9])#\1\22#g
" /etc/ssh/sshd_config
fi#重啟sshd
systemctl restart sshd
#檔案許可權修改
chown root:root /etc/passwd /etc/shadow /etc/group /etc/gshadow
chmod
644 /etc/group
chmod
644 /etc/passwd
chmod
400 /etc/shadow
chmod
400 /etc/gshadow
#開啟位址空間布局隨機化
sysctl -w kernel.randomize_va_space=2
#強制使用者不重用最近5個使用的密碼,降低密碼猜測攻擊風險
sed -ri "
s#^(password sufficient)(.*)#\1\2 remember=5#g
" /etc/pam.d/password-auth
sed -ri "
s#^(password sufficient)(.*)#\1\2 remember=5#g
" /etc/pam.d/system-auth
#檢查密碼長度和密碼是否使用多種字元型別
sed -ri "
s:^(# )(minlen = )([0-9]):\210:g
" /etc/security/pwquality.conf
sed -ri "
s:^(# )(minclass = )([0-9]):\23:g
" /etc/security/pwquality.conf
#核心優化
}centos_reset()
is_system_version()
case $1
inreset)
if [ -f /etc/profile.security_default.bak -a -f /etc/login.defs.security_default.bak -a -f /etc/pam.d/system-auth.security_default.bak -a -f /etc/pam.d/login.security_default.bak -a -f /etc/ssh/sshd_config.security_default.bak -a -f /etc/pam.d/password-auth.security_default.bak -a -f /etc/pam.d/system-auth.security_default.bak ]; then
centos_reset
else
echo -e "
\e[1;31m 安全優化備份檔案不存在... \e[1;31m
"exit 2fi
;; '')
is_system_version
;;*)
echo -e "
\e[1;31m 僅允許傳輸reset與空內容 \e[1;31m
"exit 5;;
esac
ssh安全優化
最近裝了nessus,先掃瞄的當然是自己的伺服器 2的低階漏洞,1個中等的 全是ssh的 ciphers 預設使用這些 aes128 ctr,aes192 ctr,aes256 ctr,arcfour256,arcfour128,aes128 cbc,3des cbc 漏洞提示arcfour,arc...
web安全優化
在進行介面訪問之前沒有實際的介面位址,介面位址是動態變化的,前端在訪問指定界面前先去獲取介面的動態位址,然後根據獲取的位址去訪問真正的介面。1.獲取動態路徑介面,將生成的路徑進行快取,等待在真正介面中取出進行校驗 responsebody needlogin public resultgetseco...
Tomcat安全優化
1 telnet管理埠保護 強制 類別配置內容及說明 標準配置 備註telnet管理埠保護 1.修改預設的8005管理埠為不易猜測的埠 大於1024 2.修改shutdown指令為其他字串 1.以上配置項的配置內容只是建議配置,可以按照服務實際情況進行合理配置,但要求埠配置在8000 8999之間 ...