天天看點

centos6.x 初始化腳本

<code>#!/bin/bash  </code>

<code>#:***********************************************  </code>

<code>#:Program:centos6_init_shell  </code>

<code>#:  </code>

<code>#:Author:yanconggod  </code>

<code>#:History:2017-01-10  </code>

<code>#:Version:1.0  </code>

<code>cat</code> <code>&lt;&lt;EOF  </code>

<code> </code><code>+--------------------------------------------------------------+  </code>

<code> </code><code>|          === Welcome to  System init ===                     |  </code>

<code>EOF</code>

<code>  </code> 

<code>DATE=`</code><code>date</code> <code>+%Y_%m_%d:%H_%M_%S`  </code>

<code>INIT_LOG=system_init_$DATE.log </code>

<code>#0.yum resource config  </code>

<code>#mv /etc/yum.repos.d/* /tmp/  </code>

<code>#wget -P /etc/yum.repos.d/ http://yum.xxx.xxx/{CentOS-Base.repo,epel.repo}  </code>

<code>yum clean all  </code>

<code>yum </code><code>install</code> <code>vim gcc gcc-c++ openssl-devel python-devel lrzsz tree </code><code>ftp</code> <code>telnet -y  </code>

<code>#1.del_user_group_config  </code>

<code>USER=(adm lp </code><code>shutdown</code> <code>halt uucp operator games gopher)  </code>

<code>for</code> <code>i </code><code>in</code> <code>`</code><code>echo</code> <code>${USER[*]}`  </code>

<code>do</code>  

<code>    </code><code>if</code> <code>grep</code> <code>-qs </code><code>"$i"</code> <code>/etc/passwd</code><code>;</code><code>then</code>  

<code>        </code><code>/usr/sbin/userdel</code> <code>$i  </code>

<code>    </code><code>else</code>  

<code>        </code><code>echo</code> <code>"$i is no exist"</code>  

<code>    </code><code>fi</code>  

<code>done</code>  

<code>GROUP=(adm lp dip)  </code>

<code>for</code> <code>ii </code><code>in</code> <code>`</code><code>echo</code> <code>${GROUP[*]}`  </code>

<code>    </code><code>if</code> <code>grep</code> <code>-qs </code><code>"$ii"</code> <code>/etc/group</code><code>;</code><code>then</code>  

<code>        </code><code>/usr/sbin/groupdel</code> <code>$ii  </code>

<code>        </code><code>echo</code> <code>"$ii is no exist"</code>  

<code>if</code> <code>[ </code><code>"$?"</code> <code>== </code><code>"0"</code> <code>];</code><code>then</code>  

<code>    </code><code>echo</code> <code>"$DATE [del_user_group_config] is [success]"</code>  <code>&gt;&gt; </code><code>/root/</code><code>${INIT_LOG}  </code>

<code>fi</code>  

<code>#2.add_users_config  </code>

<code>#指定UID,密碼不能明文顯示  </code>

<code>/usr/sbin/useradd</code> <code>-u 1001 -m -G 10 yanconggod  </code>

<code>sed</code> <code>-i </code><code>'/yanconggod/s#\!\!#\$6\$nRS2zBCw\$9AuQZSdYJezLTyzinOQzfcp1je2EGAD5oL7d3JeAeSXKoVGd920\.vX\/dPFuyP\/C2VexJQa5PpPD\/wRfE0m\.9A\/#g'</code> <code>/etc/shadow</code>  

<code>USER1=(yanconggod)  </code>

<code>for</code> <code>yl </code><code>in</code> <code>`</code><code>echo</code> <code>${USER1[*]}`  </code>

<code>    </code><code>if</code> <code>grep</code> <code>-qs </code><code>"$yl"</code> <code>/etc/passwd</code><code>;</code><code>then</code>  

<code>        </code><code>echo</code> <code>"$DATE $yl is added success"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#3.sudoer_config  </code>

<code>sed</code> <code>-i </code><code>'s/Defaults    requiretty/#Defaults    requiretty/g'</code> <code>/etc/sudoers</code>  

<code>echo</code> <code>-e </code><code>"User_Alias SYSADMINS = yanconggod"</code> <code>&gt;&gt; </code><code>/etc/sudoers</code>  

