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
总结:经过上面一系列的配置,服务器初始化大部分完成,尤其注意防火墙设置,一旦处理不好,就有可能把自己关在门外!