首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

邮件服务器

技术前沿 | Qmail | IMail | MDaemon | Exchange | Domino | 其它 | Foxmail | James | Kerio | JavaMail | WinMail | Sendmail | Postfix | Winwebmail | Merak | CMailServer | 邮件与开发 | 金笛 |
首页 > 邮件服务器 > Qmail > qmail邮件系统(四)ucspi-tcp的原理和设置 > 正文

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

出处:www.chinaunix.net 作者:peng QQ: 螃蟹 16360544 时间:2007-1-4 22:51:00
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 &

# /usr/local/qmail/bin/tcpserver -c 100 -v -l $_DOMAIN -U -H -R 0 pop3 /usr/local/qmail/bin/qmail-popup domain /home/vpopmail/bin/vchkpw /usr/local/qmail/bin/qmail-pop3d Maildir 2>;&1 | /usr/local/qmail/bin/splogger &

相信看完以上的内容,应该能看懂本文的启动脚本了。当这里,ucspi-tcp的tcpserver就设制完成了。
关于本文挡的声明:
   这份文档,是我参考了大量的网友的文章和书籍而写成的。自己经过反复安装和测试,均安装成功。但由于本人水平有限,文档难免有一些遗漏。如果你在安装的时候发现有什么地方有错误的话,请去www.chinaunix.net 的mail论坛讨论,我尽快回复的。
   对于这片文档,网友可以任意转贴。但出于对作者的尊重,转贴时请注明作者姓名。
相关文章 热门文章
  • 阿里巴巴招聘qmail邮件系统管理工程师
  • Qmail邮件系统管理工程师--阿里巴巴(中国)网络技术有限公司
  • 什么是分布式的Qmail邮件系统(上)
  • Qmail邮件系统下防止滥用mail relay
  • 建立qmail邮件系统防毒
  • qmail邮件系统(六)qmail的日志和管理
  • qmail邮件系统(五)vpopmail和qmailadmin对用户的管理
  • qmail邮件系统(三)qmail的工作原理和配置文件的设置
  • qmail邮件系统(二)安装
  • qmail邮件系统(一)Qmail系统的介绍和准备工作
  • Qmail邮件系统的安全分析和改进研究
  • Qmail邮件系统下防止滥用mail relay完全解决方案
  • Linux邮件服务器软件比较
  • 域名和邮件服务器FAQ
  • Qmail自动安装包Qmail_setup-v1.5.3发布
  • freebsd+qmail+mysql+vpopmail之完全ports安装
  • qmail+vpopmail+MySQL+igenus+RedHat 7下建立邮件系统
  • QMAIL终极安装指南
  • 配置你的第一台e-mail服务器
  • qmail+webmail on Linux9 安装全过程
  • 分布式的Qmail邮件系统
  • qmail+vpopmail+mysql+qmailadmin+ezmlm+igenus构建企..
  • qmail+webmail on Linux9 安装全过程
  • Qmail Server Howto
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号