<code>echo</code> <code>-e </code><code>"SYSADMINS       ALL=(ALL)       NOPASSWD: ALL"</code> <code>&gt;&gt; </code><code>/etc/sudoers</code>  

<code>echo</code> <code>"$DATE [sudoer_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#4.limits_config  </code>

<code>echo</code> <code>"*                soft   nofile          65535"</code> <code>&gt;&gt;</code><code>/etc/security/limits</code><code>.conf  </code>

<code>echo</code> <code>"*                hard   nofile          65535"</code> <code>&gt;&gt;</code><code>/etc/security/limits</code><code>.conf  </code>

<code>echo</code> <code>"*                soft   noproc          65535"</code> <code>&gt;&gt;</code><code>/etc/security/limits</code><code>.conf  </code>

<code>echo</code> <code>"*                hard   noproc          65535"</code> <code>&gt;&gt;</code><code>/etc/security/limits</code><code>.conf  </code>

<code>sed</code> <code>-i </code><code>'/1024/s/1024/65535/g'</code> <code>/etc/security/limits</code><code>.d</code><code>/90-nproc</code><code>.conf  </code>

<code>echo</code> <code>"$DATE [limits_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#5.sysctl_config  </code>

<code>echo</code> <code>"net.ipv4.tcp_syncookies = 1"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.tcp_fin_timeout = 30"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.tcp_tw_recycle = 1"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.tcp_tw_reuse = 1"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.tcp_max_syn_backlog = 4096"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.core.netdev_max_backlog = 10240"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.icmp_echo_ignore_broadcasts = 1"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.core.somaxconn = 2048"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.core.wmem_default = 8388608"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.core.rmem_default = 8388608"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.core.rmem_max = 16777216"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.core.wmem_max = 16777216"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.conf.all.rp_filter = 1"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.tcp_keepalive_time = 300"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.tcp_synack_retries = 2"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.tcp_syn_retries = 2"</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>echo</code> <code>"net.ipv4.ip_local_port_range = 5000    65000 "</code> <code>&gt;&gt; </code><code>/etc/sysctl</code><code>.conf  </code>

<code>sysctl -p  </code>

<code>echo</code> <code>"$DATE [sysctl_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#6.history_config  </code>

<code>echo</code> <code>"export HISTSIZE=2000"</code> <code>&gt;&gt; </code><code>/etc/profile</code>  

<code>source</code> <code>/etc/profile</code>  

<code>echo</code> <code>"$DATE [history_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#7.pass_length and login count limit  </code>

<code>#sed -i '25s/99999/90/g' /etc/login.defs  </code>

<code>#sed -i '27s/5/8/g' /etc/login.defs  </code>

<code>sed</code> <code>-i </code><code>'5i auth        required      /lib64/security/pam_tally2.so deny=5 unlock_time=300'</code> <code>/etc/pam</code><code>.d</code><code>/system-auth</code>  

<code>#8.disable_selinux_config  </code>

<code>sed</code> <code>-i </code><code>'s/SELINUX=enforcing/SELINUX=disabled/'</code> <code>/etc/selinux/config</code>  

<code>setenforce 0  </code>

<code>echo</code> <code>"$DATE [disable_selinux_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#9.ntp_config  </code>

<code>ntp_config_count=`</code><code>crontab</code> <code>-l | </code><code>grep</code> <code>ntpdate|</code><code>wc</code> <code>-l`  </code>

<code>if</code> <code>[ ${ntp_config_count} -</code><code>eq</code> <code>0 ];</code><code>then</code>  

<code>cat</code>  <code>&lt;&lt;EOF   &gt;&gt; </code><code>/var/spool/cron/root</code>    

<code>*</code><code>/5</code> <code>* * * * </code><code>/usr/sbin/ntpdate</code> <code>-s ntp1.aliyun.com &gt;</code><code>/dev/null</code> <code>2&gt;&amp;1 </code>

<code>fi</code>

<code>if</code> <code>[ $? = 0 ];</code><code>then</code>  

<code>    </code><code>echo</code> <code>"$DATE [ntp_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#10.maxlogins_config  </code>

