CentOS6.7系统优化操作流程

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 关闭系�y对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 = [email protected]" >>/etc/logwatch/conf/logwatch.conf

添加

MailTo = [email protected]

删除对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等软件


你可能感兴趣的:(系统优化和加强牢固)