Инструмент командной строки Ubuntu для сервера электронной почты

Инструмент командной строки Ubuntu для сервера электронной почты

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

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

решение1

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

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

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

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

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

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

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


1 " /usr/sbin/sendmail" — это программа, которая идет свсеMTA, в то время как «Sendmail» — это названиеспецифическийМТА.

решение2

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

echo "Error occurred in script at `date`" | mail -s "Error running script" [email protected]

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

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

grep -i error /path/to/yourfile.log | mail -s "Errors from script execution" [email protected]

Проверьте man mailналичие дополнительных вариантов.

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

[email protected]

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

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

Связанный контент