PMDF System Manager's Guide


Previous Contents Index

28.4.4 Controlling Address Rewriting and Controlling Message Pathways

General PMDF configurations are usually set up to allow very flexible address rewriting, fixing up as many sorts of addresses as possible no matter what source the address comes in from. In a firewall configuration, however, you can want to control which sorts of rewriting happen for which sorts of messages. Therefore source and destination specific, and direction specific rewrite rules can be of particular interest. (This is akin/related to the point below regarding centralized naming, that a technique such as a directory channel (with a directory database), which isolates the address transformation to a particular channel, allowing for greater control at the cost of some additional overhead, can be more appropriate than the (more efficient but more "inline") alias database, general database, or mapping table sorts of approaches.)

For instance, consider a common setup where externally originating messages to internal users are expected to be addressed using a centralized format without internal node names, and where a directory channel (with a directory database) is then used to transform the addresses to the true internal address format. In a firewall configuration you can want to ensure not only that the centralized addresses work, but that only the centralized addresses work. So for instance, you might have a rewrite rule for the centralized domain routing it to the directory channel, and then make the rewrite rules for the true internal domains (routing such addresses to channels for sending internal) be source channel specific rewrite rules that only apply for messages coming from the directory channel.

28.4.4.1 Sample Configuration Controlling Internal Domain Rewriting

For instance, consider a site that wants to accept messages addressed in the form First.Last@example.com, route such messages to the directory channel where a directory database will transform the address to internal addresses such as FLast@hosta.example.com, or Last@hostb.example.com, or "First Last"@ccmail.example.com, but, for whatever reason, does not want to accept messages that come in from the external world already addressed to any of the domains hosta.example.com, hostb.example.com, or ccmail.example.com.

Note that unless the site has MX records for hosta.example.com, hostb.example.com, or ccmail.example.com pointing to the e-mail firewall system, then messages addressed using such explicit internal domain names would not normally ever reach the e-mail firewall system in the first place --- unless the sender used explicit routing in the address, e.g.,


Last%hostb.example.com@emailfirewalldomain

To achieve the goal of routing messages addressed to example.com to the directory channel for expansion to internal addresses, but rejecting messages that come in from the external world already addressed to such an internal address, appropriate rewrite rules and channels might be along the lines of:


example.com            $U%example.com@DIRECTORY-DAEMON 
hosta.example.com      $U@bogus$?Explicit domain addressing not allowed$Ntcp_local 
hosta.example.com      $U%hosta.example.com@GTCP-DAEMON$Mdirectory 
hosta.example.com      $U%hosta.example.com@GTCP-DAEMON$Mdefragment 
hosta.example.com      $U%hosta.example.com@GTCP-DAEMON$Mconversion 
hostb.example.com      $U@bogus$?Explicit domain addressing not allowed$Ntcp_local 
hostb.example.com      $U%hosta.example.com@GTCP-DAEMON$Mdirectory 
hostb.example.com      $U%hosta.example.com@GTCP-DAEMON$Mdefragment 
hostb.example.com      $U%hosta.example.com@GTCP-DAEMON$Mconversion 
ccmail.example.com     $U@bogus$?Explicit domain addressing not allowed$Ntcp_local 
ccmail.example.com     $U%hosta.example.com@GTCP-DAEMON$Mdirectory 
ccmail.example.com     $U%hosta.example.com@GTCP-DAEMON$Mdefragment 
ccmail.example.com     $U%hosta.example.com@GTCP-DAEMON$Mconversion 
... 
.AD                 $U%$H$D@TCP-DAEMON 
... 
.ZW                 $U%$H$D@TCP-DAEMON 
... 
 
tcp_local ... 
TCP-DAEMON 
 
tcp_internal ... 
GTCP-DAEMON 
 
directory ... 
DIRECTORY-DAEMON 
 


Previous Next Contents Index