14.6. Защита программы sendmail. Программа smrsh
14.6. Защита программы sendmail. Программа smrsh
Однажды неизвестный хакер может заставить ваш sendmail выполнить какую-нибудь программу. Какая это будет программа — зависит от его фантазии: безобидная команда echo или «rm -rf /». О том, как это сделать, я писать не буду — лучше разберемся, как этого не допустить.
По умолчанию для запуска внешних программ используется оболочка /bin/sh (или /bin/bash), которая позволяет запускать любые программы без ограничения. Вместо оболочки /bin/sh рекомендуется использовать защищенную оболочку smrsh, которая позволяет определить, какие программы можно запускать, а какие — нет.
Определим список программ, которые можно запускать. В него войдут пользовательские агенты (mail), агент доставки procmail и, может быть, что-нибудь еще. Категорически нельзя разрешать запускать командные оболочки (sh, bash, tcsh и другие), потоковый редактор sed, интерпретаторы perl, php и программу uuencode.
Создайте в каталоге /etc/smrsh ссылки на программы, которые можно запускать:
$ cd /etc/smrsh
$ ln -s /bin/mail mail
$ ln -s /usr/bin/procmail procmail
Откройте файл sendmail.cf и замените строки:
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=EnvFromL/HdrFromL,
R=EnvToL/HdrToL, D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=sh -c $u
строками:
Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=EnvFromL/Hdr-FromL,
R=EnvToL/HdrToL, D=$z:/,
T=X-Unix/X-Unix/X-Unix,
A=smrsh -c $u
После этого перезапустите программу sendmail:
# service sendmail restart
Данный текст является ознакомительным фрагментом.