谈LINUX系统优化与安全加固
2022-07-11王凤武
王凤武
(大庆油田信息技术公司营业管理中心,黑龙江 大庆 163000)
作为一种免费开源操作系统,Linux也能够应用在开源软件实践以及应用平台中,通过该系统能够对apache、tomcat、mysq1、php等众多开源软件形成有效支撑,作为一种开源软件,自由、开放是其最大理念,Linux则最终是要通过开源软件将应用成本控制在最低程度,与此同时,实现性能的最优化。鉴于此,Linux操作系统在性能方面则主要是体现在系统与应用程序之间的组合最优化。系统性能主要指的是整个操作系统在执行任务的过程中体现出的有效性和稳定性以及响应速度等,Linux系统管理员在实际应用过程中系统不稳定、响应速度慢等问题相对比较常见,例如,在搭建web服务的过程中经常会面临网页打开速度慢或者根本无法打开的现象,此时很多人会对Linux系统因为体验不好而抱怨,但是这仅属于一种表象。操作系统在执行任务的过程中于系统自身设置、路由设备的路由策略、物理线路、接入设备以及网络拓扑结构等存在直接的联系,其中一个部分出现问题整个系统性能都会受到影响。因此,Linux在应用过程中一旦遇到问题,首先应该从操作系统、服务器硬件网络环境以及操作系统等进行全方位排查,快速实现问题定位并进行集中解决。上述几个环节中操作系统和应用程序是对系统的定性的影响最大的两个方面,而且这两个方面产生问题通常都具有较强隐蔽性。网络和硬件出现问题后通常都可以实现快速定位。Linux是目前企业中使用最多的一类服务器操作系统,而目前针对Linux攻击的黑客也越来越多了。如何为这类服务器做好安全加固工作也是系统维护人员的一项核心工作。本文主要讲解操作系统方面的性能调优和安全加固思路。那么,通常情况下有哪些思路可以快速解决系统性的问题?以下将重点从操作系统影响因素的四个方面介绍Linux操作系统优化。
1 Linux操作系统优化
1.1 CPU
操作系统可以实现稳定运行期根本在于CPU,操作系统整体性能大部分取决于CPU的速度和性能,很多人认为服务器配备运动的CPU、CPU主频越高其整体性能越好。但是,从实际角度来看,部分CPU在同一时间段内只能针对一个线程进行应用,而多个线程在同一时间段运行则需要超线程处理器,因此,要想进一步提升系统性能可以充分利用超线程处理器,Linux系统在运行过程中只有配备SHell内核的情况下才能够支持超线程,但是, CPU安装数量越多的情况下,超线程的性能提升反而越少。此外,在面向多核处理器的过程中Linux内核会将其识别为多个单独的CPU,例如,系统配置了两个四核CPU的情况下,系统会将其识别为8颗单独的CPU。而2颗4核CPU与8颗单核CPU的性能完全不同,根据相关的实验测试可以发现,两颗四核CPU的整体性能仅仅能够达到后者的25%~30%,动态web服务器以及邮件服务器等可能会导致CPU产生瓶颈,针对这类应用通常情况下需要更加关注CPU性能和配置。图1为多个物理CPU和多核CPU通过总线进行通信,可以看出,多颗CPU效率比较低,如下。
图1
1.2 内存
Linux系统的整体性能也会受到内存大小的影响,如果内存过小的情况下会导致系统进程阻塞,此时,系统应用运行速度也会变慢,甚至在一些情况下会出现不响应,如果系统内存过大的情况下也会出现资源浪费。Linux系统目前主要采取的是物理和虚拟内存等两种概念,虽然在另有虚拟内存的基础上能够让物理内存的不足得到有效弥补,由于虚拟内存实际上是在硬盘上划分出来的制定空间,所以虚拟内存占用过多的情况下,也会严重影响应用程序性能,要想充分保障程序在运行过程中保持高性能,就要配备足够的物理内存,而物理内存过大的情况下又会出现资源浪费,例如,在一个Linux操作系统上配备了32位处理器,如果物理内存超过8G的情况下就是资源浪费。鉴于这种状况,要想让物理内存更大,可以将操作系统更新为64位,与此同时,也可以在1inux大内存内核开启后来形成有效支撑。处理器寻址范围通常情况下处在32位操作系统上,因此,对于单个应用程序进程来说,其最大可以使用2G内存,在这种情况下,及时配备更大的物理内存,应用程序也不能够充分利用,此时,可以通过配置64位处理器,并将系统更新为64位,这样就能够让应用程序满足内存使用要求,目前主要有数据库服务器、打印服务器等可能出现内存性能瓶颈,针对这一现象,可以重点考虑内存的大小。图2为虚拟内存的示意图。
图2
1.3 磁盘I/0宽带
应用程序的整体性都会受到磁盘的I/0性能的直接影响,如果应用频繁存在读写操作的情况下,磁盘I/0不能满足性能要求,非常容易导致应用程序出现停滞的现象。目前,为了进一步提升磁盘I/0性能,使用了多种方法,其中最常见的方法有RAID技术。
RAID(Redundant Array of Independent Disks)被称为是独立磁盘冗余阵列,通常情况下将其简称为磁盘阵列。按照不同方式将多块独立物理硬盘组合后形成磁盘组(逻辑硬盘),这样形成的磁盘组有比单个磁盘的I/O性能和数据冗余更高。充分利用过RAID技术形成的磁盘组本质上相当于构建了一个大硬盘,如果可以针对该大硬盘进行格式化或者是建立文件系统等相关操作,在使用方面与单独的物理硬盘完全相同,但需要注意的是,RAID磁盘组的I/O性能要明显更高,而且也能够提供更加安全的数据服务。磁盘组合方式不同的情况下,RAID又可以进一步划分为RAID0,RAID1、RAID2、RAID3、RAID5、RAID6、RAID10等多个几天,目前最常用的有RAID0、RAID1、RAID5、RAD0+1。这里简单介绍如下。
RAID0:将多个磁盘通过多种方式结合后形成更大的硬盘组就能够让硬盘的整体性能和吞吐量得到全面提升。这种应用技术实现成本相对较低,但是,需要保障两个以上的磁盘来组成磁盘组,在这种模式下形成的磁盘组不具备数据修复和容错等相关功能,因此这种方法通常情况下也是应用在数据安全性较低的环境中。
RAID1:基本上就是磁盘镜像,将一个磁盘数据在另一个磁盘数据上进行镜像,通过这种方式让两个磁盘保持,要注意的是,与单个硬盘相比较RAID1磁盘组具有更高的I/0性能,而且也能够全面提升磁盘数据的安全性、可靠性和可修复性,通过这种模式形成的磁盘数据冗余能力更强,但实际经济可以达到50%左右的利用率,因此实际应用成本相对较高,进行重要数据保存的过程中可以进行利用。
RAID5:该技术主要是通过对磁盘分段以及奇偶校验技术积极利用后视系统整体的可靠性得到全面提升,RAID5模式下能够在写入效率一般的情况下达到很高的突出效率,但是该方法需要3块以上的硬盘。而且当其中一块磁盘存在故障的情况下数据可靠性不会受到影响。
RAID0+1:RAID0+1主要是将RAID0和RAID1两种技术进行结合而成,该技术在应用过程中需要的磁盘数量为4个以上。该方法下每个磁盘都具有其相应的镜像盘,因此具有极高的全冗余能力,而且其中一个磁盘故障后对整体的数据可用性不会产生影响。详细介绍RAID级别等相关技术后,可以结合实际应用情况选择更加适合的RAID级别,这样就能够让系统整体的磁盘性能达到最优化。
1.4 网络I/0宽带
Linux系统中的各种应用通常情况下都是建立在网络的基础上,因此,系统整体性能也会受到网络带宽的影响,如果网络存在不稳定或者低速的情况下很容易出现访问阻塞,而网络高速以及稳定的情况下应用程序这可以通畅运行。而目前千兆宽带已经基本实现普及,因此,网络带宽问题对系统整体的性能影响也非常低。
2 linux系统安全加固
2.1 用户账户以及登录安全
(1)删除多余用户和用户组。Linux本身属于一种多用户的操作系统,在系统中角色账户存在多种,系统在安装后为默认未添加许多用途和用户,如果在不需要其中一部分用户和用途的情况下可以及时进行删除,这样就可以避免黑客利用这些账户实施服务器攻击。在具体使用过程中,可以结合服务器的具体用途来选择保留哪些账户。
(2)关闭不需要的系统服务。在安装系统的过程中系统会对各类服务程序内容进行自主选择,如果服务器需要长时间运行的情况下,服务程序运行数量越多就会对系统的安全性产生更大影响。针对这些问题,用户或者用户的需求需要一直关闭应用不到达程序,这样就能够极大地提升系统整体的安全性能。
(3)密码安全策略。Linux操作系统下主要配备了密钥和密码认证等两种远程系统登录认证模式。其中,密钥认证主要是通过在远程服务器上存储公钥,而在本地存储私钥。系统在登录后用户可以充分利用本地私钥远程服务器公钥配对认证,如果实现匹配一致则可以顺利登录系统。这种认知方式下暴力破解无效。而且,在充分保证本地私钥安全性的情况下,也可以有效避免黑客盗取,这样攻击者就无法通过破解认知方式而实现。因此,在登录系统的过程中推荐使用密钥方法。
(4)有效应用su、sudo命令。su命令主要是实现用户之间的切换。当以管理员身份登录系统后可以利用su命令及时切换到超级用户角色,这样就可以相应的获取超级权限。但是,超级用户本身具有过大的权限,而且管理人员也知道超级用户密码,可见su命令在应用过程中具有较高的管理风险。普通用户可以通过sudo命令让系统陚予其超级权限,但是,并不需要切换超级用户模式。因此,在这种模式下可以实现权限分配的细化,面对系统的每一位管理员可以利用sudo命令相应地赋予其管理权限。
2.2 远程访问及登陆认证安全
远程登录应用SSH登陆方式。Telnet做一种登录认证服务本身存在一定安全性,其内容在网络传输过程中使用的是明文,这样非常容易导致Telnet数据包在传输过程中被黑客截取,这样就能够获得用户的登录口令。而且这种安全验证方式下本身也会存在安全隐患,很容易成为黑客的攻击目标。
SSH服务在进行数据传输过程中进行了加密,能有效避免出现DNS欺骗以及IP欺骗,而且数据传输过程经过压缩后能够充分保障远程连接的安全性。
2.3 文件系统的安全
(1)加固系统重要文件。Linux系统在应用过程中如果超级权限被黑客获取,那么,黑客就可以在登录系统之后进行任何操作。针对这一问题,通过利用文件加固系统能够为系统提供最后一道安全防线。管理员可以针对系统中的一些重要文件和目录利用chattr命令进行锁定。
(2)文件权限检查与修改。在系统中保存的一些重要文件如果没有相应的设置合理的权限联合的系统操作安全性产生影响。鉴于此,作为系统维护人员要对文件和目录权限不匹配的问题进行及时发现给予更正,避免安全事件发生。
(3)安全设定/Imp、/var/lmp、/dev/shm。在整个操作系统中,其作为一种目录主要是用来进行临时文件的存放,而且主要有/tmp与/var/tmp两种方式。它们的特点相同,也就是可以为所有的用户提供读写和执行等操作,在这种情况下,整个系统就能保持安全性。分别设置两个目录后,不允许其目录下执行相应的应用程序。
3 结语
本文介绍了Linux系统优化和安全加固,通过上述的论述可以看出,每个影响系统性能的因素都会存在一定的相互联系,在进行排查的过程中不能孤立地对待,性能产生问题的情况下很可能是因其他方面问题引发。既有硬件方面的因素,也有软件和系统方面的因素,所以处理性能问题时,要纵观全局进行综合考虑。