任何计算机安全措施的一个重要方面是维持实际控制服务的运行。本文向你展示了在Linux操作系统的PC机上如何配置安全服务管理。
任何计算机安全措施的一个重要方面是维持实际控制服务的运行,让不必要的网络服务接受请求将提高系统的安全风险。即使这些网络服务对于服务器的某些功能是必要的也需要仔细管理,并且对其进行配置最小化不受欢迎的入侵和登录的可能性。
为Linux安全性时,使用/etc/inittab文件、runlevels和一两个服务管理“superdaemons”如inetd或xinetd直接管理服务。
inittab
/etc/inittab文件用于系统的初始化过程启动系统服务。在一个配置好的系统上,虽然它一般都不会包括很多服务,但是在某些Linux系统的默认安装中会加载很多其他服务。/etc/inittab文件内容有些模糊,它的重要之处在于让服务管理变得相对简单。
首先,可不要通过/etc/inittab文件方式向系统启动项中添加服务。
第二,不要移除/etc/inittab文件中第一个冒号之前其第一个字段是单精度型的数字,或整个登录服务的前面部分。以单精度数字开头的行可以打开TTY控制台,所有服务在它们打开之前都一一列出,甚至列出其更重要的功能。也许有些例外情况,在不改动它时是很安全的,尤其如果不确定的情况下请不要改动。
第三,/etc/inittab在导入和runlevel选择的时候用于过程管理。一般不用于正常的系统操作。
第四,在导入时由rc系统开始添加步骤,而不是init系统。如果看看/etc/inittab的内容,将会注意到登录以rc0到rc6这样的字符结束。这是初始化系统如何处理runlevels的说明。
runlevels
基于Linux操作系统的运转可以通过runlevels进行管理。不同的runlevels被定义成有不同的行为,就像Windows操作系统一样,它有正常操作模式、安全模式、在某些情况下还有DOS模式。
Runlevel 0用于关闭系统,如果软电源设置恰当,它能关闭系统电源。
Runlevel 1是单用户无网络的模式,它用于低水平的故障修复和管理操作。
Runlevel 2到Runlevel 5正常系统操作的多用户模式。Runlevel2和3是命令行模式,3有网络连接而2没有网络连接。Runlevel 5用于启动X Windows提供图形用户接口。
Runlevel 6用于系统重启,当整个init系统甚至bootloader 需要重启时采用它。
其他runlevels由系统管理员进行定义,但是“传统”UNIX系统没有此功能。这种情况下,他们不能被定义也不能被使用。
在shell处,可以输入runlevel命令找到以前的renlevel和当前 runlevel。如果没有更改系统 runlevel ,命令的输出结果为大写N后面跟runlevel的数字,这里的N表示没有前runlevel,如果要更改runlevel,可以使用init命令,后面跟想要使用到的runlevel的数字。例如,输入init 6表示重启系统,或init 1 进入单用户模式。
配置runlevel的过程每一版本的情况都不同。例如,在Debian GNU/Linux系统中,位于/etc/init.d的服务脚本有来自/etc/rcN.d的路径与它们进行链接,这里的N表示需要配置的 runlevel数字。以字母K开头的symlinks指示在进入runlevel时被杀死的程序,而以字母 S开头的symlinks指示在进入runlevel时被启动的程序。字母后面的数字值越大,从1到99,表示启动或杀死的时间愈靠后。
大多数基于RPM的版本都采用RedHat所用到的rc系统。比起基于Debian的系统,这一系统使用更复杂的路径结构,并且不同的基于RPM的系统之间也有很大的不同。说明书上提供了更多的关于管理runlevel的信息。
inetd
一个用于Linux后台程序管理的“superdaemon”是众所周知的inetd,它是个用于服务管理的命令行工具。终止服务很简单:首先,作为根用户用文本编辑器打开/etc/inetd.conf文件。接下来,找到文件中需要终止的服务。最后,在服务所在行的最前面添加#符号(其他还有“尖顶符”和“英镑符”),如下所示。“注释掉”这一行,因此inted以后都不会启动这一服务。
编辑之前服务登录可能是下面这样:
ident stream tcp wait identd /usr/sbin/identd identd
停止之后,服务登录变成下面这个样子:
# ident stream tcp wait identd /usr/sbin/identd identd
如果正在卸载被登录参考的后台程序,可以删除文件中的某些行——是否通过包管理器进行卸载或删除执行文件卸载(对于上面的例子是/usr/sbin/identd文件)。
编辑/etc/inetd.conf文件之后,保存它,inetd以后则可以使用更改。编辑和保存一旦完成,可以在根部输入下面的命令使更改即时生效:
kill -HUP `pidofinetd`
使用修改(保存)后的配置文件会导致inetd重启。
xinetd
另外一个称为xinetd的superdaemon比inetd更新颖更复杂,能完成更多的功能。但是对于关闭服务来说,他们的使用方法相似。
使用xinetd时,必须在/etc/xinetd.conf文件中添加一行关闭服务。如果只想简单的删除服务,必须删除好几行代码而不是一行。找到想要关闭的服务所在的那一块,在块的后面添加“disable = yes”这一行,或者删除整个块。例如,如果关闭telnet服务,需要像下面这样做。(这里的省略号代表了块的其他内容)
service telnet
{
. . .
disable = yes
}
在某些系统中,对于某些服务,服务配置并不在/etc/xinetd.conf文件中。例如,像telnet这样的服务有可能在文件/etc/xinetd.d/telnet中,改变其服务配置方法与它在/etc/xinetd.conf文件中的方法是一样的。
编辑保存了/etc/xinetd.conf文件后或者更改了服务文件后,可以输入下面的命令让修改即时生效:
kill -USR2 `pidofxinetd`
这将通知xinetd程序,使用更改后的配置。
Xinetd除了关闭或移除服务配置之外,还可以用于控制远程主机登录服务。这将通过几个机制完成:
可以为服务指定一个允许的主机。例如:可以通过在服务配置文件中添加only_from = 192.168.0.101这一行限制主机登录telnet服务。尽管使用了词语“only”,但是它只能限制主机的数目,而不仅仅只一台主机。也可以使用部分地址指定完整的网络。例如:可以使用“only_from = 192.168.0.to”表示本地Class C的任何主机都能访问这个服务。
可以在配置文件中为某个服务指定禁止的主机。例如:可以在配置文件中添加 “no_access = 192.168.0.102”这一行禁止这个主机远程访问telnet服务。这个也可以使用多次而且也可以使用部分地址指定多个主机。万一某个主机满足 only_from和no_access两个限制,则会权衡确定其访问权限。如果xinetd不能确定哪个限制能被应用,则系统默认更安全的选项——服务不会开启。
超越服务管理
对于安全的远程服务访问,还有更多的事情可以做。应该恰当配置防火墙保护服务免受攻击。代理服务器、通过网关服务器端口推进以及网络地址转移都能有效减少服务攻击的风险。针对安全使用,那些用于登录正在运行的服务工具也应进行配置,例如,如果使用安全shell进行远程连接而没有使用X Server时,在SSH中调低X forwarding是很重要的。直接进行安全管理是保证Linux系统安全的重要部分,但是它也只是全面安全计划的一部分。
分享到:
相关推荐
从给定的文件信息中,我们可以提炼出一系列与Linux系统管理相关的知识点,这些知识点涵盖了Linux系统的基本架构、关键组件以及管理技巧。以下是基于文件信息详细展开的知识点: ### Linux系统概述 - **操作系统的...
Linux系统管理基础项目教程主要针对的是CentOS 7.2版本,这是一款广泛使用的开源操作系统,尤其在服务器领域。...教学资料的性质意味着它将注重实践操作,使理论知识与实际应用相结合,提升你的Linux系统管理能力。
Linux服务器管理员教程是一套专为初学者设计的指南,旨在帮助读者掌握Linux系统的基本管理和维护技能。...通过学习这些基础知识,你将能够有效地管理你的Linux服务器,为更复杂的企业级任务打下坚实基础。
最后,【安全管理】章节详细阐述了Linux的安全策略,系统安全机制如权限控制、防火墙设置,安全日志的查看和审计功能的运用,以及防范常见的安全威胁。 教学方法采用“所见即所得”和“先知后行”,使学员在理论...
DHCP服务器安装与配、DNS服务器安装与配置、FTP服务器安装与配置、HTTP服务器安装与配置、Linux分区管理、Linux命令行基础、Linux图形桌面、linux救援模式、Linux文件系统管理、Linux的shell编程、Linux系统优化、...
Linux系统管理员培训视频教程是一套全面讲解Linux操作系统管理和运维的教育资源,主要针对Red Hat公司的Linux系统。这套教程共40课时,旨在帮助学习者掌握Linux的基础知识以及高级技巧,以便在实际工作中有效地管理...
而GNULinux是包含了GNU工具集的Linux系统,整个操作系统由Linux内核加上GNU软件组成,如GCC编译器、Glibc库等。 2. **Linux的四种安装类型**: - **图形化安装**:通过图形界面进行操作,适合新手。 - **文本模式...
在构建自己的Linux系统的过程中,你将深入理解操作系统的工作原理,并且掌握Linux的内核配置、编译以及安装等核心技能。下面将详细讲解这个过程的关键步骤。 首先,我们需要准备一个基础环境,通常选择一个已有的...
2. **Linux系统管理**:“云系统管理-02.pdf”可能会讲解Linux系统的安装、配置和维护,如用户管理、文件系统、网络设置、权限管理等基础知识,这些都是云环境中不可或缺的部分。 3. **虚拟化技术**:在“云系统...
6. **网络配置与服务管理**:掌握网络接口配置,如IP地址、子网掩码、路由设置,了解DNS、DHCP、NTP等网络服务的配置和管理。 7. **日志管理**:理解日志文件的重要性,学习如何查看和分析日志,如使用`less`、`...
在系统管理和排错方面,学习者将接触到如何安装和配置Linux系统,设置用户账户和权限,管理文件系统,配置网络服务如DNS、DHCP和HTTP,以及维护系统安全。故障排查内容可能包括日志分析、性能监控、服务调试和系统...
"Linux 下 CentOS 的系统安全配置详细教程" 在 Linux 操作系统中,系统安全配置是非常重要的一步。以下是对 CentOS 系统的安全配置详细教程。 账户安全管理 1. 修改密码长度:通过修改 `/etc/login.defs` 文件,...
Linux系统工程师教程是一套全面介绍Linux技术的教育资源,包含了从基础到进阶的多个主题,旨在帮助学习者掌握Linux系统管理、网络配置、Web服务以及编程等关键技能。以下是各个章节主要内容的详细概述: 第1章:...
《Linux操作系统实用教程》这本书是IT领域中关于Linux系统学习的经典资源,主要针对那些希望深入理解和熟练使用Linux系统的读者。Linux是一种开源的操作系统,它的源码公开,允许用户自由地修改和分发,这也是“源码...
Linux教程:Linux系统介绍与高级语言及管理 Linux是一种开源的操作系统,它的内核由林纳斯·托瓦兹在1991年首次发布。Linux系统以其稳定性、灵活性和自由度而闻名,广泛应用于服务器、桌面环境、移动设备以及嵌入式...
《Red Hat Linux系统与网络管理教程》PPT涵盖了Linux操作系统的核心概念、安装配置以及网络管理等多个方面,这对于理解和掌握Linux系统至关重要。以下是根据提供的PPT章节标题推测出的知识点概要: 1. **01章 - ...
本篇文章将从零开始,手把手教你如何构建一个属于自己的Linux系统。 #### 二、准备工作 在开始构建自己的Linux系统之前,我们需要做一些准备工作: 1. **选择合适的版本**:目前Linux From Scratch (LFS) 的最新...
该教程从 Linux 系统结构的角度来分析 Linux,介绍了 Linux 的体系结构、系统核心、进程管理、存储管理、文件管理、设备管理和网络管理等组件。 一、Linux 系统结构 Linux 操作系统的体系结构总体上属于层次结构。...