Centos7 安全優化指令碼

2022-07-10 07:06:13 字數 4028 閱讀 2012

#!/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之間 ...