您的位置:首页 > 运维架构 > Linux

CentOS6.7系统优化操作流程

2015-10-13 11:41 459 查看
centos 6 mini安装(内容极其精简)
红帽官方中文文档 http://docs.redhat.com/docs/zh-CN/Red_Hat_Enterprise_Linux/index.html
默认邮件服务器就是postfix
升级系统
# yum install epel-release -y
# yum update

精简服务
1、chkconfig ip6tables off 关闭ipv6防火墙
2、chkconfig iscsi off 关闭iscsi服务
3、chkconfig iscsid off 关闭iscsi相关服务
4、chkconfig netfs off 关闭NFS,smaba和NetWare网络文件系统
5、chkconfig auditd off linux的审计功能
6、chkconfig nfslock off 关闭TCP/IP网络共享文件的协议的NFS的文件锁功能
7、chkconfig rpcgssd off 关闭 NFS v4
8、chkconfig rpcbind off 关闭RPC服务
9、chkconfig rpcidmapd off 关闭 NFS v4
10、chkconfig lvm2-monitor off 关闭系統对Logical Volume Manager 逻辑磁区的支持
11、chkconfig lldpad off 关闭邻近发现协议

安装基本配置程序(cronie 为安装Cron)
# yum install -y setuptool ntsysv system-config-firewall-tui system-config-network-tui cronie wget vim unzip openssh-clients screen rsync ftp telnet (13)
setuptool Python的 distutilsde工具的增强工具(py2.3.5以上 64位py2.4)
ntsysv 设置系统的各种服务
system-config-firewall-tui 命令行用户接口(TUI)的防火墙客户端
system-config-network-tui 安装Fedora网络配置的工具

记录每次bash命令的执行时间
vi /etc/profile
这个文件是每个用户登录时都会运行的环境变量设置,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

加入(centos6最好加到第54行)
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
export HISTTIMEFORMAT

安全配置
禁用selinux
编辑# vi /etc/selinux/config
/etc/selinux/config是/etc/sysconfig/selinux软连接的一个原文件 提供强制访问控制(MAC)安全系统
SELINUX=disabled

su加固
编辑配置文件
# vi /etc/pam.d/su

大约第六行去掉#
#auth required pam_wheel.so use_uid
禁用非wheel用户是用su

运行
# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs
SU_WHEEL_ONLY yes 只允许wheel用户su到root

/etc/login.defs 设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容。该文件里的配置对root用户无效。

设置可以su的用户到wheel组
# useradd -G wheel yezhiqiu
# passwd yezhiqiu

SSH部分
# vim /etc/ssh/sshd_config
配置sshd服务器

修改端口号
大约第13行
1、Port 58022 定义ssh的连接端口

不允许用root进行登录
大约第42行
2、PermitRootLogin no

不允许空密码登录
大约第65行
3、PermitEmptyPasswords no

禁用DNS
大约第81行
4、GSSAPIAuthentication no

大约第122行
5、UseDNS no

最后一行只允许指定用户登录ssh
6、AllowUsers yezhiqiu

编辑防火墙文件
# vi /etc/sysconfig/iptables
加入
-A INPUT -m state --state NEW -m tcp -p tcp --dport 58022 -j ACCEPT
重启服务
# /etc/init.d/sshd restart
# /etc/init.d/iptables restart

添加监控宝的snmpd监控
# yum -y install net-snmp 是一个免费的、开放源码的网络监控

# vi /etc/snmp/snmpd.conf
# ------添加监控宝账号------
rocommunity jiankongbao 60.195.249.83 “rocommunity”表示这是一个只读的访问权限,监控宝只可以从你的服务器上获取信息,而不能对服务器进行任何设置
“jiankongbao”相当于密码
如果您使用的是插件 此处的ip 应该安装采集器的机器的ip

rocommunity jiankongbao 60.195.252.107
rocommunity jiankongbao 60.195.252.110
重启服务
# /etc/init.d/snmpd start
# chkconfig snmpd on

