Linux服务器 CentOS 6系列最小化安装优化脚本详解01————yum优化、优化启动服务、调整TTY数量、调整TCP/IP网络参数

Linux服务器 CentOS 6系列最小化安装优化脚本详解01————yum优化、优化启动服务、调整TTY数量、调整TCP/IP网络参数

前言

当最小化安装CentOS 6系列时,在使用过程中,可以基于性能和安全做一些优化,篇幅较多,这里我分篇幅写,希望各位大佬批评指正。
完整的脚本晚些时候会上传至github的。

yum优化

CentOS自带的yum源在国内使用,速度十分缓慢。一般运维人员可以将其更换为国内的yum源。使用网易源或者阿里云都是可以。这里我使用网易源。

详细步骤:

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS6-Base-163.repo CentOS-Base.repo
yum clean all
yum makecache   #重建yum缓存
# yum update    #升级Linux系统(系统升级的操作根据各自业务的需求进行选择,部分公有云平台不建议升级)

企业版 Linux 附加软件包(以下简称 EPEL)是一个由特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目。

增加epel源,详细操作步骤:
(1)下载rpm文件进行安装,命令如下:

cd /usr/local/src   #用户存放源码程序的位置,可以任意放置
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm

(2)安装yum-priorities源优先级工具
Linux 发行版比较多,同时还有很多个人或组织维护了某些特定用途的安装/升级源。Yum Priorities 插件可以用来强制保护源。它通过给各个源设定不同的优先级,使得系统管理员可以将某些源(比如 Linux 发行版的官方源)设定为最高优先级,从而保证系统的稳定性(同时也可能无法更新到其它源上提供的软件最新版本)。
用来给yum源分优先级的。比如你在centos下有centos,epel,rpmfusion三个yum源。三个yum源中可能含有相同的软件,补丁之类的东西。yum管理器为了分辨更新系统或者安装软件的时候用那个yum源的软件所以才有这么个东西。如果说,设置centos官方的yum源优先级最高,epelyum源第二,rpmfusion第三。(用1到99来表示,1最高)那在安装程序的时候,先寻找centos的yum源,如果源里面有要的程序,那就停止寻找,直接安装找到的,如果没有找到,就依次寻找epel和rpmfusion的源。
如果说三个yum源都含有同一个软件,那就安装优先级最高的yum源的。

添加yum源优先级需要在对于的repo文件末尾添加:priority=优先级数字

命令如下:

yum install yum-priorities

如果要开启yum源的优先级功能,就要先确保priorities.conf文件配置正确。

[root@private src]# cat /etc/yum/pluginconf.d/priorities.conf
[main]
enabled = 1

关闭不必要的服务

众所周知,服务越少,系统占用的资源就会越少,所以应当关闭不必要的服务。这样可以极大的节省内存和CPU资源占用。

首先查看系统中存在哪些已经启动了的服务,查看命令:ntsysv
使用该命令会出现Linux字符图形显示目前已经自启动的服务。

服务器根据业务所需进行调整,列出几个需要启动的服务:

  • crond:自动计划任务
  • network:Linux系统的网络服务
  • sshd:OpenSSH服务器守护进程
  • rsyslog:Linux的日志系统服务(CentOS5.8以下叫做syslog)

关闭不必要的TTY

需要修改"/etc/init/start-ttys.conf"文件
查看该文件内容:

[root@private ~]# cat /etc/init/start-ttys.conf 
#
# This service starts the configured number of gettys.
#
# Do not edit this file directly. If you want to change the behaviour,
# please create a file start-ttys.override and put your changes there.

start on stopped rc RUNLEVEL=[2345]

env ACTIVE_CONSOLES=/dev/tty[1-6]
env X_TTY=/dev/tty1
task
script
    . /etc/sysconfig/init
    for tty in $(echo $ACTIVE_CONSOLES) ; do
        [ "$RUNLEVEL" = "5" -a "$tty" = "$X_TTY" ] && continue
        initctl start tty TTY=$tty
    done
end script

这段代码使init打开了6个控制台,可分别用ALT+F1到ALT+F6进行访问。此6个控制台默认都驻留在内存中,可以使用ps aux命令查看。

[root@private ~]# ps aux | grep tty | grep -v grep
root       1582  0.0  0.0   4064   548 tty1     Ss+  12:58   0:00 /sbin/mingetty /dev/tty1
root       1584  0.0  0.0   4064   548 tty2     Ss+  12:58   0:00 /sbin/mingetty /dev/tty2
root       1586  0.0  0.0   4064   548 tty3     Ss+  12:58   0:00 /sbin/mingetty /dev/tty3
root       1588  0.0  0.0   4064   548 tty4     Ss+  12:58   0:00 /sbin/mingetty /dev/tty4
root       1590  0.0  0.0   4064   548 tty5     Ss+  12:58   0:00 /sbin/mingetty /dev/tty5
root       1592  0.0  0.0   4064   552 tty6     Ss+  12:58   0:00 /sbin/mingetty /dev/tty6
[root@private ~]#

事实上没有必要使用这么多,可以关闭不用的进程,通常保留两个控制台即可。
需要修改的操作流程:
1.打开"/etc/init/start-ttys.conf",其中有:"env ACTIVE_CONSOLES=/dev/tty[1-6]"
需要将其修改为:"env ACTIVE_CONSOLES=/dev/tty[1-2]"
2.打开"/etc/sysconfig/init "文件,其中有:"ACTIVE_CONSOLES=/dev/tty[1-6]",将其修改为
"ACTIVE_CONSOLES=/dev/tty[1-2]"

可以使用sed命令直接修改:

sed -i "/env ACTIVE/ s/6/2/" /etc/init/start-ttys.conf 
sed -i "/ACTIVE_CONSOLES/ s/6/2/" /etc/sysconfig/init 

修改完成后,需要重启机器

调整TCP/IP网络参数

调整TCP/IP网络参数,可以加强对抗SYN Flood的能力。

SYN Flood是一种广为人知的DoS(拒绝服务攻击)是DDoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
从防御角度来说,有几种简单的解决方法:第一种是缩短SYN Timeout时间;第二种方法是设置SYN Cookie;
net.ipv4.tcp_syncookies = 1
表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为 0,表示关闭。

使用命令:

[root@private shell]# echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf 
[root@private shell]# sysctl -p

你可能感兴趣的:(Linux服务器 CentOS 6系列最小化安装优化脚本详解01————yum优化、优化启动服务、调整TTY数量、调整TCP/IP网络参数)