邮件系统 设为首页
加入收藏
总编信箱
| 第一邮局 | 免费邮箱 | 邮箱评测 | 企业邮局 | 移动邮件 | 邮件系统 | 邮件营销 | 反垃圾邮件 | 邮件客户端 | 邮件安全 |
当前位置:第一邮局>邮件系统>Qmail>文章内容

qmail邮件系统(四)ucspi-tcp的原理和设置

来源:Mail1.com.cn 编辑:Mail 发布时间:2007-05-11 [收藏] [推荐] [评论(0条)]
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 192.168.3.11
=$tcpremotehost mail.chinaunix.net
部分$tcpremoteip 192.168
部分$tcpremotehost chinaunix.net
空 任何地址
-------------------------------------------------------------------------------
action有两个选项:allow and deny。
除了动作以外,其他的以逗号分开的环境变量可以添加到action中,实现tcpserver在特定的远程客户连接请求时设置环境变量。这一特性可以实现选择转发等功能。
举几个例子吧:
---------------------------------------------------------------------------------
规则 描述
-------------------------------------------------------------------------------
192.168.0.1:deny 拒绝192.168.0.1的任何连接
192.168.3:allow 允许192.168.3.0上的客户任何连接
192.168.4.1-11:allow 允许192.168.4.1-192.168.44.11上的客户任何连接
:deny 拒绝任何连接
peng@chinaunix.net 允许peng@chinaunix.net 的连接
192.168.3:allow,RELAYCLIENT=” “ 接受192.168.3.0网络上的任何连接,设置环境变量RELAYCLIENT为空字符串。
-------------------------------------------------------------------------------------
本文建立SMTP转信规则[除本机外拒绝任何主机转发邮件,但不限制连接。]
#vi /etc/tcp.smtp
  127.0.0.1:allow,RELAYCLIENT=""
  :allow
建立完文本文件,就用tcprules命令生成库文件,格式如下:
tcprules database tmpfile
本文中是这样的:
# /usr/local/bin/tcprules /etc/qmail/tcp.smtp.cdb /etc/qmail/tcp.smtp.tmp
这样,就生成了/etc/qmail/tcp.smtp.cdb文件了。tcp.smtp.cd表示适用于tcp协议,专用于smtp
协议,文件是cdb数据库格式。
下一步,就是告诉tcpserver如何应用它,本文的如下启动smtp服务:
/usr/local/bin/tcpserver -H -R -l 0 -t 1 -c 100 -v -p -x
/etc/qmail/tcp.smtp.cdb -u QMAILDUID -g NOFILESGID 0 smtp
/usr/local/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /usr/bin/true
| /usr/local/qmail/bin/splogger
上一篇:qmail邮件系统(一)Qmail系统的介绍和准备工作   下一篇:qmail邮件系统(二)安装
[365Key收藏] [雅虎收藏+] [返回顶部] [打印本页] [关闭窗口]  
邮箱   相关文章
·qmail邮件系统(一)Qmail系统的
·qmail邮件系统(二)安装
·qmail vpopmail squirrelmail 安
·qmail邮件系统(五)vpopmail和q
·Maildir转换成mbox邮箱格式脚本
·qmail邮件系统(三)qmail的工作
·Linux域名和邮件服务器版FAQ
·FreeBSD安装配置E-mail服务器
·qmail邮件系统(六)qmail的日志
·LINUX中的邮件安全问题
·Qmail邮件服务器安装过程
·在FreeBSD上使用minimalist组建
免费邮箱 163邮箱  21CN邮箱  Gmail  Hotmail  QQ邮箱  SoGou邮箱  新浪邮箱  雅虎邮箱  
邮箱评测 企业邮箱评测  
企业邮局 企业邮箱  企业邮箱资讯  
移动邮件 技术前沿  手机邮件  
邮件系统 CMail Server  WinMail  SendMail  Qmail  Postfix  MDaemon Server  Lotus Notes  IMail Server  Foxmail Server  Exchange Server  Domino  Winwebmail  
邮件营销 网络营销  营销案例  营销技巧  邮件营销  
反垃圾邮件 Anti-Spam技术产品  新闻资讯  
邮件客户端 DreamMail  Foxmail  IncrediMail  KooMail  Outlook  The Bat!  
邮件安全
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·Maildir转换成mbox邮箱格式脚本
·TurboLinux下架设Qmail服务器历
·关于Qmail问题集
·Life with qmail -- 中文版
·常规的qmail的防垃圾邮件处理
·qmail vpopmail squirrelmail 安
·Qmail邮件服务器安装过程
·qmail邮件系统(五)vpopmail和q
·浅谈qmail之邮件转发规则
·qmail邮件系统(一)Qmail系统的
·Qmail下如何将某个域下的账号邮
·qmail邮件系统(二)安装
网站首页 -  网站地图 -  域名注册 -  虚拟主机 -  企业邮箱  -  网站投稿  -  广告联系 -  帮助中心  -  

Copyright 2007-2008 Mail1.com.cn All Rights Reserved
本站内容均来自网络,如果侵犯版权请来信告知,核实后我们会在24小时删除 联系方式:
第一邮局QQ群:14743955 E-mail:www@onlinex.com.cn