Установка и настройка SSMTP

SSMTP — альтернатива sendmail для отправки почты, позволяет настроить отправку через сторонние почтовые сервера.

Для установки в Ubuntu используется команда:

sudo apt-get install ssmtp mailutils

Далее необходимо открыть в любом текстовом редакторе файл /etc/ssmtp/ssmtp.conf (в nano клавиши Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/ssmtp/ssmtp.conf

Закомментируем все и настроим как показано ниже на примере:

root=test@gmail.com
mailhub=smtp.gmail.com:587
hostname=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=test@gmail.com
AuthPass=password
FromLineOverride=YES

Если использовать почту Google, то вероятно придется разрешить «Ненадежные приложения» в настройках https://myaccount.google.com/security.

Также откроем в текстовом редакторе файл /etc/ssmtp/revaliases:

sudo nano /etc/ssmtp/revaliases

И добавим:

root:test@gmail.com:smtp.gmail.com:587

Попробуем отправить письмо на указанный адрес (после команды наберем желаемый текст и поставим точку для завершения):

sendmail -v admin@example.com

Письма должны отправляться с адреса указанного в файле /etc/ssmtp/ssmtp.conf.

Как разрешить SMTP без SSL на порт 25 в iRedMail/Postfix

Чтобы разрешить на почтовом сервере отправку писем без шифрования через порт 25, необходимо открыть файл конфигурации Postfix, например в редакторе nano (в котором Ctrl+X для выхода, y/n для сохранения или отмены изменений):

sudo nano /etc/postfix/main.cf

И раскомментировать две строки:

smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous

И оставить закомментированной строку:

#smtpd_tls_auth_only=yes

Перезагрузим Postfix чтобы применить изменения:

sudo service postfix restart

После этого можно будет отправлять письма по SMTP через 25 порт без SSL так и как обычно через 587 с SSL.

Смотрите также:
Небезопасные соединения к POP3/IMAP iRedMail

Отправка e-mail в Windows через консольную утилиту mailsend

Однажды начал использовать программу mailsend для автоматической отправки отчетов через SMTP, так как mailsend поддерживает SSL. До этого пользовался Blat.

Читать далее «Отправка e-mail в Windows через консольную утилиту mailsend»

Отправка e-mail в Windows через консольную утилиту Blat

Официальный сайт для загрузки программы: www.blat.net

Для выполнения команд с программой необходимо перейти в директорию где она находится, либо указать полный путь, либо скопировать в системную директорию.

Справку по программе можно получить выполнив команду:

blat -help

Пример команд для отправки:

blat textmsg.txt -u test@example.com -pw test -to test@example.com -f test@example.com -s "subject text" -server mail.example.com -attach file.txt
С:\Blat\blat.exe -body " " -u test@example.com -pw test -to "test@example.com,test2@example.com" -f test@example.com -charset utf-8 -s "Текст темы" -server mail.example.com -attach С:\Blat\file.txt -log С:\Blat\log.txt -timestamp

Для выполнения команды по щелчку мыши или из автозагрузки можно сохранить ее в текстовый файл с расширением *.bat и кодировкой EOM 866 (DOS-866) если используются кириллические символы.

где:
textmsg.txt (текст email сообщения)
-body «тескт» (текст email сообщения)
-u (имя пользователя для соединения)
-pw (пароль для соединения)
-to (получатель email сообщения)
-f (отправитель email сообщения)
-s (тема сообщения)
-server (адрес сервера отправки)
-attach (имя прикрепляемого файла к email сообщению)
-log (файл ведения журнала)
-timestamp (отметка времени у каждого события)

Мониторим подключения по SSH через email

Приведу несколько способов как получать оповещения на электронную почту о том что кто-то подключился к серверу по SSH.

ПЕРВЫЙ СПОСОБ:
Текстовым редактором, например nano, откроем файл /etc/ssh/sshrc (в редакторе nano CTRL+X для выхода, а y/n и Enter для сохранения или отмены изменений):

sudo nano /etc/ssh/sshrc

И добавим в него следующий код:

ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
logger -t ssh-wrapper $USER login from $ip
(echo "Subject:login($ip) on server"; echo "User $USER just logged in from $ip";) | sendmail -f server@example.com -t your-email@example.com &

Перезапускать SSH не нужно, уведомления уже должны приходить при подключениях.

ВТОРОЙ СПОСОБ:
Добавляем указанные строки в конфиг /etc/rsyslog.conf (перед каждой строкой прокомментировал суть, данный код позволит отсылать сообщения о неудачных подключениях):

# Подключаем модуль отправки сообщений
$ModLoad ommail
# Указываем адрес почтового сервера
$ActionMailSMTPServer mail.domain.com
# Указываем email с которого будут отправляться сообщения
$ActionMailFrom rsyslog@domain.com
# Указываем email на который будут приходить сообщения
$ActionMailTo test@domain.com
# Указываем тему сообщения
$template mailSubject,"SSH Invalid User %hostname%"
# Указываем содержание сообщения
$template mailBody,"RSYSLOG\r\nmsg='%msg%'"
$ActionMailSubject mailSubject
# Указываем в секундах как часто могут отправляться сообщения
$ActionExecOnlyOnceEveryInterval 10
# Если в логах содержатся указанные в скобках символы, тогда отсылаем сообщение
if $msg contains 'Invalid user' then :ommail:;mailBody

Такой же способ отправки через rsyslog, но отсылаются уведомления об успешных подключениях (код без комментариев как выше):

$ActionMailSMTPServer mail.domain.com
$ActionMailFrom rsyslog@domain.com
$ActionMailTo test@domain.com
$template mailSubject,"SSH Accepted pass %hostname%"
$template mailBody,"RSYSLOG\r\nmsg='%msg%'"
$ActionMailSubject mailSubject
$ActionExecOnlyOnceEveryInterval 10
if $msg contains 'Accepted password' then :ommail:;mailBody

В итоге при успешном или не успешном подключении к серверу SSH на электронную почту будут приходить сообщения. Аналогичным способом можно анонсировать на email и другие события которые логируются через rsyslog.