centos系统初始化


centos系统初始化
 
初始化常用环境变量
 
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.*
开机启动
 
1
[root@www ~]# vim /etc/rc.d/rc.local
2
# 1. Firewall
3
/usr/local/iptables/iptables.rule
优化内核参数
 
优化内核具体要看此服务器安装的软件,实现的功能,参数不是一成不变的,要随着改变
 
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
总结:经过上面一系列的配置,服务器初始化大部分完成,尤其注意防火墙设置,一旦处理不好,就有可能把自己关在门外!
 
 

相关内容

    暂无相关文章