【centos7优化】


优化详解: 优化详解

一.关闭selinux

修改配置文件可使配置文件生效,但必须要重启系统,此步骤是sed快速修改方法,也可以通过vim编辑/etc/selinux/config来修改此文件.

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远程登录配置

1 备份/etc/ssh/sshd_conf
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.2018-08-20.bak

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

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

4 禁止root用户登录(测试环境先不做处理)
sed -i ‘s%#PermitRootLogin yes%PermitRootLogin no%/etc/ssh/sshd_config

5 不允许空密码登录
sed -i ‘s%#PermitEmptyPasswords no%PermitEmptyPasswords no%/etc/ssh/sshd_config

6 systemctl restart sshd

四.设置时间同步

 1 检查是否安装ntpdate
 rpm -qa|grep ntpdate 
 ntpdate-4.2.6p5-28.el7.centos.x86_64
 2 如果没有安装,则使用yum安装
 yum install -y ntpdate 
 3 添加计划任务,5分钟同步一次时间;(也可以ntpdate ntp1.aliyun.xom)
 echo ‘#time sync by dm at 2018-8-20>>/var/spool/cron/root
 echo ‘*/5 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/dev/null 2>$1>>/var/spool/cron/root
 crontab -l

五.历史记录数及登录超时环境变量设置

 vim /etc/profile
 #1 设置闲置超时时间为300s(用户登录超时) (测试环境不做处理)
 echo ‘export TMOUT=300>>/etc/profile 
 #2 设置历史记录文件的命令数量为100
 echo ‘export HISTFILESIZE=100>>/etc/profile
 #3 设置命令行的历史记录数量
 echo ‘export HISTSIZE=100>>/etc/profile
 #4 格式化输出历史记录(以年月日分时秒的格式输出)
 echo ‘export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S"‘ 
 
 source /etc/profile
 tail -4 /etc/profile

六.调整linux描述符

文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件.文件描述符与包括相关信息(如文件的打开模式,文件的位置类型,文件的初始类型等)的文件对象相关联,这些信息被称作文件的上下文.文件描述符的有效范围是0到OPEN_MAX.
对于内核而言,所有打开的文件都是通过文件的描述符引用的.当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符,当读或写一个文件时,使用open或create返回的文件描述符标识该文件,并将其作为参数传递给read或write.

查看系统文件描述符设置的情况可以使用下面的命令,文件描述符大小默认是1024.
[root@localhost ~]# ulimit -n
1024

对于高并发的业务Linux服务器来说,这个默认的设置值是不够的,需要调整.
调整方法一:

调整系统文件描述符为65535
echo ‘*        -    nofile    65535>>/etc/security/limits.conf
tail -l /etc/security/limits.conf

需要重新登录查看

[root@localhost ~]# ulimit -n
65535

调整方法二:

直接把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常见的内核优化:

vim /etc/sysctl.conf
#kernel_flag
#关闭ipv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
#决定检查过期多久邻居条目
net.ipv4.neigh.default.gc_stale_time=120
#使用arp_announce / arp_ignore解决ARP映射问题 net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_announce=2
# 避免放大攻击
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
#定义了系统中每一个端口最大的监听队列的长度,对于一个经常处理新连接的高负载web服务环境来说,默认的128太小了。
net.core.somaxconn=1280 
#修改消息队列长度
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

sysctl -p

九.更新系统到最新

#1.更新补丁并升级系统版本
yum update  -y 
#2.只更新安全补丁,不升级系统版本
#检查是否有安全补丁
yum --security check-update        
#更新安全补丁
yum   update --security    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着蜗牛追汤圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值