当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Redhat 7.x 中xinetd完全指南

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

Unix/Linux 中的 Redhat 7.x 中xinetd完全指南


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 78 ::
收藏到网摘: n/a

 
    许多人在装了redhat 7.x后开始找不到北!!!(我就是其中一个)
因为redhat 7.x开始注重系统安全,最大的特征就是用xinetd.conf代替原来的inetd.conf
并且7.1中默认安装没有开ftp,telnet等熟悉的服务,而是更安全的ssh!
7.1还加入firewall等服务
(感谢paradise提供下载地点给我安装redhat7.1)

大家对被称作超级服务器的Inetd一定很熟悉,其实现控制对主机网络连接。当一个请求到达由Inetd管理的服务端口,Inetd将该请求转发给名为tcpd的程序。Tcpd根据配置文件hosts.{allow, deny}来判断是否允许服务该请求。如果请求被允许则相应的服务器程序(如:ftpd、telnetd)将被启动。这个机制也被称作tcp_wrapper.

xinetd(eXtended InterNET services daemon)提供类似于inetd+tcp_wrapper的功能,但是更加强大和安全。它能提供以下特色:

* 支持对tcp、ucp、RPC服务(但是当前对RPC的支持不够稳定)

* 基于时间段的访问控制

* 功能完备的log功能,即可以记录连接成功也可以记录连接失败的行为

* 能有效的防止DoS攻击(Denial of Services)

* 能限制同时运行的同意类型的服务器数目 

* 能限制启动的所有服务器数目

* 能限制log文件大小

* 将某个服务绑定在特定的系统接口上,从而能实现只允许私有网络访问某项服务

* 能实现作为其他系统的代理。如果和ip伪装结合可以实现对内部私有网络的访问

 它最大的缺点是对RPC支持的不稳定性,但是可以启动protmap,与xinetd共存来解决这个问题

编译安装

可以从www.xinetd.org下载xinetd,当前最新的版本是xinetd 2.1.8.8p3。默认编译和安装xinetd是非常简单的,按照如下的步骤进行:

#./configure; make; make install

即可完成。

在进行configure时,可以支持如下几个有用处的选项:

--with-libwrap : 如果使用该选项xinetd将会察看tcpd配置文件(/etc/hosts.{allow, deny})来进行访问控制,但是如果要利用该功能,系统上必须安装有tcp_wrapper和相关库。

--with-loadavg : 使用该选项,xinetd将而已处理max-load配置选项。从而在系统负载过重时关闭某些服务进程,来实现某些DoS攻击。

--with-inet6 : 使用该选项xinetd将支持IPv6。

如果是是用redhat7.0,则其默认将安装xinetd,而不需要自行安装。

配置

xinetd的默认配置文件是/etc/xinetd.conf。其语法和/etc/inetd.conf完全不同且不兼容。它本质上是/etc/inetd.conf和/etc/hosts.allow,/etc/hosts.deny功能的组合。/etc/xinetd.conf中的每一项具有下列形式

service service-name
{
      ……。
}

其中service是必需的关键字,且属性表必须用大括号括起来。每一项都定义了由service-name定义的服务。

Service-name是任意的,但通常是标准网络服务名,也可增加其他非标准的服务,只要它们能通过网络请求激活,包括localhost自身发出的网络请求。有很多可以使用的attribute,在下表中进行了详细的说明。稍后将描述必需的属性和属性的使用规则。

操作符可以是=,+=,或-=。所有属性可以使用=,其作用是分配一个或多个值,某些属性可以使用+=或-=的形式,其作用分别是将其值增加到某个现存的值表中,或将其值从现存值表中删除。表10.10中说明了可以用后一种形式的属性。

Value是为给定属性设置的参数。

表1 扩展的lnernet服务进程属性

属 性
描述和允许值

Socket_type
使用的TCP/IP socket类型,值可能为stream(TCP), dgram(UDP), raw和seqpacket(可靠的有序数据报)

protocol
指定该服务使用的协议,其值必须是在/etc/protocols中定义的。如果不指定,使用该项服务的缺省协议。

Server
要激活的进程,必须指定完整路径

Server_args
指定传送给该进程的参数,但是不包括服务程序名

Port
定义该项服务相关的端口号。如果该服务在/etc/services中列出,它们必须匹配

Wait
这个属性有两个可能的值。如果是yes,那么xinetd会启动请的进程并停止处理该项服务的请求直到该进程终止。这是个单线程服务。如果是no,那xinetd会为每个请求启动的一个进程,而不管先前启动的进程的状态。这是个多线程服务

User
设置服务进程的UID,但是若xinetd的有效UID不是0,该属性无效

Group
设置进程的GID。若xinetd的有效UID不是0,这个属性无效

Nice
指定进程的nice值

Id