我要投稿
  • 您当前的位置:365bet官方 -> 技术教程 -> 服务器网络 -> 服务器教程 -> 邮件服务器教程 -> 教程内容
  • [ 收藏本页教程 ]
  • qmail邮件系统(四)ucspi-tcp的原理和设置邮件服务器教程

    教程作者:佚名    教程来源:不详   教程栏目:邮件服务器教程    收藏本页
                  摘要:qmail邮件系统(四)ucspi-tcp的原理和设置
    (四)ucspi-tcp的原理和设置。

    作者:peng
    论坛ID:peng   www.chinaunix.net 
    QQ: 螃蟹 16360544

    Qmail的开发者dan Bernstein 开发了ucspi-tcp(UNIX客户-服务器程序端口)包来取代inetd程序。Ucspi格式定义了一种程序来交换数据的方法,主要体现出三个优点:
    1、ucspi端口独立于底层的通讯介质。
    2、ucspi允许shell脚本程序利用网络的互联。
    3、ucspi程序建立了unix环境变量,这些变量定义了可以被程序和用户使用的网络信息。
    Ucspi-tcp使用称为tool的程序在应用程序之间建立连接。有两种类型的ucspi tool  ---客户tool(tcpclient)和服务器tool(tcpserver)。

    Ucspi-tcp的tcpserver程序就是替代unix的inetd程序的,有如下优点:
    1、他能够把来自服务器端的所有输入和输出都记到一个文件中。
    2、他能提供访问控制特征,拒绝或者允许来自客户端的连接。
    3、它包含了并发限制,防止使unix系统过载。

    Tcpserver程序通过使用管理员配置的一个hash规则库提供对访问的控制。
    Tcpserver 命令行的格式是:
    tcpserver  options  host  port  application
    host和prot参数制定了将要运行应用程序的本地服务器的主机名和端口号。Host参数可以是localhos、主机ip address、或者是主机的完整域名。Port参数可以是一个数字或者是/etc/services文件中的一个tcp端口的名字,例如:smtp。Application是连接建立后要传输给的应用程序。
    Options参数定义了tcpserver程序的行为。有三种类型的选项:
    常规选项------定义用于ucspi tool的选项。
    连接选项-----处理到达的连接请求。
    数据收集选项-----如何获得在传给应用程序的unix环境变量中使用信息。
    Tcpserver连接选项(1)
    ---------------------------------------------------------------------------
    选项                描述
    -------------------------------------------------------------------------
    -b n             允许n个连接请求的存储
    -B banner        在连接建立后将banner写到网络连接上
    -c n             不接受多于n个同时连接
    -d              当主机相应较慢时延迟向远程主机发送数据
    -D              从不延迟向远程主机发送数据
    -g gid            当接受连接准备完成后改变活动组ID为gid
    -l               打印本地端口号到stdout
    -o               在连接的分组中不改变ip选项
    -u uid            当接受连接准备完成后改变活动用户ID为uid
    -O               删除ip选项为分组寻找路径
    -U               相当于-g  $GID  –u  UID
    -x db             使用hash数据库db中的规则来接受或拒绝远程客户端的访问
    -X               当由-x选项指定的数据库不存在时允许连接
    -------------------------------------------------------------------
    tcpserver程序可以使用的数据收集选项(2)
    ----------------------------------------------------------------
    选项                描述
    --------------------------------------------------------------------
    -h               使用dns查找远程主机
    -H               不使用dns查找远程主机名。你必须对端口53使用此选项
    -l localhost        不使用dns查找本地服务器主机名,而使用localhost
    -p                怀疑。使用反向dns 查找远程主机ip地址,将其与主机名相比较。如果不匹配,删除环境变量$tcpremotehost
    -r                 试图从远程主机获得$tcpremoteinfi (默认)
    -R                不试图从远程主机获得$tcpremoteinfo数据。你必须为端口53和端口113使用这一选项
    -t n               在n秒之后停止试图连接到$tcpremoteinfo数据。默认26
    ------------------------------------------------------------------------------
    有几个unix环境变量tcpserver试图为其接受数据。这些环境变量帮助应用程序处理有关的网络间接信息。
    Tcpserver的unix环境变量(3)
    ------------------------------------------------------------------------------
    变量                              描述
    ----------------------------------------------------------------------------
    $PROTO                        使用的协议(默认为TCP)
    $TCPLOCALIP                   本机的IP地址
    $TCPLOCALPORT                本地TCP端口号
    $TCPLOCALHOST                本地主机的DNS查询值
    $TCPREMOTEIP                  远程客户端的IP地址
    $TCPREMOTEPROT               远程客户端的TCP端口号
    $TCPREMOTEHOST               远程主机的DNS查询值
    $TCPREMOTEINFO                远程客户端的用户名
    ------------------------------------------------------------------------------
    当接受了一个远程客户端的连接,tcpserver就是图为应用程序提供环境变量,当他不能为一个特定的变量接受信息时,tcpserver不设置变量。
    Tcprules程序
    tcprules程序是创建可以限制与应用程序连接的规则。是手工创建规则,来制定接受和拒绝单个地址、多个ip地址、全部网络地址的访问。规则在一个文本中创建,每行一条规则。文本建立后,使用cdb数据库格式将其转变成一个hash数据库。这使得tcpserver程序能够在远程客户向服务器请求连接时动态处理规则。
    规则以这样的格式创建:
    address :action,varible
    address是和到达连接的值相匹配的。此参数的几种格式都是基于表(3)环境变量的,可以使用这些变量的组合来创建有效的地址。下面列出了tcpserver能识别的不同地址:
     tcpserver规则的地址格式
    -----------------------------------------------------------------------------
    地址                           示例
    ------------------------------------------------------------------------------
    $tcpremoteinfo@tcpremteip          peng@[192.168.3.11]
    $tcpremoteinfo@=$tcpremotehost      peng@96633.net
    $tcpremoteip&
    我要投稿   -   广告合作   -   关于本站   -   友情连接   -   网站地图   -   联系我们   -   版权声明   -   设为首页   -   加入收藏   -   网站留言
    Copyright © 2009 - 20012 www.www.ct131.com All Rights Reserved.365bet官方 版权所有