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