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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
注:执行后需要重启机器 #!/bin/sh #****************************************************************# # ScriptName: CentOS6_init.sh # Author:823431818@qq.com # Create Date: 2014-05-17 # Modify Author: # Modify Date: 2016-09-18 # Function: #***************************************************************# change_password_len() { echo "Change PASS_MIN_LEN to 10"
/bin/awk '($1 ~ /^PASS_MIN_LEN/) { $2="10" } {print}' /etc/login .defs > /tmp/login .defs
/bin/mv -f /tmp/login .defs /etc/login .defs
} modify_chkconfig() { echo "::Modify chkconfig for the system..."
for a in `chkconfig --list| grep 0:| awk '{print $1}' `
do case "$a" in
"sshd" ) STATUS=on;;
"crond" ) STATUS=on;;
"network" ) STATUS=on;;
"rsyslog" ) STATUS=on;;
"irqbalance" ) STATUS=on;;
* ) STATUS=off;;
esac
/sbin/chkconfig --level 345 $a $STATUS
done echo "::End modify chkconfig"
} disable_selinux() { echo "::Disable selinux"
[ -e /etc/selinux/config ] && sed -r -i '/^SELINUX=/s/.*/SELINUX=disabled/' /etc/selinux/config
echo "::End disable selinux" } change_inittab() { echo "::Change inittab"
sed -r -i '/^id/s/.*/id:3:initdefault:/' /etc/inittab
echo "::End change inittab"
} modify_timezone() { cat <<- EOF > /etc/sysconfig/clock
ZONE= "Asia/Shanghai"
UTC= false
ARC= false
EOF cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
sed -i 's/^[ \t]*//' /etc/sysconfig/clock
} function set_keyboard()
{ cat <<- EOF > /etc/sysconfig/keyboard
KEYBOARDTYPE= "pc"
KEYTABLE= "us"
EOF sed -i 's/^[ \t]*//' /etc/sysconfig/keyboard
} function set_nofile_limits()
{ echo "::Change nofile limits"
sed -i 's#session required pam_loginuid.so#session required pam_loginuid.so\nsession required pam_limits.so#' /etc/pam .d /login
sed -i '$a * - nofile 65536' /etc/security/limits .conf
echo "::End change nofile\n"
} change_banner() { echo "::Change Banner"
for FILE in /etc/issue /etc/motd /etc/issue .net; do
cp -f ${FILE} ${FILE}.tmp
egrep - vi "red hat|kernel|fedora" ${FILE}.tmp > ${FILE}
rm -f ${FILE}.tmp
done if [ "`grep -i authorized /etc/issue`" == "" ]; then
echo "Authorized users only. All activity may be monitored and reported." >> /etc/issue
fi if [ "`grep -i authorized /etc/motd`" == "" ]; then
echo "Authorized users only. All activity may be monitored and reported." >> /etc/motd
fi chown root:root /etc/motd /etc/issue /etc/issue .net
chmod 644 /etc/motd /etc/issue /etc/issue .net
echo "::End change banner"
} change_profile() { echo "::Change the /etc/profile file"
echo "umask 022" >> /etc/profile
echo "TMOUT=6000" >> /etc/profile
echo "export TMOUT" >> /etc/profile
echo "::End change profile"
} change_sshd_config() { echo "::Change sshd_config"
sed -i 's/#MaxAuthTries 6/MaxAuthTries 5/' /etc/ssh/sshd_config
sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config
echo "::End change sshd_config"
} change_lang() { echo "::Change i18n config"
sed -r -i '/^LANG=/s/.*/LANG="en_US.UTF-8"/' /etc/sysconfig/i18n
echo "::End change i18n config"
} change_ntp() { echo "/usr/sbin/ntpdate -u clepsydra.dec.com tick.ucla.edu ntp.nasa.gov" >> /etc/rc . local
echo "0 2 * * * /usr/sbin/ntpdate -u clepsydra.dec.com tick.ucla.edu ntp.nasa.gov >/dev/null" >> /etc/crontab
} change_sysctl () { cat <<- EOF > /etc/sysctl .conf
net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 fs. file -max = 655350
net.ipv4.ip_local_port_range = 1024 65535 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_fin_timeout = 5 net.ipv4.tcp_max_syn_backlog = 20000 net.core.somaxconn = 65535 net.core.netdev_max_backlog = 65535 EOF sysctl -p } function linux_secure()
{ export LANG= "en_US"
change_password_len modify_chkconfig disable_selinux modify_timezone set_keyboard change_banner change_profile change_inittab set_nofile_limits change_sshd_config change_lang change_ntp change_sysctl echo "All done!!"
} linux_secure |
本文转自 wpf926 51CTO博客,原文链接:http://blog.51cto.com/wupengfei/1955545,如需转载请自行联系原作者