运维基本功(十五):Linux系统优化基础

一、登录系统:

不使用root登录,通过sudo授权管理,使用普通用户登录

二、禁止SSH远程:

通过PermitRootLogin来更改默认的远程连接SSH服务及禁止root远程连接

[root@c7 ~]# su root   #进入超级用户模式
[root@c7 ~]#chmod u+w /etc/sudoers  #添加文件的写权限
[root@c7 ~]#vim /etc/sudoers  #编辑/etc/sudoers文件,找到这一行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(xxx是你的用户名),然后保存.
[root@c7 ~]#chmod u-w /etc/sudoers #撤销文件的写权限
[root@c7 ~]#/etc/ssh/sshd_config #修改文件,禁止root用户登录

PermitRootLogin的#号去掉,yes改为no,重启network

在这里插入图片描述

按照以上方法,root用户将不能登录,则使用你自己的用户登录。切换到root权限可使用

[root@c7 ~]#su root

三、时间同步:定时自动更新服务器时间

[root@c7 ~]# crontab -e  #设置自动执行任务
 * * * * *   /usr/sbin/ntpdate time.windows.date #设置每分钟同步 

保存成功的文件去哪里了呢?在/var/spool/cron/下面

四、配置yum更新源,从国内更新下载安装rpm包

参考Linux下yum源配置实战

五、关闭selinux及iptables

[root@c7 ~]# sed -i '/^SELINUX/c SELINUX=disabled' /etc/selinux/config #永久关闭selinux
[root@c7 ~]# chkconfig iptables off #永久关闭防火墙

iptables工作场景如有wan ip,一般要打开,高并发除外

六、调整文件描述符数量

进程及文件的打开都会消耗文件描述符,查看Linux服务器文件描述符设置的情况可以使用ulimit -n命令,文件描述符大小默认是1024

[root@c7 ~]# ulimit -n  

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

方法1:

执行vim /etc/security/limits.conf命令,在文件结尾加上如下一行。

  *               -       nofile          65535 

配置完成后,需重新登录才可以生效

方法2:

直接把ulimit -SHn 65535命令加入/etc/rc.local,用以设置每次开机启动时配置生效,命令如下

cat >>/etc/rc.local<<EOF 
#-S use the 'soft' resource limit  
#-H  use the 'hard' resource limit  
#-n  the maximum number of open file descriptors  
ulimit -HSn 65535  
#-s the maximum stack size  
ulimit -s 65535  
EOF 

七、定时自动清理

主要清理/var/spool/clientmquene/目录垃圾文件

防止节点被占满,很简单,在cron的自动执行语句后加上> /dev/null 2>&1
例:

9 9 * * * /usr/local/bin/cvsb > /dev/null 2>&1

(c6.4默认没有sendmail,因此可以不配。)

八、精简开机启动服务

sshd

远程连接Linux服务器时需要用到这个服务程序,所以必须要开启。

rsyslog

日志相关软件,这是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog程序将各种信息写到各个系统日志文件中,Centos6以前此服务的名字为syslog。

network

系统启动时,若想激活/关闭各个网络接口,则应(必须)考虑开启。

crond

该服务用于周期性地执行系统及用户配置的任务计划。有要周期性执行任务时,就要开启,此服务几乎是生产场景必须要用的一个软件。

sysstat

sysstat是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等,对这些数据的收集和分析,有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务器的得力助手

一些指令
在这里插入图片描述
处理命令:在这里插入图片描述

九、Linux内核参数优化

cat >> /etc/sysctl.conf << EOF

kernel optimization

cat >> /etc/sysctl.conf << EOF

# kernel optimization
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
EOF

将上面的内核参数加入/etc/sysctl.conf文件中,执行如下命令使之生效:

sysctl -p