<code>echo</code> <code>"yanconggod          -       maxlogins       10"</code> <code>&gt;&gt; </code><code>/etc/security/limits</code><code>.conf  </code>

<code>echo</code> <code>"$DATE [maxlogins_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#11.disbled_ipv6_config  </code>

<code>cat</code> <code>&gt;&gt;</code><code>/etc/modprobe</code><code>.d</code><code>/disableipv6</code><code>.conf &lt;&lt; EOF</code>

<code>alias</code> <code>net-pf-10 off  </code>

<code>options ipv6 disable=1  </code>

<code>echo</code> <code>"$DATE [disble_ipv6_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}</code>

<code>#12.character_config  </code>

<code>cat</code> <code>&gt;&gt; </code><code>/etc/sysconfig/i18n</code> <code>&lt;&lt; EOF</code>

<code>LANG=</code><code>"en_US.UTF-8"</code>  

<code>SYSFONT=</code><code>"latarcyrheb-sun16"</code>  

<code>#13.disable_service_config  </code>

<code>for</code> <code>i </code><code>in</code> <code>auditd blk-availability ip6tables iptables lvm2-monitor netfs udev-post  </code>

<code>chkconfig $i off  </code>

<code>#iptables -F  </code>

<code>#iptables -X  </code>

<code>echo</code> <code>"$DATE [disable_service_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#15.DNS config  </code>

<code>MASK=`</code><code>ifconfig</code> <code>| </code><code>grep</code> <code>-w </code><code>"inet"</code> <code>| </code><code>grep</code> <code>-</code><code>v</code> <code>127.0.0.1|</code><code>awk</code> <code>-F</code><code>':'</code> <code>'{print $2}'</code><code>|</code><code>sed</code> <code>'s/ Bcast$//g'</code><code>| </code><code>awk</code> <code>-F</code><code>'.'</code> <code>'{print $1"."$2}'</code><code>`  </code>

<code>echo</code> <code>$MASK  </code>

<code>if</code> <code>[ $MASK = </code><code>"10.0"</code> <code>-o $MASK = </code><code>"10.1"</code> <code>]  </code>

<code>then</code>  

<code>cat</code> <code>&gt; </code><code>/etc/resolv</code><code>.conf &lt;&lt; EOF  </code>

<code>nameserver 10.0.0.1 </code>

<code>#nameserver 1.1.1.2  </code>

<code>#nameserver 1.1.1.3  </code>

<code>else</code>  

<code>    </code><code>:  </code>

<code>#16.sshd_config  </code>

<code>sed</code> <code>"s/#Port 22/Port 22/g"</code> <code>/etc/ssh/sshd_config</code> <code>-i  </code>

<code>sed</code> <code>"s/^#Protocol 2/Protocol 2/g"</code> <code>/etc/ssh/sshd_config</code> <code>-i  </code>

<code>sed</code> <code>"s/#UseDNS yes/UseDNS no/g"</code> <code>/etc/ssh/sshd_config</code> <code>-i  </code>

<code>#sed 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config -i  </code>

<code>#sed 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config -i  </code>

<code>#sed 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/ssh_config -i  </code>

<code>/etc/init</code><code>.d</code><code>/sshd</code> <code>restart  </code>

<code>echo</code> <code>"$DATE [sshd_config] is [success]"</code> <code>&gt;&gt;</code><code>/root/</code><code>${INIT_LOG}  </code>

<code>#17. reboot_system</code>

<code>read</code> <code>-p </code><code>"Do you want to reboot the system?"</code> <code>want  </code>

<code>                    </code><code>case</code> <code>$want </code><code>in</code>  

<code>                                 </code><code>yes</code><code>)  </code>

<code>                                 </code><code>echo</code> <code>"reboot now!"</code>  

<code>                                 </code><code>reboot  </code>

<code>                                 </code><code>;;  </code>

<code>                                 </code><code>no)  </code>

<code>                                 </code><code>echo</code> <code>"init over!"</code>  

<code>                                 </code><code>*)  </code>

<code>                                 </code><code>echo</code> <code>"please useage yes or no! thanks"</code>  

<code>                    </code><code>esac</code>

本文轉自 yanconggod 51CTO部落格,原文連結:http://blog.51cto.com/yanconggod/1890698

繼續閱讀