The smrsh Program
The sendmail program normally runs any program it finds in the user’s ~/.forward file. A cracker can attack any user, including root, by having permission to modify the user’s ~/.forward file. Consider the following modifications, for example:
\user |"/usr/ucb/vacation user" ←OK |"/tmp/x.sh" ←an attack! |"cp /bin/sh /home/george/.x; chmod u+s /home/george/.x"←an attack!
As an aid in preventing such attacks, V8.1
sendmail first offered the
smrsh (sendmail
restricted shell) program. V8.7
sendmail offered the smrsh
feature (see Section 5.8.2) as an easy way to install
smrsh with your mc
configuration file.
Build smrsh
The smrsh program is supplied in source form with the sendmail distribution in the smrsh directory. The README file in that directory describes how to compile and install smrsh, and tells how it can be used with all versions of sendmail. Note that the instructions we give you here refer to V8.9 and above.
To build smrsh just execute the following in the smrsh directory:
% ./Build
There is very little to tune inside smrsh at build time. You might wish to predefine ALLOWSEMI as a way to allow semicolons inside command-lines, but this is not recommended because it makes the job of smrsh harder and less secure. In the rare event you need to allow semicolons, however, you can add the following line to your m4 build file:
APPENDDEF(`conf_smrsh_ENVDEF', `-DALLOWSEMI')
You might also want to change the directory where smrsh will look for its approved executable ...
Get Sendmail, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.