sysctl.conf内核文件中常用参数含义

  • net.ipv4.tcp_fin_timeout
    表示套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间,默认值是60秒。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_fin_timeout 60

  • net.ipv4.tcp_tw_reuse
    表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认值为0,表示关闭。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_reuse 0

  • net.ipv4.tcp_tw_recycle
    表示开启TCP连接中TIME-WAIT sockets的快速回收。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_tw_recycle,默认为0,表示关闭。
    提示:reuse和recycle这两个参数是为防止生产环境下Web、Squid等业务服务器time_wait网络状态数量过多设置的。

  • net.ipv4.tcp_syncookies
    表示开启SYN Cookies功能。当出现SYN等待队列溢出时,启用Cookies来处理,可防范少量SYN攻击,这个参数也可以不添加。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syncookies,默认值为1

  • net.ipv4.tcp_keepalive_time
    表示当keepalive启用时,TCP发送keepalive消息的频度。默认是2小时,建议改为10分钟。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_keepalive_time,默认为7200秒。

  • net.ipv4.ip_local_port_range
    该选项用来设定允许系统打开的端口范围,即用于向外连接的端口范围。
    该参数对应系统路径为:/proc/sys/net/ipv4/ip_local_port_range 32768 61000

  • net.ipv4.tcp_max_syn_backlog
    表示SYN队列的长度,默认为1024,建议加大队列的长度为8192或更多,这样可以容纳更多等待连接的网络连接数。
    该参数为服务器端用于记录那些尚未收到客户端确认信息的连接请求最大值。
    该参数对象系统路径为:/proc/sys/net/ipv4/tcp_max_syn_backlog

  • net.ipv4.tcp_max_tw_buckets
    表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数值,TIME_WAIT套接字将立刻被清除并打印警告信息。
    默认为180000,对于Apache、Nginx等服务器来说可以将其调低一点,如改为5000~30000,不通业务的服务器也可以给大一点,比如LVS、Squid。
    此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_tw_buckets

  • net.ipv4.tcp_synack_retries
    参数的值决定了内核放弃连接之前发送SYN+ACK包的数量。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_synack_retries,默认值为5

  • net.ipv4.tcp_syn_retries
    表示在内核放弃建立连接之前发送SYN包的数量。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syn_retries 5

  • net.ipv4.tcp_max_orphans
    用于设定系统中最多有多少个TCP套接字不被关联到任何一个用户文件句柄上。
    如果超过这个数值,孤立连接将被立即被复位并打印出警告信息。
    这个限制只有为了防止简单的DoS攻击。不能过分依靠这个限制甚至认为减少这个值,更多的情况是增加这个值。
    该参数对应系统路径为:/proc/sys/net/ipv4/tcp_max_orphans 65536

  • net.core.somaxconn
    该选项默认值是128,这个参数用于调节系统同时发起的TCP连接数,在高并发的请求中,默认的值可能会导致链接超时或重传,因此,需要结合并发请求数来调节此值。
    该参数对应系统路径为:/proc/sys/net/core/somaxconn 128

  • net.core.netdev_max_backlog
    表示当每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包最大数。
    该参数对应系统路径为:/proc/sys/net/core/netdev_max_backlog,默认值为1000

十、更改字符集

支持中文,但是还是建议使用英文,防止乱码问题出现

查看当前系统字符集
在这里插入图片描述
查看当前系统支持的字符集

在这里插入图片描述
修改系统字符集

临时生效:

LANG=字符集

永久生效:

 [root@xiaorui ~]# vim /etc/sysconfig/i18n

LANG="zh_CN.UTF-8"

[root@xiaorui ~]# source /etc/sysconfig/i18n

十一、锁定关键系统文件

chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab 

处理以上内容后,把chatter改名,就更安全了

上锁:在这里插入图片描述
查看做了什么处理
在这里插入图片描述
解锁
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab

十二、清空登录信息

去除系统及内核版本登陆前的屏幕显示
方法一:>/etc/issue
方法二:cat /dev/null >/etc/issue

/etc/null相当于黑洞,把黑洞给谁谁就没了

在这里插入图片描述
运维基本功系列链接:
运维基本功(一):Linux系统安装
运维基本功(二):Linux基本命令
运维基本功(三):Linux文件管理
运维基本功(四):Linux文件管理-Vim编辑器概述
运维基本功(五):Linux文件管理-用户管理
运维基本功(六):Linux用户管理-远程管理
运维基本功(七):Linux的权限管理操作
运维基本功(八):Linux自有服务与软件包管理
运维基本功(九): Linux自有服务-防火墙&计划任务
运维基本功(十): Linux计划任务以及进程检测与控制
运维基本功(十一): LAMP项目部署实战
运维基本功(十二): Linux命令回顾与扩展
运维基本功(十三): 再谈用户组管理
运维基本功(十四):Linux下yum源配置实战
运维基本功(十五):Linux系统优化基础

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值