Home | History | Annotate | Line # | Download | only in html
proxymap.8.html revision 1.1.1.1.2.2
      1  1.1.1.1.2.2  snj <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"
      2  1.1.1.1.2.2  snj         "http://www.w3.org/TR/html4/loose.dtd">
      3  1.1.1.1.2.2  snj <html> <head>
      4  1.1.1.1.2.2  snj <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
      5  1.1.1.1.2.2  snj <title> Postfix manual - proxymap(8) </title>
      6  1.1.1.1.2.2  snj </head> <body> <pre>
      7  1.1.1.1.2.2  snj PROXYMAP(8)                                                        PROXYMAP(8)
      8  1.1.1.1.2.2  snj 
      9  1.1.1.1.2.2  snj <b>NAME</b>
     10  1.1.1.1.2.2  snj        proxymap - Postfix lookup table proxy server
     11  1.1.1.1.2.2  snj 
     12  1.1.1.1.2.2  snj <b>SYNOPSIS</b>
     13  1.1.1.1.2.2  snj        <b>proxymap</b> [generic Postfix daemon options]
     14  1.1.1.1.2.2  snj 
     15  1.1.1.1.2.2  snj <b>DESCRIPTION</b>
     16  1.1.1.1.2.2  snj        The  <a href="proxymap.8.html"><b>proxymap</b>(8)</a>  server  provides read-only or read-write
     17  1.1.1.1.2.2  snj        table lookup service to Postfix processes. These  services
     18  1.1.1.1.2.2  snj        are  implemented with distinct service names: <b>proxymap</b> and
     19  1.1.1.1.2.2  snj        <b>proxywrite</b>, respectively. The purpose  of  these  services
     20  1.1.1.1.2.2  snj        is:
     21  1.1.1.1.2.2  snj 
     22  1.1.1.1.2.2  snj        <b>o</b>      To  overcome  chroot  restrictions.  For example, a
     23  1.1.1.1.2.2  snj               chrooted SMTP server needs  access  to  the  system
     24  1.1.1.1.2.2  snj               passwd  file  in order to reject mail for non-exis-
     25  1.1.1.1.2.2  snj               tent local addresses, but it is  not  practical  to
     26  1.1.1.1.2.2  snj               maintain  a  copy  of the passwd file in the chroot
     27  1.1.1.1.2.2  snj               jail.  The solution:
     28  1.1.1.1.2.2  snj 
     29  1.1.1.1.2.2  snj               <a href="postconf.5.html#local_recipient_maps">local_recipient_maps</a> =
     30  1.1.1.1.2.2  snj                   <a href="proxymap.8.html">proxy</a>:unix:passwd.byname $<a href="postconf.5.html#alias_maps">alias_maps</a>
     31  1.1.1.1.2.2  snj 
     32  1.1.1.1.2.2  snj        <b>o</b>      To consolidate the number of open lookup tables  by
     33  1.1.1.1.2.2  snj               sharing  one  open  table among multiple processes.
     34  1.1.1.1.2.2  snj               For example, making mysql  connections  from  every
     35  1.1.1.1.2.2  snj               Postfix daemon process results in "too many connec-
     36  1.1.1.1.2.2  snj               tions" errors. The solution:
     37  1.1.1.1.2.2  snj 
     38  1.1.1.1.2.2  snj               <a href="postconf.5.html#virtual_alias_maps">virtual_alias_maps</a> =
     39  1.1.1.1.2.2  snj                   <a href="proxymap.8.html">proxy</a>:<a href="mysql_table.5.html">mysql</a>:/etc/postfix/virtual_alias.cf
     40  1.1.1.1.2.2  snj 
     41  1.1.1.1.2.2  snj               The total number of connections is limited  by  the
     42  1.1.1.1.2.2  snj               number of proxymap server processes.
     43  1.1.1.1.2.2  snj 
     44  1.1.1.1.2.2  snj        <b>o</b>      To  provide single-updater functionality for lookup
     45  1.1.1.1.2.2  snj               tables that do not reliably support multiple  writ-
     46  1.1.1.1.2.2  snj               ers (i.e. all file-based tables).
     47  1.1.1.1.2.2  snj 
     48  1.1.1.1.2.2  snj        The <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server implements the following requests:
     49  1.1.1.1.2.2  snj 
     50  1.1.1.1.2.2  snj        <b>open</b> <i>maptype:mapname flags</i>
     51  1.1.1.1.2.2  snj               Open  the table with type <i>maptype</i> and name <i>mapname</i>,
     52  1.1.1.1.2.2  snj               as controlled by <i>flags</i>. The reply includes the <i>map-</i>
     53  1.1.1.1.2.2  snj               <i>type</i> dependent flags (to distinguish a fixed string
     54  1.1.1.1.2.2  snj               table from a regular expression table).
     55  1.1.1.1.2.2  snj 
     56  1.1.1.1.2.2  snj        <b>lookup</b> <i>maptype:mapname flags key</i>
     57  1.1.1.1.2.2  snj               Look up the data stored under  the  requested  key.
     58  1.1.1.1.2.2  snj               The reply is the request completion status code and
     59  1.1.1.1.2.2  snj               the lookup result value.  The  <i>maptype:mapname</i>  and
     60  1.1.1.1.2.2  snj               <i>flags</i> are the same as with the <b>open</b> request.
     61  1.1.1.1.2.2  snj 
     62  1.1.1.1.2.2  snj        <b>update</b> <i>maptype:mapname flags key value</i>
     63  1.1.1.1.2.2  snj               Update  the  data  stored  under the requested key.
     64  1.1.1.1.2.2  snj               The reply is the request  completion  status  code.
     65  1.1.1.1.2.2  snj               The  <i>maptype:mapname</i> and <i>flags</i> are the same as with
     66  1.1.1.1.2.2  snj               the <b>open</b> request.
     67  1.1.1.1.2.2  snj 
     68  1.1.1.1.2.2  snj               To implement single-updater maps, specify a process
     69  1.1.1.1.2.2  snj               limit  of  1  in  the  <a href="master.5.html">master.cf</a> file entry for the
     70  1.1.1.1.2.2  snj               <b>proxywrite</b> service.
     71  1.1.1.1.2.2  snj 
     72  1.1.1.1.2.2  snj               This request is supported in Postfix 2.5 and later.
     73  1.1.1.1.2.2  snj 
     74  1.1.1.1.2.2  snj        <b>delete</b> <i>maptype:mapname flags key</i>
     75  1.1.1.1.2.2  snj               Delete  the  data  stored  under the requested key.
     76  1.1.1.1.2.2  snj               The reply is the request  completion  status  code.
     77  1.1.1.1.2.2  snj               The  <i>maptype:mapname</i> and <i>flags</i> are the same as with
     78  1.1.1.1.2.2  snj               the <b>open</b> request.
     79  1.1.1.1.2.2  snj 
     80  1.1.1.1.2.2  snj               This request is supported in Postfix 2.5 and later.
     81  1.1.1.1.2.2  snj 
     82  1.1.1.1.2.2  snj        The  request  completion status is one of OK, RETRY, NOKEY
     83  1.1.1.1.2.2  snj        (lookup failed because the key was not found),  BAD  (mal-
     84  1.1.1.1.2.2  snj        formed  request)  or  DENY  (the table is not approved for
     85  1.1.1.1.2.2  snj        proxy read or update access).
     86  1.1.1.1.2.2  snj 
     87  1.1.1.1.2.2  snj        There is no  <b>close</b>  command,  nor  are  tables  implicitly
     88  1.1.1.1.2.2  snj        closed  when a client disconnects. The purpose is to share
     89  1.1.1.1.2.2  snj        tables among multiple client processes.
     90  1.1.1.1.2.2  snj 
     91  1.1.1.1.2.2  snj <b>SERVER PROCESS MANAGEMENT</b>
     92  1.1.1.1.2.2  snj        <a href="proxymap.8.html"><b>proxymap</b>(8)</a> servers run under control by the Postfix  <a href="master.8.html"><b>mas-</b></a>
     93  1.1.1.1.2.2  snj        <a href="master.8.html"><b>ter</b>(8)</a> server.  Each server can handle multiple simultane-
     94  1.1.1.1.2.2  snj        ous connections.  When all servers are busy while a client
     95  1.1.1.1.2.2  snj        connects,  the  <a href="master.8.html"><b>master</b>(8)</a> creates a new <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server
     96  1.1.1.1.2.2  snj        process, provided that the process limit is not  exceeded.
     97  1.1.1.1.2.2  snj        Each  server  terminates  after  serving at least <b>$<a href="postconf.5.html#max_use">max_use</a></b>
     98  1.1.1.1.2.2  snj        clients or after <b>$<a href="postconf.5.html#max_idle">max_idle</a></b> seconds of idle time.
     99  1.1.1.1.2.2  snj 
    100  1.1.1.1.2.2  snj <b>SECURITY</b>
    101  1.1.1.1.2.2  snj        The <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server opens only tables that are approved
    102  1.1.1.1.2.2  snj        via  the <b><a href="postconf.5.html#proxy_read_maps">proxy_read_maps</a></b> or <b><a href="postconf.5.html#proxy_write_maps">proxy_write_maps</a></b> configuration
    103  1.1.1.1.2.2  snj        parameters, does not talk to users, and can run  at  fixed
    104  1.1.1.1.2.2  snj        low  privilege,  chrooted  or  not.   However, running the
    105  1.1.1.1.2.2  snj        proxymap  server  chrooted  severely   limits   usability,
    106  1.1.1.1.2.2  snj        because it can open only chrooted tables.
    107  1.1.1.1.2.2  snj 
    108  1.1.1.1.2.2  snj        The  <a href="proxymap.8.html"><b>proxymap</b>(8)</a>  server  is not a trusted daemon process,
    109  1.1.1.1.2.2  snj        and must not be used to look up sensitive information such
    110  1.1.1.1.2.2  snj        as  user  or  group  IDs,  mailbox file/directory names or
    111  1.1.1.1.2.2  snj        external commands.
    112  1.1.1.1.2.2  snj 
    113  1.1.1.1.2.2  snj        In Postfix version 2.2 and later, the proxymap client rec-
    114  1.1.1.1.2.2  snj        ognizes  requests to access a table for security-sensitive
    115  1.1.1.1.2.2  snj        purposes, and opens the table directly.  This  allows  the
    116  1.1.1.1.2.2  snj        same  <a href="postconf.5.html">main.cf</a> setting to be used by sensitive and non-sen-
    117  1.1.1.1.2.2  snj        sitive processes.
    118  1.1.1.1.2.2  snj 
    119  1.1.1.1.2.2  snj        Postfix-writable data files should be stored under a dedi-
    120  1.1.1.1.2.2  snj        cated  directory that is writable only by the Postfix mail
    121  1.1.1.1.2.2  snj        system, such as the Postfix-owned <b><a href="postconf.5.html#data_directory">data_directory</a></b>.
    122  1.1.1.1.2.2  snj 
    123  1.1.1.1.2.2  snj        In particular, Postfix-writable files should  never  exist
    124  1.1.1.1.2.2  snj        in root-owned directories. That would open up a particular
    125  1.1.1.1.2.2  snj        type of security hole where ownership of a file or  direc-
    126  1.1.1.1.2.2  snj        tory does not match the provider of its content.
    127  1.1.1.1.2.2  snj 
    128  1.1.1.1.2.2  snj <b>DIAGNOSTICS</b>
    129  1.1.1.1.2.2  snj        Problems and transactions are logged to <b>syslogd</b>(8).
    130  1.1.1.1.2.2  snj 
    131  1.1.1.1.2.2  snj <b>BUGS</b>
    132  1.1.1.1.2.2  snj        The   <a href="proxymap.8.html"><b>proxymap</b>(8)</a>  server  provides  service  to  multiple
    133  1.1.1.1.2.2  snj        clients, and must therefore not be used  for  tables  that
    134  1.1.1.1.2.2  snj        have high-latency lookups.
    135  1.1.1.1.2.2  snj 
    136  1.1.1.1.2.2  snj        The  <a href="proxymap.8.html"><b>proxymap</b>(8)</a>  read-write  service  does not explicitly
    137  1.1.1.1.2.2  snj        close lookup tables (even if it did,  this  could  not  be
    138  1.1.1.1.2.2  snj        relied  on,  because the process may be terminated between
    139  1.1.1.1.2.2  snj        table updates).  The read-write service  should  therefore
    140  1.1.1.1.2.2  snj        not  be  used with tables that leave persistent storage in
    141  1.1.1.1.2.2  snj        an inconsistent state between updates (for example,  CDB).
    142  1.1.1.1.2.2  snj        Tables  that  support "sync on update" should be safe (for
    143  1.1.1.1.2.2  snj        example, Berkeley DB) as should  tables  that  are  imple-
    144  1.1.1.1.2.2  snj        mented by a real DBMS.
    145  1.1.1.1.2.2  snj 
    146  1.1.1.1.2.2  snj <b>CONFIGURATION PARAMETERS</b>
    147  1.1.1.1.2.2  snj        On  busy  mail  systems  a long time may pass before <a href="proxymap.8.html"><b>prox-</b></a>
    148  1.1.1.1.2.2  snj        <a href="proxymap.8.html"><b>ymap</b>(8)</a> relevant changes to <a href="postconf.5.html"><b>main.cf</b></a> are picked up. Use the
    149  1.1.1.1.2.2  snj        command "<b>postfix reload</b>" to speed up a change.
    150  1.1.1.1.2.2  snj 
    151  1.1.1.1.2.2  snj        The  text  below  provides  only  a parameter summary. See
    152  1.1.1.1.2.2  snj        <a href="postconf.5.html"><b>postconf</b>(5)</a> for more details including examples.
    153  1.1.1.1.2.2  snj 
    154  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#config_directory">config_directory</a> (see 'postconf -d' output)</b>
    155  1.1.1.1.2.2  snj               The default location of  the  Postfix  <a href="postconf.5.html">main.cf</a>  and
    156  1.1.1.1.2.2  snj               <a href="master.5.html">master.cf</a> configuration files.
    157  1.1.1.1.2.2  snj 
    158  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#data_directory">data_directory</a> (see 'postconf -d' output)</b>
    159  1.1.1.1.2.2  snj               The directory with Postfix-writable data files (for
    160  1.1.1.1.2.2  snj               example: caches, pseudo-random numbers).
    161  1.1.1.1.2.2  snj 
    162  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#daemon_timeout">daemon_timeout</a> (18000s)</b>
    163  1.1.1.1.2.2  snj               How much time a Postfix daemon process may take  to
    164  1.1.1.1.2.2  snj               handle  a  request  before  it  is  terminated by a
    165  1.1.1.1.2.2  snj               built-in watchdog timer.
    166  1.1.1.1.2.2  snj 
    167  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#ipc_timeout">ipc_timeout</a> (3600s)</b>
    168  1.1.1.1.2.2  snj               The time limit for sending or receiving information
    169  1.1.1.1.2.2  snj               over an internal communication channel.
    170  1.1.1.1.2.2  snj 
    171  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#max_idle">max_idle</a> (100s)</b>
    172  1.1.1.1.2.2  snj               The  maximum  amount  of  time that an idle Postfix
    173  1.1.1.1.2.2  snj               daemon process waits  for  an  incoming  connection
    174  1.1.1.1.2.2  snj               before terminating voluntarily.
    175  1.1.1.1.2.2  snj 
    176  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#max_use">max_use</a> (100)</b>
    177  1.1.1.1.2.2  snj               The  maximal  number of incoming connections that a
    178  1.1.1.1.2.2  snj               Postfix daemon process will service  before  termi-
    179  1.1.1.1.2.2  snj               nating voluntarily.
    180  1.1.1.1.2.2  snj 
    181  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#process_id">process_id</a> (read-only)</b>
    182  1.1.1.1.2.2  snj               The  process  ID  of  a  Postfix  command or daemon
    183  1.1.1.1.2.2  snj               process.
    184  1.1.1.1.2.2  snj 
    185  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#process_name">process_name</a> (read-only)</b>
    186  1.1.1.1.2.2  snj               The process name of a  Postfix  command  or  daemon
    187  1.1.1.1.2.2  snj               process.
    188  1.1.1.1.2.2  snj 
    189  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#proxy_read_maps">proxy_read_maps</a> (see 'postconf -d' output)</b>
    190  1.1.1.1.2.2  snj               The  lookup  tables  that the <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server is
    191  1.1.1.1.2.2  snj               allowed to access for the read-only service.
    192  1.1.1.1.2.2  snj 
    193  1.1.1.1.2.2  snj        Available in Postfix 2.5 and later:
    194  1.1.1.1.2.2  snj 
    195  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#data_directory">data_directory</a> (see 'postconf -d' output)</b>
    196  1.1.1.1.2.2  snj               The directory with Postfix-writable data files (for
    197  1.1.1.1.2.2  snj               example: caches, pseudo-random numbers).
    198  1.1.1.1.2.2  snj 
    199  1.1.1.1.2.2  snj        <b><a href="postconf.5.html#proxy_write_maps">proxy_write_maps</a> (see 'postconf -d' output)</b>
    200  1.1.1.1.2.2  snj               The  lookup  tables  that the <a href="proxymap.8.html"><b>proxymap</b>(8)</a> server is
    201  1.1.1.1.2.2  snj               allowed to access for the read-write service.
    202  1.1.1.1.2.2  snj 
    203  1.1.1.1.2.2  snj <b>SEE ALSO</b>
    204  1.1.1.1.2.2  snj        <a href="postconf.5.html">postconf(5)</a>, configuration parameters
    205  1.1.1.1.2.2  snj        <a href="master.5.html">master(5)</a>, generic daemon options
    206  1.1.1.1.2.2  snj 
    207  1.1.1.1.2.2  snj <b>README FILES</b>
    208  1.1.1.1.2.2  snj        <a href="DATABASE_README.html">DATABASE_README</a>, Postfix lookup table overview
    209  1.1.1.1.2.2  snj 
    210  1.1.1.1.2.2  snj <b>LICENSE</b>
    211  1.1.1.1.2.2  snj        The  Secure  Mailer  license must be distributed with this
    212  1.1.1.1.2.2  snj        software.
    213  1.1.1.1.2.2  snj 
    214  1.1.1.1.2.2  snj <b>HISTORY</b>
    215  1.1.1.1.2.2  snj        The proxymap service was introduced with Postfix 2.0.
    216  1.1.1.1.2.2  snj 
    217  1.1.1.1.2.2  snj <b>AUTHOR(S)</b>
    218  1.1.1.1.2.2  snj        Wietse Venema
    219  1.1.1.1.2.2  snj        IBM T.J. Watson Research
    220  1.1.1.1.2.2  snj        P.O. Box 704
    221  1.1.1.1.2.2  snj        Yorktown Heights, NY 10598, USA
    222  1.1.1.1.2.2  snj 
    223  1.1.1.1.2.2  snj                                                                    PROXYMAP(8)
    224  1.1.1.1.2.2  snj </pre> </body> </html>
    225