热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

如何配置Linux安全服务管理

文章标题:如何配置Linux安全服务管理。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

    任何计算机安全措施的一个重要方面是维持实际控制服务的运行,让不必要的网络服务接受请求将提高系统的安全风险。即使这些网络服务对于服务器的某些功能是必要的也需要仔细管理,并且对其进行配置最小化不受欢迎的入侵和登录的可能性。

     为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系统安全的重要部分,但是它也只是全面安全计划的一部分。

原文链接:http://www.zdnet.com.cn/developer/code/story/0,3800066897,39514236,00.htm


推荐阅读
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • 一、修改注册表去掉桌面图标小箭头1按下win+R组合快捷键,打开windows10系统的“运行”窗口,输入“regedit”,打开注册表编辑器,找到HKEY_CLASSES_ROOT\lnkfi ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 阿里云服务器iis设置方法与上千种Linux桌面版本相比,Linux服务器只有可怜的十几种。但想要选对适合你的企业需要的仍然不是件容易的事情,选Linux服务器首先要 ... [详细]
  • 下载地址http:www.kbengine.org这货不错安装在Linux上安装(CentosDebianUbuntuetc.)服务端,请在终端输入:pythonkbenginek ... [详细]
author-avatar
华福-日语人才_601
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有