1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
| #!/bin/bash
##################################################################
#注释掉系统无用用户
sed -i '/^sync/s/^/#/' /etc/passwd
sed -i '/^halt/s/^/#/' /etc/passwd
sed -i '/^news/s/^/#/' /etc/passwd
sed -i '/^uucp/s/^/#/' /etc/passwd
sed -i '/^operator/s/^/#/' /etc/passwd
sed -i '/^games/s/^/#/' /etc/passwd
sed -i '/^gopher/s/^/#/' /etc/passwd
sed -i '/^smmsp/s/^/#/' /etc/passwd
sed -i '/^nfsnobody/s/^/#/' /etc/passwd
sed -i '/^nobody/s/^/#/' /etc/passwd
sed -i '/^lp/s/^/#/' /etc/passwd
#################################################################
#修改密码过期时间
DIR=/etc
##/etc/login.defs ##PASS_MAX_DAYS
cp -p /etc/login.defs /etc/login.defs_bak
echo "正在修改/etc/login.defs..." sleep 1 max=cat $DIR/login.defs |grep ^PASS_MAX_DAYS |awk '{print $2}' if [ $max != 90 ];then sed -i '/^PASS_MAX_DAYS/s/'"$max"'/90/g' $DIR/login.defs fi
##PASS_MIN_DAYS min=cat $DIR/login.defs |grep ^PASS_MIN_DAYS |awk '{print $2}' if [ $min != 0 ];then sed -i '/^PASS_MIN_DAYS/s/'"$min"'/0/g' $DIR/login.defs fi
##PASS_MIN_LEN len=cat $DIR/login.defs |grep ^PASS_MIN_LEN |awk '{print $2}' if [ $len != 8 ];then sed -i '/^PASS_MIN_LEN/s/'"$len"'/8/g' $DIR/login.defs fi
##PASS_WARN_AGE warn=cat $DIR/login.defs |grep ^PASS_WARN_AGE | awk '{print $2}' if [ $warn != 7 ];then sed -i '/^PASS_WARN_AGE/s/'"$warn"'/7/g' $DIR/login.defs fi
###########################################################
echo "正在修改系统命令行保存条目..." sleep 1 cat /etc/profile |grep ^HISTSIZE > /dev/null if [ $? == 0 ];then sed -i 's/^HISTSIZE=[0-9]\{1,4\}/HISTSIZE=30/g' /etc/profile fi cat /etc/profile |grep ^HISTFILESIZE > /dev/null if [ $? == 1 ];then echo "HISTFILESIZE=30" >> /etc/profile fi
###############################################
echo "正在修改密码设置策略..."
cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak
sed -i "14i password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1" /etc/pam.d/system-auth
#########################################################################
echo "设置终端超时时间" echo export TMOUT=300 >> /etc/profile source /etc/profile
#########################################################################
echo "正在启用审计策略..." echo -e "-w /etc/group -p wa -k CFG_group\n-w /etc/passwd -p wa -k CFG_passwd\n-w /etc/gshadow -k CFG_gshadow\n-w /etc/shadow -k CFG_shadow" >> /etc/audit/audit.rules service auditd restart
##########################################################################################
echo "限制用户登录次数" sed -i '2i auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=300' /etc/pam.d/login sed -i '2i auth required pam_tally2.so deny=3 unlock_time=300 even_deny_root root_unlock_time=300' /etc/pam.d/sshd
############################################################################################
#Configure Minimum User Authorization chmod 600 /etc/security
###########################################################################################
\# Log Security Event Log sed -i '80i *.err;kern.debug;daemon.notice /var/adm/messages' /etc/rsyslog.conf mkdir -p /var/adm touch /var/adm/messages chmod 640 /var/adm/messages /etc/init.d/rsyslog restart
############################################################################################
#修改历史命令保存条数
sed -i '/^HISTSIZE/s/1000/5/' /etc/profile
sed -i '49i HISTFILESIZE=5' /etc/profile
source /etc/profile
############################################################################################
#设置关键文件的属性
chattr +a /var/log/messages
###########################################################################################
#banner告警
touch /etc/ssh_banner chown bin:bin /etc/ssh_banner chmod 644 /etc/ssh_banner echo " Authorized only. All activity will be monitored and reported " > /etc/ssh_banner echo "Banner /etc/ssh_banner" >> /etc/ssh/sshd_config /etc/init.d/sshd restart
|