5. Miscellaneous Features 5.1 CPU load monitoring 5.2 Session status files 5.3 POP3 before SMTP 5.4 Received path dropping 5.5 smtp.proxy pid file |
5. Miscellaneous Features
Since smtp.proxy may consume a considerable amount of CPU time by spooling e-mail traffic, scanning mails for spam and virueses - and the proxy server machine might do other things as well - smtp.proxy checks the CPU load average before accepting an incoming SMTP connection. If it find the load to be greater than the configured limit it closes the session with a 421.
When checking the CPU load, smtp.proxy expects the file /proc/uptime to exist and to contain three numbers. These three values are compared against up to three upper limits. If any of the values from /proc/uptime is less than the corresponging configured value the connection is accepted. That is, the CPU utilisation must exceed all configured limits. To disabled the utilisation check for one of the three numbers the limit can be set to zero, e.g. "10 0 2" ignores the second CPU utilisation value. The limits can be set with the maxloadavg configuration option, the default limits are "10 0 0".
If configured smtp.proxy writes information about the current connections to session status files. These files are created and removed as clients connect and disconnect. Session status files are enabled by setting the directory for the files:
A session status file contains the following data:
Notice that connection redirection is not yet implemented. smtp.proxy must have write permissions to the directory.
smtp.proxy supports SMTP sender admission by checking if the client did a POP3 session recently. Of course, this feature needs support by a POP3 server. The POP3 server must create files named after the client's IP number in a certain directory. If POP3 before SMTP is enabled and smtp.proxy finds a file for the sender's IP-number in the directory and the file is not older than 10 minutes, then the client is allowed to send e-mail. Otherwise it is rejected with 421.
The directory can be set with the clientip-dir option. There is no default and configuring the directory enables POP3 before SMTP. pop3.proxy can be configured to support smtp.proxy's POP3 before SMTP feature.
To hide any mail routing information behind smtp.proxy it can remove the
Received: headers from the outgoing mail. This feature is enabled by setting droppath to yes.
If smtp.proxy runs in standalone mode, it can optionally write the process id of the listening daemon process to a file. This option is enabled by configuring the pidfile's filename with the pidfile option.
The pidfile is then written before smtp.proxy changes its user id from root to nobody (or whatever is configured). When the daemon process terminates later it tries to remove the pidfile but it is expected that this fails because smtp.proxy runs then as unprivileged user.
|