linux系统内核参数配置优化(简述linux内核优化怎么做)

linux系统内核参数配置优化(简述linux内核优化怎么做)

拿到一个新的linux系统需要做的安全和内核优化,主要是为了提升系统安全和提升性能,满足后续的应用需要。这里简单记录一下拿到一个新的系统需要做的一些事情,仅此抛砖引玉,具体可根据自己实际情况进行设置。

一、入口安全优化

毫无疑问,我们拿到以后登录做的第一件事便于入口的安全优化,相信做运维的基本都可以理解:最小的权限就是最大的安全。主要优化ssh入口。比如:(1)ssh配置优化。修改之前,需要将/etc/ssh/sshd_config备份一个,比如/etc/ssh/sshd_config.old, 主要优化如下参数:

Port 12011PermitRootLogin noUseDNS no#防止ssh客户端超时#ClientAliveInterval 30ClientAliveCountMax 99GSSAuthentication no

主要目的更改ssh远程端口、禁用root远程登录(本地还是可以root登录的)、禁用dns、防止ssh超时、解决ssh慢,当然也可以启用密钥登录,这个根据公司需求。注意:修改以后需重启ssh生效,另外需要iptables放行最新ssh端口。

(2)iptables优化。原则:用到哪些放行哪些,不用的一律禁止。建议模板可以参考《线上centos linux服务器iptables防火墙简易配置模板》。举下简单的按理:敏感服务比如mysql这种3306控制,默认禁止远程,确实有必要可以放行自己指定IP连接或者通过vpn拨号做跳板连接,不可直接放置于公网; 如单位有自己的公网IP或固定IP,那只允许自己的公网IP进行连接ssh或者指定服务端口就更好了。

二、用户权限以及系统安全优化。

(1)非root用户添加以及sudo权限控制。通过groupadd 以及useradd建立普通用户以后,需要配置对应的sudo权限,授权不同登录人员的可执行命令权限。此时建议普通用户禁止sudo su -切换root的权限。

sudo控制可以参考《通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加》,这里也只是抛砖引玉,具体权限可以根据自己公司实际情况进行权限分配。一般是root都在管理人员手中,而运维或者开发都划分其他对应权限,但建议都不能切换root,同时取消useradd、userdel、passwd以及chattr命令的授权。(2)用户配置文件锁定。针对/etc/passwd 、/etc/shadow 、/etc/group和/etc/gshadow进行chattr i保护,进一步提供系统用户管理安全。操作办法:

[root@21yunwei ~]# chattr i /etc/passwd /etc/shadow /etc/group /etc/gshadow

需要进行用户管理的时候,以root身份进行chattr -i取消保护即可。

(3)服务控制。默认无关服务都禁止运行并chkconfig xxx off,只保留有用服务。这种如果是云计算厂商提供的,一般都是优化过。如果是自己安装的虚拟机或者托管的机器,那就需要优化下,默认只保留network、sshd、iptables、crond、以及rsyslog等必要服务,一些无关紧要的服务就可以off掉了。(4)主机名更改以及selinux优化。ssh登录以后,势必会看到主机名,这个主机名建议根据业务需要进行命名,这个命名同时也方便于我们后续的监控自动添加以及saltstack等批量化管理有帮助。另外部分厂商提供的服务器selinux不一致,有很多开启的,建议关闭,否则影响个别正常使用,比如安装zabbix-agent以后会提示权限失败。操作方法:修改/etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled后重启机器即可。

三、内核参数优化。

(1) 文件描述符参数优化。 默认ulinit -n看到的是1024,这种如果系统文件开销量非常大,那么就会遇到各种报错比如:localhost kernel: VFS: file-max limit 65535 reached 或者too many open files 等等,那就是文件句柄打开数量已经超过系统限制,就需要优化了。

这个参数我们优化文件如下:vim /etc/security/limits.conf

# End of file* soft nofile 65535* hard nofile 65535* soft nproc 65535* hard nproc 65535

好了,退出当前终端以后重新登录可以看到ulinit -n已经改成了65535

(2)内核参数优化。具体优化的文件为/etc/sysctl.conf,后尾追加优化参数:

net.ipv4.neigh.default.gc_stale_time=120net.ipv4.conf.all.rp_filter=0net.ipv4.conf.default.rp_filter=0net.ipv4.conf.default.arp_announce = 2net.ipv4.conf.all.arp_announce=2net.ipv4.tcp_max_tw_buckets = 6000net.ipv4.tcp_syncookies = 1net.ipv4.tcp_max_syn_backlog = 262144net.core.netdev_max_backlog = 32768net.core.somaxconn = 32768net.core.wmem_default = 8388608net.core.rmem_default = 8388608net.core.rmem_max = 16777216net.core.wmem_max = 16777216net.ipv4.tcp_synack_retries = 2net.ipv4.conf.lo.arp_announce=2net.ipv4.tcp_timestamps = 0net.ipv4.tcp_synack_retries = 1net.ipv4.tcp_syn_retries = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_mem = 94500000 915000000 927000000net.ipv4.tcp_fin_timeout = 1net.ipv4.tcp_keepalive_time = 600net.ipv4.ip_local_port_range = 1024 65000fs.file-max=65535

设置完以后执行命令sysctl -p使得配置新配置的内核参数生效。这个内核对系统本身安全以及高并发都非常的有效。

核心优化基本就这么多,其他的优化诸如dns修改、yum源以及字符集之类的,一般用户本地虚拟机机器或者托管的机器拿到做优化,像阿里ECS、aws的EC2等,基本都没必要做这些了。

让您学习到的每一节课都有所收获

《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。

??Linux技术交流A群(满):560843

??Linux技术交流B群:340829

??Linux技术交流C群:463590

??Linux技术交流D群:915246

??Linux技术交流E群:1663106

??Linux技术交流F群:1653851

??Linux技术交流G群:2632018(新群,火热加群中……)

??官方站点:www.linuxprobe.com

?? 电脑在线阅读效果更佳:

第0章 咱们先来谈谈学习方法和红帽系统。

发表评论

登录后才能评论