Организация защиты Sendmail
Ограниченная оболочка “smrsh” Sendmail.
Программа smrsh предназначается для замены “/bin/sh” в программах почтальонах, определенных в Sendmail. Это ограниченная оболочка, которая предоставляет возможность строго определить через каталог “/etc/smrsh”, явный список исполняемых программ доступных Sendmail. Чтобы быть более точным, даже если “плохой парень” использует Sendmail для запуска программ без файлов псевдонимов и forward, smrsh ограничит набор программ, которые он или она сможет выполнить. В связке с Sendmail smrsh эффективно ограничивает область выполняемых программ только теми программами, что перечислены в каталоге /etc/smrsh. Если вы следовали по инструкциям описанным выше, то smrsh уже откомпилирована и инсталлирована в каталог “/usr/sbin/smrsh”.
Шаг 1
Первое, что надо сделать, это определить список команд, которые “smrsh” позволит Sendmail выполнять.
По умолчанию в него входят:
“/bin/mail” (если инсталлирована на вашей системе)
“/usr/bin/procmail” (если инсталлирована на вашей системе)
ЗАМЕЧАНИЕ. Вы не должны включать интерпретирующие программы, такие как sh(1), csh(1), perl(1), uudecode(1) или потоковый редактор sed(1) в список разрешенных программ.
Шаг 2
Следующее, что надо сделать, это заполнить каталог “/etc/smrsh” программами, которые разрешено запускать Sendmail. Для предотвращения дублирования программ мы будем создавать символические ссылки.
Для разрешения использования программы “/bin/mail” используйте следующие команды:
[root@deep /]# cd /etc/smrsh
[root@deep smrsh]# ln -s /bin/mail mail
Для разрешения использования программы “/usr/bin/procmail” используйте следующие команды:
[root@deep /]# cd /etc/smrsh
[root@deep smrsh]# ln -s /usr/bin/procmail procmail
Вышеприведенные команды позволят запускать программы mail и procmail из пользовательских файлов “.forward” или файла “aliases”, которые используют "program" синтаксис.
ЗАМЕЧАНИЕ. Procmail требуется только на почтовом концентраторе и не требуется на клиентской машине. Если вы настраиваете вашу систему как Центральный почтовый сервер, то создайте ссылку на procmail как описано выше, иначе пропустите его.
Шаг 3
Сейчас мы можем настроить Sendmail на использование защищенного shell. Программа почтальон определяется в одиночной строке конфигурационного файла “/etc/mail/sendmail.cf”. Вы должны модифицировать линию “Mprog”, заменив в ней “/bin/sh” на “/usr/sbin/smrsh”.
Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и измениет строку: Например:
Mprog, P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, T=X-Unix, A=sh -c $u
Дожна быть изменена на:
Mprog, P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/, T=X-Unix, A=sh -c $u
Сейчас перезапустите вручную процесс sendmail следующей командой:
[root@deep /]# /etc/rc.d/init.d/sendmail restart
ЗАМЕЧАНИЕ. В нашем конфигурационном файле “sendmail.mc”, написанном выше, мы уже настроили строку “Mprog” на использование защищенного shell “/usr/sbin/smrsh” при помощи макроопределения “FEATURE(`smrsh',`/usr/sbin/smrsh')”, так что не удивляйтесь, если “/usr/sbin/smrsh” уже установлен в “/etc/mail/sendmail.cf” для Почтового концентратора. Используйте технику непосредственного редактирования файла “/etc/mail/sendmail.cf” для тех машин, где вы использовали файл с макроопределениями “null.mc” (граничные сервера и клиентские машины).
Файл“/etc/mail/aliases”
Несовершенное или небрежное администрирование файла “aliases” может привести к легкому получению привилегированному статусу. Например, многие разработчики поставляют системы с псевдонимом “decode” в файле “/etc/mail/aliases”. Его основное назначение – облегчение для пользователей пересылки двоичных файлов по почте. Отправляющий пользователь конвертирует двоичный файл в ASCII, используя “uuencode”, затем отправляет полученное сообщение псевдониму “decode” на принимающий сервер. Затем псевдоним через канал (pipe) отправляет сообщение программе “/usr/bin/uuencode”, которая конвертирует ASCII назад в двоичный файл. Удалите псевдоним “decode” из файла “/etc/mail/aliases”. Аналогично, каждый псевдоним, который запускает программу и который вы сам не создавали должен быть проверен и скорее всего удален.
Редактируйте файл aliases (vi /etc/mail/aliases) и удалите следующие строки:
# Базовые псевдонимы системы – ДОЛЖНЫ быть представлены.
MAILER-DAEMON: postmaster
postmaster: root
# Обычная переадресация для псевдобюджетов.
bin: root
daemon: root
games: root - удалите эту строку.
ingres: root - удалите эту строку.
nobody: root
system: root - удалите эту строку.
toor: root - удалите эту строку.
uucp: root - удалите эту строку.
# Хорошо известные псевдонимы.
manager: root - удалите эту строку.
dumper: root - удалите эту строку.
operator: root - удалите эту строку.
# ловушка decode для захвата атаки
decode: root - удалите эту строку.
# Человек получающий почту для пользователя root
#root: marc
Чтобы изменения вступили в силу выполните команду:
[root@deep /]# /usr/bin/newaliases
Предотвращение неправильного обращения к вашему Sendmail неавторизированными пользователями
Sendmail сейчас включает значительные антиспаммовские возможности, которые могут помочь предотвратить неправильное использование вашего почтового сервера неавторизированными пользователями. Для этого, редактируйте ваш файл “/etc/mail/sendmail.cf” и внесите в него изменения блокирующие спаммеров.
Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и измените строку:
O PrivacyOptions=authwarnings
Должна быть:
O PrivacyOptions=authwarnings,goaway
Установка “goaway” говорит Sendmail отвергать все SMTP “EXPN” команды, отбрасывать все SMTP “VERB” команды и игнорировать все SMTP “VRFY” команды. Эти изменения не дадут спаммеру использовать команды “EXPN” и “VRFY”.
Ограничение числа людей, которые могут просматреть содержимое очереди
Обычно, кто угодно может просмотреть почтовую очередь при помощи команды “mailq”. Для ограничения тех, кто имеет возможность ее просмотреть используйте опцию “restrictmailq” в файле “/etc/mail/sendmail.cf”. С ней, Sendmail позволяет просматривать очередь только тем пользователям, кто входит в группу владеющую ею (root). Это позволяет полностью защитить каталог очереди, используя режим доступа 0700.
Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и внесите в него следующее изменение:
O PrivacyOptions=authwarnings,goaway
Измените на:
O*-PrivacyOptions=authwarnings,goaway,restrictmailq
Сейчас измените режим доступа к вашему каталогу очереди:
[root@deep /]# chmod 0700 /var/spool/mqueue
И перезапустите процесс sendmail, чтобы изменения вступили в силу: [root@deep /]# /etc/rc.d/init.d/sendmail restart Shutting down sendmail: [ OK ] Starting sendmail: [ OK ]
ЗАМЕЧАНИЕ. Мы уже добавили опцию “goaway” в строке “PrivacyOptions=”, а сейчас добавили туда же опцию “restrictmailq”. Любой непривелигированный пользователь, который попытается изучить почтовую очередь получит следующее собщение:
[user@deep /]$ /usr/bin/mailq
You are not permitted to see the queue
Ограничение пользователей имеющих возможность вызвать обработку очереди пользователем “root”
Обычно, кто угодно может вызвать обработку очереди при помощи ключа “-q”. Чтобы только пользователь “root” и владелец каталога очереди могли сделать это используйте опцию “restrictqrun” в файле “/etc/mail/sendmail.cf”.
Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и внесите в него следующее изменение:
O PrivacyOptions=authwarnings,goaway,restrictmailq
Изменить на:
O PrivacyOptions=authwarnings,goaway,restrictmailq,restrictqrun
Перезапустите процесс sendmail, чтобы изменения вступили в силу:
[root@deep /]# /etc/rc.d/init.d/sendmail restart Shutting down sendmail: [ OK ] Starting sendmail: [ OK ]
Любой непривилегированный пользователь, попытавшийся запустить обработку очереди, получит следующее сообщение:
[user@deep /]$ /usr/sbin/sendmail -q
You do not have permission to process the queue
Приветственное сообщение SMTP
Когда Sendmail принимает входящие SMTP соединения, он посылает на другой хост приветственное сообщение. Оно идентифицирует локальную машину и говорит о том, что sendmail готов к приему.
Редактируйте файл sendmail.cf (vi /etc/mail/sendmail.cf) и измените строку:
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
Должна быть:
O SmtpGreetingMessage=$j
Перезапустите процесс sendmail, чтобы изменения вступили в силу:
[root@deep /]# /etc/rc.d/init.d/sendmail restart Shutting down sendmail: [ OK ] Starting sendmail: [ OK ]
Это изменение фактически ничего не меняет, но рекомендуется в группе новостей news.admin.net-abuse.email как законная предосторожность. Оно изменяет заголовок, которое Sendmail выводит при приеме соединений.
Установка бита “постоянства” на важнейшие файлы Sendmail
На важные файлы Sendmail может быть установлен бит “постоянства для лучшей безопасности при помощи команды “chattr”. Файл с установленным атрибутом “+i” не может быть модифицирован, удален или переименован, на него нельзя создавать ссылки и никакие данные не могут быть дописаны в такие файлы. Только суперпользователь может снять этот атрибут.
Установите бит “постоянства” на файл “sendmail.cf”:
[root@deep /]# chattr +i /etc/mail/sendmail.cf
Установите бит “постоянства” на файл “local-host-names”:
[root@deep /]# chattr +i /etc/mail/local-host-names
Установите бит “постоянства” на файл “aliases”:
[root@deep /]# chattr +i /etc/mail/aliases
Установите бит “постоянства” на файл “access”:
[root@deep /]# chattr +i /etc/mail/access