修改防火墙配置
# vi /etc/sysconfig/iptables
# ------添加防火墙规则------
-A INPUT -p udp -m udp --dport 161 -j ACCEPT
开启udp协议

重启防火墙
# /etc/init.d/iptables restart

校时
# yum install -y ntp
# /usr/sbin/ntpdate time.nist.gov IP为时间服务器IP
硬件同步
# /sbin/hwclock --systohc

加入备份脚本
# crontab -e
5 */6 * * * /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1

有些机房禁用UDP 可以使用rdate

# yum install -y rdate
5 */6 * * * /usr/bin/rdate -s stdtime.gov.hk > /dev/null 2>&1

安装第三方软件仓库
EPEL
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # rpm -ivh epel-release-6-8.noarch.rpm
修改enabled = 0默认不启用
# vim /etc/yum.repos.d/epel.repo
# yum --enablerepo=epel -y install htop pbzip2

rpmforge逐步淘汰不用
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm # rpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
修改enabled = 0默认不启用
# vim /etc/yum.repos.d/rpmforge.repo
# yum --enablerepo=rpmforge -y install htop unrar axel
htop实时监控
unrar 压缩软件60%以上压缩比
axel 一种下载软件 实行分段下载

优化Linux内核参数
# vi /etc/sysctl.conf
是配置一些系统信息,而且它的内容全部是对应于/proc/sys/这个目录的子目录及文件。

在末尾增加以下内容:
引用
# Add
1、net.ipv4.tcp_max_syn_backlog = 65536
表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

2、net.core.netdev_max_backlog = 32768
每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目

3、net.core.somaxconn = 32768
定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为1024

4、net.core.wmem_default = 8388608
该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。

5、net.core.rmem_default = 8388608
该文件指定了接收套接字缓冲区大小的默认值(以字节为单位)

6、net.core.rmem_max = 16777216
指定了接收套接字缓冲区(接收窗口)大小的最大值(以字节为单位) 最大的TCP数据接收缓冲

7、net.core.wmem_max = 16777216
指定了发送套接字缓冲区(接收窗口)大小的最大值(以字节为单位) 最大的TCP数据发送缓冲

8、net.ipv4.tcp_timestamps = 0
以一种比重发超时更精确的方法(请参阅 RFC 1323)来启用对 RTT 的计算;为了实现更好的性能应该启用这个选项,时间戳在(请参考RFC 1323)TCP的包头增加12个字节

9、net.ipv4.tcp_synack_retries = 2
syn-ack握手状态重试次数,默认5,遭受syn-flood(Dos与DDos)攻击时改为1或2

10、net.ipv4.tcp_syn_retries = 2
外向syn握手重试次数,默认4

11、net.ipv4.tcp_tw_recycle = 1
默认0,tw快速回收
12、#net.ipv4.tcp_tw_len = 1
表示开启重用。允许将TIME-WAIT sockets 重新用于新的TCP连接,默认为0,表示关闭

13、net.ipv4.tcp_tw_reuse = 1
表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

14、net.ipv4.tcp_mem = 94500000 915000000 927000000
确定 TCP 栈应该如何反映内存使用;每个值的单位都是内存页(通常是 4KB)。第一个值是内存使用的下限。第二个值是内存压力模式开始对缓冲区使用应用压力的上限。
第三个值是内存上限。在这个层次上可以将报文丢弃,从而减少对内存的使用。对于较大的 BDP 可以增大这些值(但是要记住,其单位是内存页,而不是字节)

15、net.ipv4.tcp_max_orphans = 3276800
系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,孤儿连接将即刻被复位并打印出警告信息。
这个限制仅仅是为了防止简单的DoS攻击,你绝对不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)

16、#net.ipv4.tcp_fin_timeout = 30
表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。

17、#net.ipv4.tcp_keepalive_time = 120
表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。

18、net.ipv4.ip_local_port_range = 1024 65535
指定端口范围的一个配置,默认是32768 61000

目前可以确定的是
#######
19、fs.aio-max-nr = 1048576
同时可以拥有的的异步IO请求数目

20、fs.file-max = 6815744
系统中可以同时打开的文件数目。

