Я начал писать некоторые сценарии, которые делают резервную копию моих файлов журнала. Всякий раз, когда в файле журнала обнаруживается ошибка, я хочу отправить себе электронное письмо. Тем не менее, я хочу убедиться, что мой сервер не скомпрометирован, так как я слышал, что установка smtp/mail открывает новые возможности для хакеров.

Есть ли инструмент, который не получает электронные письма, но может только отправлять их? Кроме того, какие соображения безопасности я должен принять при установке?

2 ответа2

2

Тем не менее, я хочу убедиться, что мой сервер не скомпрометирован, так как я слышал, что установка smtp/mail открывает новые возможности для хакеров

Любой сервис может "открыть новые возможности для хакеров", если он плохо написан. Но для почты оба Postfix или Exim4 очень безопасны.

(В общем, у вас все будет хорошо, если вы не используете десятилетнюю Sendmail. Текущие версии безопасны, но я все равно рекомендую держаться подальше от Sendmail - файл конфигурации не совсем удобен для чтения человеком.)

Есть ли инструмент, который не получает электронные письма, но может только отправлять их?

Любой MTA (Postfix, Exim4, Sendmail) может работать таким образом - просто настройте его на прослушивание только петлевых адресов (::1 и 127.0.0.1). Вы даже можете полностью отключить компонент SMTP - большинство программ Unix не требуют его и отправляют почту через /usr/sbin/sendmail 1, что делает SMTP ненужным.

Это действительно не нужно против "хакеров", хотя. Худшее, что вы можете получить с приличным MTA, - это оставить его открытым для ретрансляции - и настройки по умолчанию уже позаботятся об этом.

Другой вариант - msmtp , который даже не имеет полной поддержки SMTP - все, что он может сделать - это пересылать почту через другой почтовый сервер, такой как Gmail или ваш интернет-провайдер. Но хотя он полезен для персонального компьютера, он не совсем подходит для серверной среды.


1 « /usr/sbin/sendmail » - это программа, которая поставляется со всеми MTA, а "Sendmail" - это имя конкретного MTA.

2

Отправка почты из сценария оболочки довольно проста, если у вас установлен стандартный MTA (Postfix, Exim4, Sendmail и т.д.). Как правило, для отправки вы можете использовать команду mail с соответствующими аргументами, повторяющую содержание вашей электронной почты в программе. Например:

echo "Error occurred in script at `date`" | mail -s "Error running script" youremail@domain.com

аргумент -s указывает тему, а вы следуете за получателем электронной почты.

Другой пример

grep -i error /path/to/yourfile.log | mail -s "Errors from script execution" youremail@domain.com

Проверьте man mail для большего количества вариантов.

Другой вариант, если вы запускаете ваш скрипт через cron, это сделать так, чтобы cron автоматически отправлял вам по электронной почте вывод вашего скрипта. Добавьте опцию MAILTO в ваш crontab следующим образом:

MAILTO=youremail@domain.com

и вы будете получать электронное письмо с любым выводом из stdout при каждом запуске скрипта.

Что касается безопасности, отправка и получение электронной почты - это две совершенно разные вещи. Вы можете отправлять электронную почту со своего сервера, не запуская почтовый сервер-получатель, просто не запускайте демон smtp и не блокируйте доступ к входящему порту 25 (SMTP) через брандмауэр, если вам не нужно получать электронную почту через этот сервер.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .