Ни один сервис в ОС не должен работать от имени администратора root. Если в коде программы будет найдена лазейка, позволяющая запускать команды, то можно считать систему потерянной, потому что директивы будут выполняться с правами root. Опытные пользователи компьютеров, наверное, помнят, что несколько лет назад, в sendmail чуть ли не каждую неделю находили ошибки, и большинство из них были критичными.
Сервис должен работать с правами пользователя, которому доступны только необходимые для работы директории и файлы. В sendmail это возможно сделать, и в последних версиях уже реализовано с помощью параметра RunAsUser
:
0 RunAsUser=sendmail
По умолчанию эта строка может быть закомментирована. Уберите комментарий. Можно также явно добавить описание группы, с правами которой должна происходить работа:
0 RunAsUser=sendmail:mail
В данном случае sendmail
— это имя пользователя, a mail
— имя группы.
8.4.4. Лишние команды
Почтовый сервер обрабатывает множество команд, но не все из них могут оказаться полезными. Убедитесь, что в вашем конфигурационном файле присутствуют и не закрыты комментарием следующие строки:
0 PrivacyOptions=authwarnings
0 PrivacyOptions=noexpn
0 PrivacyOptions=novrfy
Можно также в одной команде перечислить все параметры через запятую:
0 PrivacyOptions=authwarnings,noexpn,novrfy
Наиболее опасной может оказаться для сервера опция VRFY, которая позволяет проверить существование почтового ящика. Именно ее запрещает третья строка в данном примере.
Вторая строка устанавливает параметр noexpn
, запрещающий команду EXPN, которая позволяет по почтовому псевдониму определить E-mail-адрес или даже имя пользователя. С помощью этой директивы хакеры могут собирать себе списки для рассылки спама. Не стоит давать в руки злоумышленника такую информацию.
8.4.5. Выполнение внешних команд
В почтовом сервисе есть одна серьезная проблема — ему необходимо выполнять системные команды, а это всегда опасно. Если хакер сможет запустить такую команду без ведома администратора и с повышенными правами, то это грозит большими неприятностями. Именно поэтому мы понижали права, с которыми работает сервис, но этого недостаточно.
Чтобы запретить выполнение системных команд, необходимо заставить sendmal работать через безопасный интерпретатор команд. Для этого специально был разработан smrsh. Чтобы почтовый сервис использовал именно его, проще всего добавить следующую строку в файл sendmail.mc:
FEATURE('smrsh', '\bin\smrsh')
В данном случае в скобках указано два параметра: имя командного интерпретатора и каталог, в котором он располагается. Убедитесь, что в вашей системе именно такой путь, или измените параметр.
По умолчанию интерпретатор smrsh выполняет команды из каталога /usr/adm/sm.bin. Программы из других директорий запускать невозможно. Если в каталоге /usr/admsm.bin находятся только безопасные программы, то ваша система будет менее уязвима.
8.4.6. Доверенные пользователи
В сервисе sendmail можно создать список пользователей, которым вы доверяете отправлять сообщения без каких-либо предупреждений. Этот перечень находится в файле /etc/mail/trusted-users. Я не рекомендую вам здесь указывать реальных пользователей.
Но файл все же может быть полезен. В него можно добавить пользователя apache, чтобы проще было рассылать письма из Web-сценариев.
8.4.7. Отказ от обслуживания
Почтовые серверы довольно часто подвергаются атакам типа DoS, потому что они должны принимать соединения для обслуживаемых почтовых ящиков от любых пользователей. Таким образом, подключение на 25 и 110 порты, чаще всего, общедоступны.
Для защиты сервера от DoS-атак со стороны хакера нам помогут следующие параметры сервиса sendmail:
□ MaxDaemonChildren
— ограничение количества одновременно запущенных процессов. С помощью этого параметра мы можем защитить ресурсы сервера (процессор) от излишней перегрузки. По умолчанию установлено значение 12, но для мощного компьютера его можно повысить, чтобы эффективнее использовать процессор, а для слабого — уменьшить;
□ ConnectionRateThrottle
— максимальное количество открываемых соединений в секунду. По умолчанию этот параметр равен 3, и повышать его без особой надобности не стоит, только если вы уверены в производительности сервера.
8.5. Почтовая бомбардировка
С почтовой бомбардировкой я встретился первый раз почти 10 лет назад. Однажды я в чате оставил свой E-mail (до этого я никогда не светил своим адресом), и как назло в этот момент там сидел начинающий хакер, который просто ради шутки забросал меня почтовыми бомбами.
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии