zoukankan      html  css  js  c++  java
  • centos7 系统优化

    CentOS7优化

    一.关闭selinux
    sed -i 's/=enforcing/=disabled/' /etc/selinux/config
    setenforce 0

    二.更改为阿里yum源
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    yum makecache

    三.优化ssh远程登录配置
    备份/etc/ssh/sshd_conf
    cp /etc/ssh/sshd_config{,.`date +%F`.bak}

    不允许基于GSSAPI的用户认证
    sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/' /etc/ssh/sshd_config

    不允许sshd对远程主机名进行反向解析
    sed -i 's/#UseDNS yes/UseDNS no/' /etc/ssh/sshd_config

    systemctl restart sshd

    四.历史记录数及登录超时环境变量设置
    设置闲置超时时间为300s
    echo 'export TMOUT=300' >>/etc/profile

    设置历史记录文件的命令数量为100
    echo 'export HISTFILESIZE=100' >>/etc/profile

    设置命令行的历史记录数量
    echo 'export HISTSIZE=100' >>/etc/profile

    格式化输出历史记录(以年月日分时秒的格式输出)
    echo 'export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"' >>/etc/profile

    source /etc/profile
    tail -4 /etc/profile


    五.调整linux描述符
    文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件.文件描述符与包括相关信息(如文件的打开模式,文件的位置类型,文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文.文件描述符的有效范围是0到OPEN_MAX.
    对于内核而言,所有打开的文件都是通过文件的描述符引用的.当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符,当读或写一个文件时,使用open或create返回的文件描述符标识该文件,并将其作为参数传递给read或write.
    查看系统文件描述符设置的情况可以使用下面的命令,文件描述符大小默认是1024.
    ulimit -n
    对于高并发的业务Linux服务器来说,这个默认的设置值是不够的,需要调整.
    调整方法一:
    调整系统文件描述符为65535
    echo '* - nofile 65535' >>/etc/security/limits.conf
    tail -l /etc/security/limits.conf
    调整方法二:
    直接把ulimit -SHn 65535命令加入/etc/rc.d/rc.local,用以设置每次开机启动时配置生效,命令如下:
    echo " ulimit -HSn 65535" >>/etc/rc.d/rc.local
    echo " ulimit -s 65535" >>/etc/rc.d/rc.local

    六.定时清理邮件服务临时目录垃圾文件
    centos7默认是安装了Postfix邮件服务的,因此邮件临时存放地点的路径为/var/spool/postfix/maildrop,为了防止目录被垃圾文件填满,导致系统额inode数量不够用,需要定期清理.
    定时清理的方法为:将清理命令写成脚本,然后做成定时任务,每日凌晨0点执行一次.

    #创建存放脚本的目录
    [ -d /server/scripts/shell ] && echo "directory already exists." || mkdir /server/scripts/shell -p

    #编写脚本文件
    echo 'find /var/spool/postfix/maildrop/ -type f|xargs rm -f' >/server/scripts/shell/del_mail_file.sh

    #查看
    cat /server/scripts/shell/del_mail_file.sh

    #加入计划任务
    echo "00 00 * * * /bin/bash /server/scripts/shell/del_mail_file.sh >/dev/null &1" >>/var/spool/cron/root
    crontab -l

    七.内核优化
    Linux服务器内核参数优化,主要是指在Linux系统中针对业务服务应用而进行的系统内核参数调整,优化并无一定的标准.下面是生产环境下Linux常见的内核优化:

    cat >>/etc/sysctl.conf<<EOF
    #kernel_flag
    #关闭ipv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1
    # 避免放大攻击
    net.ipv4.icmp_echo_ignore_broadcasts = 1
    # 开启恶意icmp错误消息保护
    net.ipv4.icmp_ignore_bogus_error_responses = 1
    #关闭路由转发
    #net.ipv4.ip_forward = 0
    #net.ipv4.conf.all.send_redirects = 0
    #net.ipv4.conf.default.send_redirects = 0
    #开启反向路径过滤
    net.ipv4.conf.all.rp_filter = 1
    net.ipv4.conf.default.rp_filter = 1
    #处理无源路由的包
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.default.accept_source_route = 0
    #关闭sysrq功能
    kernel.sysrq = 0
    #core文件名中添加pid作为扩展名
    kernel.core_uses_pid = 1
    # 开启SYN洪水攻击保护
    net.ipv4.tcp_syncookies = 1
    #修改消息队列长度
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    #设置最大内存共享段大小bytes
    kernel.shmmax = 68719476736
    kernel.shmall = 4294967296
    #timewait的数量,默认180000
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096 87380 4194304
    net.ipv4.tcp_wmem = 4096 16384 4194304
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    #每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
    net.core.netdev_max_backlog = 262144
    #限制仅仅是为了防止简单的DoS 攻击
    net.ipv4.tcp_max_orphans = 3276800
    #未收到客户端确认信息的连接请求的最大值
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0
    #内核放弃建立连接之前发送SYNACK 包的数量
    net.ipv4.tcp_synack_retries = 1
    #内核放弃建立连接之前发送SYN 包的数量
    net.ipv4.tcp_syn_retries = 1
    #启用timewait 快速回收
    net.ipv4.tcp_tw_recycle = 1
    #开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout = 1
    #当keepalive 起用的时候,TCP 发送keepalive 消息的频度。缺省是2 小时
    net.ipv4.tcp_keepalive_time = 30
    #允许系统打开的端口范围
    net.ipv4.ip_local_port_range = 1024 65000
    #修改防火墙表大小,默认65536
    #net.netfilter.nf_conntrack_max=655350
    #net.netfilter.nf_conntrack_tcp_timeout_established=1200
    # 确保无人能修改路由表
    #net.ipv4.conf.all.accept_redirects = 0
    #net.ipv4.conf.default.accept_redirects = 0
    #net.ipv4.conf.all.secure_redirects = 0
    #net.ipv4.conf.default.secure_redirects = 0
    EOF
    /sbin/sysctl -p

    八.安装常用软件
    yum install lrzsz ntpdate sysstat net-tools wget vim bash-completion dos2unix -y


    九.更新系统到最新
    #更新补丁并升级系统版本
    yum update -y

    #只更新安全补丁,不升级系统版本
    yum --security check-update #检查是否有安全补丁
    yum update --security #更新安全补丁

  • 相关阅读:
    Nginx应用详解及配置
    mongodb复制+分片集原理
    memcached架构及缓存策略
    redis数据类型
    redis数据库安装 redis持久化及主从复制
    shell脚本-正则、grep、sed、awk
    kvm虚拟机管理基础
    kvm热添加和热迁移
    zabbix调用api检索方法
    kubernetes deployment升级和回滚
  • 原文地址:https://www.cnblogs.com/linux20190409/p/15519004.html
Copyright © 2011-2022 走看看