21、kernel.shmall = 2097152
参数是控制共享内存页数

22、kernel.shmmax = 536870912
内核参数定义单个共享内存段的最大值

23、kernel.shmmni = 4096
整个系统共享内存段的最大数目。

24、kernel.sem = 250 32000 100 128
表示设置的信号量,这4个参数内容大小固定。

25、net.ipv4.ip_local_port_range = 9000 65500
表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。

26、net.core.rmem_default = 262144
该文件指定了接收套接字缓冲区大小的默认值(以字节为单位)。

27、net.core.rmem_max = 4194304
指定了接收套接字缓冲区(接收窗口)大小的最大值(以字节为单位) 最大的TCP数据接收缓冲

28、net.core.wmem_default = 262144
该文件指定了发送套接字缓冲区大小的缺省值(以字节为单位)。

29、net.core.wmem_max = 1048586
指定了发送套接字缓冲区(接收窗口)大小的最大值(以字节为单位) 最大的TCP数据发送缓冲

#######
使配置立即生效:
/sbin/sysctl -p
-p 从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载;

调整ulimit

# vi /etc/security/limits.conf
Linux PAM中 pam_limits.so 的配置文件,而且只针对于单个会话。

在文件末加上:
* soft nofile 65535
* hard nofile 65535
soft nofile:单个用户可用的最大进程数量(软限制)
hard nofile:单个用户可用的最大进程数量(硬限制)

# vi /etc/security/limits.d/90-nproc.conf
修改
* soft nproc 1024

* soft nproc 65535

soft nproc: 可打开的文件描述符的最大数(软限制)
hard nproc: 可打开的文件描述符的最大数(硬限制)

设置logwatch发给指定邮箱
# yum install logwatch -y logwatch 日志监视器

# echo "MailTo = yezhiqiu.cn@gmail.com" >>/etc/logwatch/conf/logwatch.conf
添加
MailTo = yezhiqiu.cn@gmail.com
删除对httpd的日志分析在 /usr/share/logwatch/default.conf/logwatch.conf加入大约在86行
Service = "-http"
不监控的服务前面加 “-” , 如 -httpd , 即不监控 httpd 服务 , 可以写多条

如果需要自己编译软件
# yum install gcc gcc-c++ make automake autoconf patch

LAMP服务器做如下步骤:
# yum --enablerepo=epel install cronolog
cronolog日志切割工具

# yum install httpd mysql-server

# yum install postgresql-devel mysql-devel httpd-devel openssl-devel libxml2-devel zlib-devel curl-devel libmcrypt-devel mhash-devel libjpeg-devel libpng-devel gd-devel freetype-devel libtool-ltdl-devel

# yum install libevent-devel libc-client-devel readline-devel

# yum install libXpm-devel libxslt-devel krb5-devel net-snmp-devel

# cd /usr/lib64
# ln -s /usr/lib64/mysql/libmysqlclient.so
# yum install php53 php53-gd php53-devel php53-mbstring php53-mysql php53-xml php53-xmlrpc

附:
硬件检测:
# wget http://aspersa.googlecode.com/svn/trunk/summary # chmod +x summary
# ./summary

CentOS升级流程:
yum clean all
yum update glibc\* -y
yum update yum\* rpm\* pyth\* -y
yum clean all
yum update mkinitrd nash -y
yum update selinux\* -y
yum update -y
shutdown -r now

安装常用附加软件
# yum install screen sysstat iptraf
iptraf :CLI 流量监控软件
screen:远程会话管理
sysstat:系统性能分析工具包

磁盘IO测试
yum --enablerepo=rpmforge install iozone

去掉atime提高文件系统性能:
可以在/etc/fstab中增加,noatime,nodiratime参数
降低文件系统权限
nosuid,noexec,nodev参数

杀毒软件
# yum --enablerepo=epel install clamd
升级病毒库
# freshclam --verbose
# clamscan -i -r /dir
备选库 http://rpms.famillecollet.com/ 可以安装在centos5等低版本中安装php-fpm等软件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息