今天有几台服务器要上线,花时间写了一个初始化的脚本,跟大家分享一下。欢迎大家提意见,帮助我让其功能更加完善
#!/bin/bash # author: gm100861 # mail: gm100861@gmail.com # blog: http://www.gm100861.com # date: 2013-06-25 if [ $(id -u) != 0 ];then echo "Must be root can do this." exit 9 fi # set privileges chmod 600 /etc/passwd chmod 600 /etc/shadow chmod 600 /etc/group chmod 600 /etc/gshadow echo "Set important files privileges sucessfully" # yum repo add cat > /etc/yum.repos.d/thrid-repository.repo <<EOF [epel] name=Extra Packages for Enterprise Linux 6 - $basearch baseurl=http://epel.mirror.ucloud.cn/epel/6/$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch baseurl=http://remi.mirror.ucloud.cn enabled=0 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi [rpmforge] name = RHEL - RPMforge.net - dag baseurl = http://rpmforge.mirror.ucloud.cn/redhat/el6/en/$basearch/rpmforge enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 0 [rpmforge-extras] name = RHEL - RPMforge.net - extras baseurl = http://rpmforge.mirror.ucloud.cn/redhat/el6/en/$basearch/extras enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 0 EOF yum clean all &>/dev/null yum makecache &>/dev/null echo "add thired repository sucessfully" # Turn off unnecessary services service=($(ls /etc/init.d/)) for i in ${service[@]}; do case $i in sshd|network|syslog|iptables|crond) chkconfig $i on;; *) chkconfig $i off;; esac done #set ulimit cat >> /etc/security/limits.conf << EOF * soft nofile 65535 * hard nofile 65535 EOF # set sysctl cat > /etc/sysctl.conf << EOF 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 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 68719476736 kernel.shmall = 4294967296 net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.tcp_sack = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.tcp_wmem = 4096 16384 4194304 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.core.netdev_max_backlog = 262144 net.core.somaxconn = 262144 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 262144 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 1 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_fin_timeout = 1 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 1024 65535 vm.swappiness = 0 EOF echo "0 0 * * * /usr/sbin/ntpdate cn.pool.ntp.org &>/dev/null" >>/var/spool/cron/root # set iptables iptables -F iptables -X iptables -Z iptables -I INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 0 -m limit --limit 3/second --limit-burst 5 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 3/second --limit-burst 5 -j ACCEPT iptables -A INPUT -p udp --sport 53 -j ACCEPT iptables -A INPUT -p tcp --sport 53 -j ACCEPT iptables -P INPUT DROP #iptables -P FORWARD DROP #iptables -P OUTPUT DROP /etc/init.d/iptables save echo "All things is init ok! "