-
初始化常用环境变量
1 # vi .bashrc 2 alias worksrc='cd /usr/local/src;ls' 3 配置生效 4 # source .bashrc -
yum预装常用的服务器软件
01 #vim linux编辑器 02 #wget 网络自动下载文件的工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载 03 #crontab cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能 04 #mlocate 基于数据库快速查找文件,经常用updatedb命令更新数据库 05 #ntp 时间同步服务组件 06 #SecureCRT的sz/rz工具包 07 yum -y install vim wget gcc make crontabs mlocate ntp lrzsz gcc-c++ autoconf; 08 # 09 #sysstat:是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如CPU使用率、硬盘和网络吞吐数据,这些数据的收集和分析,有利于我们判断系统是否正常运行,是提高系统运行效率、安全运行服务器的得力助手 10 #dstat:用来替换 vmstat,iostat,netstat,nfsstat和ifstat这些命令的工具是一个全能彩色系统信息统计工具 11 #screen:类似nohup,能同时连接多个本地或远程的命令行会话,并在其间自由切换,适合远程管理终端长时间远程跑的程序 12 yum -y install sysstat dstat screen ; 13 # 14 #top是linux下常用的监控程序,htop相当于其加强版,颜色显示不同参数,且支持鼠标操作 15 #安装支持组件 16 wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz 17 tar xvfz ncurses-5.9.tar.gz 18 cd ncurses-5.9 19 ./configure 20 make 21 make install 22 #安装htop: 主页http://sourceforge.net/projects/htop/files/htop/ 23 wget http://sourceforge.net/projects/htop/files/htop/1.0.2/htop-1.0.2.tar.gz/download 24 tar zxvf htop-1.0.2.tar.gz 25 cd htop-1.0.2 26 ./configure 27 make 28 make install -
时间和时区设置
查看当前时区时间
1 date -R 每隔10分钟同步一下时钟
1 echo " */10 * * * * /usr/sbin/ntpdate 61.129.42.44 >> /home/ntp.log" >> /var/spool/cron/root 2 service crond restart 3 /usr/sbin/ntpdate 61.129.42.44 替换默认时区为上海
1 rm -rf /etc/localtime #删除当前默认时区 2 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #复制替换默认时区为上海 -
防火墙配置脚本
iptables.rule:设定最基本的规则,包括清除防火墙规则、载入模組、设定服务可接受等;
iptables.deny:设定抵挡某些惡意主机的进入;
iptables.allow:设定允许某些自訂的后門來源主机!001 [root@www ~]# mkdir -p /usr/local/iptables 002 [root@www ~]# cd /usr/local/iptables 003 [root@www iptables]# vim iptables.rule 004 #!/bin/bash 005 # 请先輸入您的相关参數,不要輸入错误了! 006 EXTIF="eth0" # 这个是可以连上 Public IP 的网络界面 007 INIF="eth1" # 內部 LAN 的连接介面;若无則写成 INIF="" 008 INNET="192.168.100.0/24" # 若无內部网络介面,请填写成 INNET="" 009 export EXTIF INIF INNET 010 # 第一部份,针对本机的防火墙设定!########################################## 011 # 1. 先设定好核心的网路功能: 012 echo "1" > /proc/sys/net/ipv4/tcp_syncookies #开启 TCP Flooding的DoS攻击抵挡机制,但这个设定不适合loading已经很高的主机 013 echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts #取消 ping 广播的回应 014 #开启逆向路径过滤,以符合 IP 封包与网路介面的设定,开启记录有问题的封包 015 for i in /proc/sys/net/ipv4/conf/*/{rp_filter,log_martians}; do 016 echo "1" > $i 017 done 018 #取消来源路由,这个设定值是可以取消的;取消重新宣告路径的功能;取消传送重新宣告路径的功能 019 for i in /proc/sys/net/ipv4/conf/*/{accept_source_route,accept_redirects,\ 020 send_redirects}; do 021 echo "0" > $i 022 done 023 # 2. 清除规则、设定預设政策及开放 lo 与相关的设定值 024 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin; export PATH 025 #清除已有规则 026 iptables -F 027 iptables -X 028 iptables -Z 029 #设置默认策略 030 iptables -P INPUT DROP 031 iptables -P OUTPUT ACCEPT 032 iptables -P FORWARD ACCEPT 033 #开放lo 034 iptables -A INPUT -i lo -j ACCEPT 035 #只要是联机成功的数据包或与已发出去请求相关的数据包就予以通过 036 iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 037 # 3. 启动额外的防火墙 script 模組 038 if [ -f /usr/local/iptables/iptables.deny ]; then 039 sh /usr/local/iptables/iptables.deny 040 fi 041 if [ -f /usr/local/iptables/iptables.allow ]; then 042 sh /usr/local/iptables/iptables.allow 043 fi 044 if [ -f /usr/local/httpd-err/iptables.http ]; then 045 sh /usr/local/httpd-err/iptables.http 046 fi 047 # 4. 允许某些类型的 ICMP 封包进入,通常我们会把ICMP type 8拿掉,让远程主机不知道主机是否存在,也不会对ping回应 048 AICMP="0 3 3/4 4 11 12 14 16 18" 049 for tyicmp in $AICMP 050 do 051 iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT 052 done 053 # 5. 允许某些服务的进入,请依照你自己的环境开启 054 iptables -A INPUT -p TCP -i $EXTIF --dport 22 --sport 1024:65534 -j ACCEPT # SSH 055 iptables -A INPUT -p TCP -i $EXTIF --dport 80 --sport 1024:65534 -j ACCEPT # WWW 056 # iptables -A INPUT -p TCP -i $EXTIF --dport 21 --sport 1024:65534 -j ACCEPT # FTP 057 # iptables -A INPUT -p TCP -i $EXTIF --dport 25 --sport 1024:65534 -j ACCEPT # SMTP 058 # iptables -A INPUT -p UDP -i $EXTIF --dport 53 --sport 1024:65534 -j ACCEPT # DNS 059 # iptables -A INPUT -p TCP -i $EXTIF --dport 53 --sport 1024:65534 -j ACCEPT # DNS 060 # iptables -A INPUT -p TCP -i $EXTIF --dport 110 --sport 1024:65534 -j ACCEPT # POP3 061 # iptables -A INPUT -p TCP -i $EXTIF --dport 443 --sport 1024:65534 -j ACCEPT # HTTPS 062 # 第二部份,针对后端主机的防火墙设定!############################### 063 # 1. 先载入一些有用的模組 064 modules="ip_tables iptable_nat ip_nat_ftp ip_nat_irc ip_conntrack 065 ip_conntrack_ftp ip_conntrack_irc" 066 for mod in $modules 067 do 068 testmod=`lsmod | grep "^${mod} " | awk '{print $1}'` 069 if [ "$testmod" == "" ]; then 070 modprobe $mod 071 fi 072 done 073 # 2. 清除 NAT table 的规则吧! 074 iptables -F -t nat 075 iptables -X -t nat 076 iptables -Z -t nat 077 iptables -t nat -P PREROUTING ACCEPT 078 iptables -t nat -P POSTROUTING ACCEPT 079 iptables -t nat -P OUTPUT ACCEPT 080 # 3. 若有內部介面的存在 (雙网卡) 开放成為路由器,且為 IP 分享器! 081 if [ "$INIF" != "" ]; then 082 iptables -A INPUT -i $INIF -j ACCEPT 083 echo "1" > /proc/sys/net/ipv4/ip_forward 084 if [ "$INNET" != "" ]; then 085 for innet in $INNET 086 do 087 iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE 088 done 089 fi 090 fi 091 # 如果你的 MSN 一直无法连线,或者是某些网站 OK 某些网站不 OK, 092 # 可能是 MTU 的问题,那你可以将底下這一行給他取消註解來启动 MTU 限制范围 093 # iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss \ 094 # --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu 095 # 4. NAT 伺服器后端的 LAN 內对外之伺服器设定 096 # iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80 \ 097 # -j DNAT --to-destination 192.168.1.210:80 # WWW 098 # 5. 特殊的功能,包括 Windows 遠端桌面所产生的规则,假设桌面主机為 1.2.3.4 099 # iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --dport 6000 \ 100 # -j DNAT --to-destination 192.168.100.10 101 # iptables -t nat -A PREROUTING -p tcp -s 1.2.3.4 --sport 3389 \ 102 # -j DNAT --to-destination 192.168.100.20 103 # 6. 最终将這些功能儲存下來吧! 104 /etc/init.d/iptables save iptables.allow脚本设置
1 [root@www iptables]# vim iptables.allow 2 #!/bin/bash 3 # 允许进入本机的其他网络或主机啊! 4 iptables -A INPUT -i $EXTIF -s 140.116.44.0/24 -j ACCEPT iptables.deny脚本设置
1 [root@www iptables]# vim iptables.deny 2 #!/bin/bash 3 # 阻挡的主机ip或者主机所在的整个网段 4 iptables -A INPUT -i $EXTIF -s 140.116.44.254 -j DROP 脚本权限设置
1 [root@www iptables]# chmod 700 iptables.* 开机启动
-
优化内核参数
优化内核具体要看此服务器安装的软件,实现的功能,参数不是一成不变的,要随着改变
01 mv /etc/sysctl.conf /etc/sysctl.conf.`date +"%Y-%m-%d_%H-%M-%S"` 02 echo "net.ipv4.ip_forward = 0 03 net.ipv4.conf.default.rp_filter = 1 04 net.ipv4.conf.default.accept_source_route = 0 05 net.ipv6.conf.all.disable_ipv6 = 1 06 net.ipv6.conf.default.disable_ipv6 = 1 07 kernel.sysrq = 0 08 kernel.core_uses_pid = 1 09 net.ipv4.tcp_syncookies = 1 10 kernel.msgmnb = 65536 11 kernel.msgmax = 65536 12 kernel.shmmax = 68719476736 13 kernel.shmall = 4294967296 14 net.ipv4.tcp_max_tw_buckets = 6000 15 net.ipv4.tcp_sack = 1 16 net.ipv4.tcp_window_scaling = 0 17 net.ipv4.tcp_rmem = 4096 87380 16777216 18 net.ipv4.tcp_wmem = 4096 16384 16777216 19 net.core.wmem_default = 8388608 20 net.core.rmem_default = 8388608 21 net.core.rmem_max = 16777216 22 net.core.wmem_max = 16777216 23 net.core.netdev_max_backlog = 262144 24 net.core.somaxconn = 262144 25 net.ipv4.tcp_max_orphans = 3276800 26 net.ipv4.tcp_max_syn_backlog = 262144 27 net.ipv4.tcp_timestamps = 0 28 net.ipv4.tcp_synack_retries = 1 29 net.ipv4.tcp_syn_retries = 1 30 net.ipv4.tcp_tw_recycle = 1 31 net.ipv4.tcp_tw_reuse = 1 32 net.ipv4.tcp_mem = 94500000 915000000 927000000 33 net.ipv4.tcp_fin_timeout = 15 34 net.ipv4.tcp_keepalive_time = 30 35 vm.swappiness = 10" >> /etc/sysctl.conf 36 sysctl -p
总结:经过上面一系列的配置,服务器初始化大部分完成,尤其注意防火墙设置,一旦处理不好,就有可能把自己关在门外!