热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RedHat-Wrapper和xinetd的实现(一)

文章标题:RedHat-Wrapper和xinetd的实现(一)。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  
    第一节 概述
    RedHat 7.2 的系统服务存取控制机制主要有两种:一种是以ipchains或iptables为具体实现的firewall机制,另一种是以TCP Wrapper为具体实现的xinetd机制。本文档主要论述后一种机制的具体实现。
  
    1 关于TCP Wrapper
  
    象Telnet、SSH、FTP、POP和SMTP等很多网络服务都会用到TCP Wrapper,它被设计为一个介于外来服务请求和系统服务回应的中间处理软件。它的基本过程是这样的:当系统接收到一个外来服务请求的时候,先由TCP Wrapper处理这个请求,TCP Wrapper根据这个请求所请求的服务和针对这个服务所定制的存取控制规则来判断对方是否有使用这个服务的权限,如果有,TCP Wrapper将该请求按照配置文件定义的规则转交给相应的守护进程去处理同时记录这个请求动作,然后自己就等待下一个请求的处理。
  
    TCP Wrapper机制的主要目的在于,来自客户端的请求只被允许同一个独立的守护进程(xinetd)直接通信,而它请求的目标服务被TCP Wrapper包裹起来,这样就提高了系统的安全性和系统管理的方便性。
  
    一方面,TCP Wrapper 提高了系统的安全性。系统安全性的具体体现主要有两点,一个是获取访问权限前的控制,一个是获取访问后的处理。获取权限前,它会根据/etc/hosts.allow和/etc/hosts.deny定制的规则来判断对方是否有权限;获取权限后,通过bind、redirect等属性的设置,可能已经由另一台主机或者另一个服务在处理了对方的请求,而对方并不会感知中间经过了这样的处理。
  
    另一方面,TCP Wrapper更加方便了系统管理。一方面可以抽取系统所有服务共有的属性放到/etc/xinetd.conf中,另一方面,将每一个服务具体的配置放到/etc/inetd.d目录下,而每个配置文件都遵循同样的语法和规则。
  
    TCP Wrapper的功能来自于libwrap.a,它是一个网络服务库,象xinetd、sshd和portmap等许多系统服务编译时都依赖于它,其他的网路服务程序甚至你自己编写的网络服务程序都可以加上这个编译选项来提供TCP Wrapper的功能。
  
  
    2 关于xinetd
  
    然而,TCP Wrapper机制并不是仅仅有了libwrap.a库就起作用,只有当libwrap.a库和xinetd服务结合使用的时候才能发挥出TCP Wrapper机制的作用。xinetd是RedHat 7.x的超级守护进程,它提供诸如访问控制、请求记录、地址绑定、重定向和资源利用控制等服务。
  
    RedHat Linux 7.x版本中的很多系统服务都用到了xinetd,象FTP, IMAP, POP, 和 telnet.等。/etc/services中所有的服务通过他们的端口来访问服务器的时候,先由xinetd来处理,在唤起对方请求的服务之前,xinetd先检验请求者是否满足配置文件中指定的访问控制规则,当前的访问是否超多了指定的同时访问数目,还有配置文件中指定的其他规则等,检查通过,xinetd将这个请求交付到相应的服务去处理,自己就进入sleep状态,等待下一个请求的处理。
  
    Rredhat 7.x开始更加注重系统安全,最大的特征就是用xinetd.conf代替原来的inetd.conf
  并且7.x中默认安装没有开ftp,telnet等熟悉的服务,而是更安全的ssh,7.x还加入firewall等服务增强了系统的安全性。xinetd(eXtended InterNET services daemon)提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。它能提供以下特色:
  
    1、 强大的存取控制功能:
  
  
  内置对恶意用户和善意用户的差别待遇设定;
  
  使用libwrap支持,其效能更甚于tcpd
  
  可以限制连接等级,基于主机的连接数和基于服务的连接数
  
  设置特定的连接时间
  
  将某个服务设置到特定的主机提供服务
    2、 有效防止DOS攻击
  
  可以限制连接的等级
  
  可以限制一个主机的最大连接数,从而防止某个主机独占某个服务
  
  可以限制日志文件的大小,防止磁盘空间被填满
  3、 强大的日志功能
  
  可以为每一个服务就syslog设定日志等级
  
  如果不使用syslog,也可以为每个服务建立日志文件
  
  可以记录请求的起止时间以决定对方的访问时间
  
  可以记录试图非法访问的请求
    4、 转向功能
  
  可以将客户端的请求转发到另一台主机去处理
    5、 支持IPv6
  
  xinetd 自 xinetd 2.1.8.8pre* 起的版本支持 IPv6
    6、与客户端的交互功能
  
  无论客户端请求是否成功,xinetd都会有提示告知连接状态
    当前,它最大的缺点是对RPC支持的不稳定性,但是可以启动protmap与xinetd共存来解决这个问题。
  
    何时使用xinetd?
  
    原则上任何系统服务都可以使用xinetd,然而,我认为,最适合应该是哪些常用的internet服务,同时,这个服务的请求数目和频繁程度不会太高。象DNS和Apache就不适合采用这种方式,而象Ftp、telnet、 SSH等就很适合使用xinetd方式,至于pop、imap等邮件服务是否适合使用这种方式,我自己也很难下结论,系统默认使用xinetd,很多人也是这样做的,但我没有这方面的测试。
  
    系统默认使用xinetd的服务可以分为如下几类:
  
    1、标准internet服务:telnet ftp
    2、信息服务:finger netstat systat
    3、邮件服务:imap imaps pop2 pop3 pops
    4、RPC服务:rquotad rstatd rusersd sprayd walld
    5、BSD服务:comsat exec login ntalk shell talk
    6、内部服务:chargen daytime echo servers services time
    7、安全服务:irc
    8、其他服务:name tftp uucp
  
  
  
    第二节 获取、编译与安装
  
    xinetd在RedHat 7.2是默认安装的,所以一般说来,你无需自己去安装。然而,如果你在低版本的RedHat上,你可能需要下面的安装步骤。
  
    1 软件的获取
  
    Xinetd当前最新的版本是2.3.5,发布于May.28.2002。你可以从下面的地址获取它的源代码包:http://www.xinetd.org/xinetd-2.3.5.tar.gz
  
    2 编译安装
  
    现在假设你将该软件下载到/home/src目录,安装步骤如下:
  
    cd /home/src
    tar xvzf xinetd*
    cd xinetd*
    ./configure -prefix=/etc -with-libwrap -with-loadavg -with-inet6
    make
    make install
    cp xinetd/sample.conf /etc/xinetd.conf
  
    如果你在旧版本的RedHat上安装,你可能会用到下面的指令,这个perl脚本可以将inetd.conf转换为xinetd.conf:
    xinetd/xconv.pl /tmp/xinetd.conf
  
    下面是编译参数说明:
  
    --prefix 指定安装目录
    --with-libwrap 加载libwrap.a库,使之可以使用TCP Wrapper功能
    --with-loadavg 使之具有限定连接数的功能,避免DOS攻击
    --with-inet6 使之支持ipv6
  
    说明:
  
    如果您使用的是RedHat 7.x版本,建议你无需自己安装,这一点跟别的服务不同,如果你自行安装,可能会出现意想不到的麻烦。
  
  
  
推荐阅读
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Java程序员必会的40个Linux命令!
    你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起 ... [详细]
  • PHP编程能开发哪些应用?
    导读:很多朋友问到关于PHP编程能开发哪些应用的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • mysql5.6 多实例 主从安装_MySQL5.6一主多从的半同步复制实例
    半同步简介:在默认情况下,MySQL的复制是异步的,这意味着主服务器及其从服务器是独立的。异步复制可以提供最佳的性能,因为主服务器在将更新 ... [详细]
author-avatar
刘伟亮
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有