设为主页
加入收藏
联系我们
返回首页
 
 
网吧技术 网吧经营 网管心声 网吧名站
 
   
  您现在的位置>>首页>>网吧技术  
 
     
 

 

Linux操作系统的安全服务管理怎样配置

文章来源:builder.com


   任何计算机安全措施的一个重要方面是维持实际控制服务的运行。本文向你展示了在 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 系统安全的重要部分,但是它也只是全面安全计划的一部分。


【本站声明】本站刊载的部分内容全部来源互联网,对于此类文章本站仅提供交流平台,不为其版权负责。如涉及侵犯您的知识产权的文章,请联系我们,我们将尽快做出更正。并向您表示感谢!同时特别感谢对本站所有支持的网友。

 
 
综合搜索 百度 google 爱问 搜狗 中搜 雅虎 MP3 图片 flash 视频
您好!中国好用是残疾人创办站,欢迎你设为首页,你每一次的使用,就是一份爱心,对我们来说就是一份希望......