как узнать версию exim centos
Проверка работы почтового сервера Exim на примере CentOS
Я написал небольшую шпаргалку по основным командам как проверить работу почтового сервера EXIM. Как правило он не доставляет проблем и поэтому со временем забываешь как им пользоваться и попадаешь в ступор при возникновении недоразумений с доставкой почты.
Как проверить работу почтового сервера на PHP
Для проверки работы почтового сервера я использую следующий PHP скрипт:
Этот скрипт попытается отправить проверочное письмо по списку адресов из массива. Измените этот список на почтовые ящики к которым у вас есть доступ и сохраните скрипт в каком-нибудь PHP файле у себя на сайте (например testmail.php) и затем запустите в окне браузера (http://mydomain.tld/testmail.php).
При успешной работе скрипта вы увидите в окне браузера список email адресов куда сервер попытается доставить почту. Далее вам нужно будет проверить указанные в скрипте почтовые ящики, чтобы убедиться что письма пришли.
Как проверить работу почтового сервера Exim из командной строки
Если кто-то вас уверяет, что сервер ничего не отправляет, то проверьте его его работу прямо из консоли:
где mail@domain.tld адрес электронный почты, на который вы хотите отправить проверочное сообщение.
Если при этом вы получили сообщение об ошибке:
То установите mailx (пример для CentOS):
Команды для работы с очередью сообщений в Exim
Проверить количество сообщений в очереди:
Получить список сообщений в очереди:
Просмотреть тело сообщения с конкретным ID:
Удалить все «замороженные» сообщения из очереди:
Полностью очистить очередь сообщений (удалить все неотправленные сообщения):
Благодарности
При написании статьи были использованы следующие источники:
Почтовый сервер на CentOS 7. Установка Dovecot + Exim + Roundcube
В данной статье мы установим и настроим почтовый сервер с использованием Exim и Dovecot на CentOS 7.5 VPS с использованием веб интерфейса Roundcube.
Для этого мы используем VPS на базе CentOS; с предварительно установленной с минимальной CentOS 7.5
Что такое Exim?
Что такое Dovecot?
Что такое Roundcube?
Roundcube — веб-интерфейс для работы с электронной почтой, предоставляет возможность работать с вашими почтовыми ящиками используя IMAP и SMTP. Приложение обладает мощным функционалом и по возможностям сравнимо с настольными почтовыми клиентами, такими как Outlook Express или Mozilla Thunderbird
Подготовка и настройка
Подключим дополнительный репозиторий EPEL.
Для чего выполним:
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum update
Чтобы проверить что вновь добавленный репозиторий EPEL подключился к нашей системе введем:
# yum repolist
После чего установим некоторые полезные инструменты:
# yum install file perl-Mail-SPF.noarch openssl nano
Exim установка и настройка
Теперь мы откроем файл /etc/exim/exim.conf, используя ваш любимый редактор,предварительно создав его резервную копию и приведем его к следующему виду:
# cp /etc/exim/exim.conf<,.original>
# nano /etc/exim/exim.conf
primary_hostname = mail.mypostdomain.com
domainlist local_domains = @ : mypostdomain.com
tls_advertise_hosts = *
tls_certificate = /etc/ssl/mail.mypostdomain.com.crt
tls_privatekey = /etc/ssl/mail.mypostdomain.com.key
auth_advertise_hosts = *
Обратим внимание на строки tls_certificate и tls_privatekey, мы будем использовать сертификат SSL, Вы можете заказать его на нашем сайте и найти необходимые файлы в Личном кабинете.
Далее перейдем к разделу транспорт и приведем к виду:
Далее в разделе аутентификации добавим несколько строк:
Запустим exim, и добавим его в автозагрузку системы используя systemctl:
# systemctl start exim
# systemctl status exim
# systemctl enable exim
Настройка Dovecot
# yum install dovecot
После установки отредактируем файлы конфигурации:
# nano /etc/dovecot/conf.d/10-ssl.conf
ssl = yes
ssl_cert = /etc/ssl/mail.mypostdomain.com.crt
ssl_key = /etc/ssl/mail.mypostdomain.com.key
# nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
# nano /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:
# vim /etc/dovecot/conf.d/10-master.conf
service auth <
.
unix_listener auth-client <
mode = 0660
user = exim
>
>
Запустим dovecot, и добавим его в автозагрузку системы используя systemctl.
# systemctl start dovecot
# systemctl status dovecot
# systemctl enable dovecot
Roudcube
LAMP
# yum install roundcubemail
#
# Round Cube Webmail is a browser-based multilingual IMAP client
#
Alias /roundcube /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail
Options none
AllowOverride Limit
Require all granted
Options none
AllowOverride Limit
Require all granted
# Those directories should not be viewed by Web clients.
Order Allow,Deny
Deny from all
Order Allow,Deny
Deny from all
# service httpd restart
linux-notes.org
Команды Exim
В моей статье «Команды Exim» я привел некоторые команды, которые можно использовать для управления MTA Exim и так же очередями электронной почты. Все команды что я приведу ниже, должны быть выполнены из под ROOT-а (от суперпользователя root). По мере возможности, я возможно буду добавлять новые команды ( которых нет), но основные приведены ниже.
Управление Exim-ом.
Чтобы остановить, выполните:
Или еще можно выполнить по другому:
Выясняем чем же занят в данный момент Exim (его MTA).
Чтобы проверить маршрутизацию почты по заданному емейлу.
Генерируем и выводим статистику Exim из лог файла.
Можно проверить SMTP соединение из прямо из командной строки для конкретного IP-адреса.
Данная проверка будет показывать как проходит письмо с IP-шника, через какие ACL и так же фильтры:
Вывести все настройки Exim
Узнать сколько писем в очереди.
Показать список сообщений которые находятся в очереди (сколько они в очереди (их время), их размер, идентификатор сообщения, кто отправитель и кто получатель).
Вывести всех сообщений которые находятся в очереди (их количество, объем, старых или новых, их области).
Поиск очереди сообщения от заданного отправителя.
Поиск в очереди сообщений для получателя или домена
Вывод только Message-ID (или как в примере выше).
Показать количество сообщений (или как в примере выше).
Показать только Message-ID очереди
Вывести заголовков сообщения которые в очереди
Просмотреть тела сообщения которые находятся в очереди
Чтобы посмотреть логи сообщения
Запустим процесс на выполнения в самой очереди
Запустим процесс выполнения самой очереди для локальных получателей
Отправить одно сообщения принудительно
1ZAglY-0000dr-SY — Это и есть ID сообщения.
Принудительно запустить другую очередь на выполнение
Принудительно запустить другую очередь на выполнение и попытаться очистить замороженные сообщения
Получить количество писем в очереди
Показать сколько замороженных писем в очереди
Удалить замороженные сообщения
Удалить сообщение из очереди
Удаляем все сообщения из очереди которые старше чем определенной даты.
Допустим, 5 дней будет 432 000 секунд:
Заморозить все сообщения в очереди от отправителя
Удалить все сообщения из очереди (довольно плохая идея)
Параметр «-o» указывает искать сообщения, старее, указанного количества секунд. В примере, сообщения старее 1 дня:
Параметр «-y» ищет сообщения свежее указанного количества секунд. В примере, найти сообщения, пришедшие в течении последнего часа:
Параметр «-s» даст возможность искать сообщения по размеру, которые совпадают с заданным регулярным выражением:
Удалить сообщения которые идут от конкретного домена:
Удалить сообщения которые идут на конкретного домена:
Скрипты.
1. Чтобы получить отсортированный список электронной почты отправителя в Exim c почтовой очереди. Он покажет количество писем которые в очереди.
Вы получите результат, как как следует:
Но это не самый простой способ, а проще всего — это выполнить команду:
2. Следующие скрипты будут проверять скрипт, кто отсылает спам-сообщения:
Вы получите результат первых двух сценариев. Третий сценарий просто к дополнению от первых двух скриптов:
3. Иногда нужно выяснить кто же рассылает спам или скрипт. Следующий сценарий поможет вам найти точное названия скрипта, который отправляет спам-письма:
Как только вы найдете точный сценарий, следующий сценарий поможет вам найти IP-адрес, который отвечает за спам. Вы получите список IP-адресов из следующего скрипта.Адрес IP-адреса, который имеет большое количество доступа, скорее всего — результат рассылки спама. Вы можете заблокировать IP-адрес в csf или apf брандмауэре.
Полезные команды почтового сервера Exim, шпаргалка
Exim — это так называемый MTA ( Mail Transfer Agent ), агент передачи сообщений, в просторечии — почтовик или почтовый сервер, использующийся в операционных системах Unix. Распространяется по свободной лицензии GPL, то есть доступен для распространения, использования и модификации.
Exim, весьма распространен и в некоторых операционных системах является почтовым сервером по умолчанию.
Данный материал, является вольным переводом exim chearsheet.
ID сообщений и spool файлы
Идентификаторы сообщений в очередях Exim, представляют из себя буквенно-цифровые последовательности в верхнем и нижнем регистрах: XXXXXX-YYYYYY-ZZ и используются большинством команд администрирования очереди и логгирования в Exim.
Для каждого сообщения создаются три файла в spool директории ( зачастую это: /var/spool ). Если вы работает с данными файлами вручную, без использования описанных ниже команд и утилит, убедитесь что обработали все три файла, например, не оставив в очереди exim только один из них, удалив остальные.
Получение базовой информации по Exim
Вывести количество сообщений в очереди:
Печать списка сообщений в очереди. Выводятся, время постановки в очередь, размер, ID сообщения, отправитель, получатель:
Печать суммарной информации. Выводимые колонки: количество, объем, старейшее, последнее, домен.
Чем в данный момент занимается Exim:
Тестирование маршрута доставки до указанного адреса:
Эмитировать SMTP транзакцию из командной строки, как если-бы сообщение пришло с указанного IP адреса. При этом будет показано прохождение и срабатывание проверок, фильтров и листов доступа (ACL). На самом деле, никакое сообщение никуда доставлено не будет.
Листинг всех настроек конфигурации exim:
Поиск очереди с помощью утилиты exiqgrep
Вывести только ID сообщения, в одном из вышеупомянутых вариантов поиска
Печатать счетчик сообщений при одном из вышеприведенных вариантов поиска:
Вывести только идентификатор всей очереди:
Управление очередями сообщений
Запуск очереди только для локальных доставок:
Удалить сообщение из очереди:
Очистит все заблокированные сообщения из очереди:
Очистит все сообщения из очереди:
Заблокировать( заморозить ) сообщение:
Доставить сообщение, вне зависимости от состояния блокировки или времени повторной доставки:
Доставить сообщение, только если достигнуто время для повторной доставки:
Принудительно остановить сообщение с формулировкой «отменено администратором»:
Удалить все заблокированные сообщения:
Удалить все сообщения, старше 5 дней (86400 * 5 = 432000 секунд):
Заблокировать все письма от указанного отправителя:
Просмотреть заголовки сообщений:
Просмотреть тело сообщений:
Просмотр логов сообщения:
Добавить получателя в сообщение:
Редактировать отправителя сообщения:
Листы контроля доступа (Access Control List, ACL)
Exim предоставляет возможность использовать, листы контроля доступа (ACL) на различных этапах SMTP передачи. Условия ACL назначаются в конфигурационном файле exim.conf.
Начать имеет смысл с HELO.
Используйте проверку HELO на свой страх и риск. Сейчас HELO не имеет такого большого значения в общей схеме SMTP, так что не стоит сильно доверять его содержимому. Не только спамеры используют строку HELO, вы будете удивлены сколько нормальных сообщений может приходить с кривым HELO. Спамерам не составит труда отправлять сообщения с легальной строкой HELO а не писать там «я спамер», так что много спама вы на этом не отсеете.
Далее, вы можете провести проверку по отправителю или удаленному хосту. В примере показано как фильтровать по содержимому, идущему после команды RCPT TO. Если прием сообщения будет отклонен в этом месте, вы получите больше данных в логах, нежели при блокировке по MAIL FROM.
В приведенном примере для блокировки используются два текстовых файла. В файл /etc/exim_reject_hosts, значения добавляются в виде: имя_хоста/IP_адрес, в файл /etc/exim_reject_senders в виде адреса отправителя, по одной записи в строке.
Кроме того, можно сканировать содержимое сообщения, на предмет совпадения с регулярным выражением. Имейте в виду, это дает дополнительную нагрузку на процессор, особенно на больших сообщениях.
Исправление SMTP аутентификации для pine
В случае, если pine не может использовать аутентификацию на сервере Exim, возвращая сообщение «unable to authenticate», без запроса на ввод пароля, нужно добавить в exim.conf следующие строки.
Некоторое время назад, данная проблема имела место быть в CPanel, на текущий момент этот недочет исправлен.
Запись в лог файл заголовка Subject
Один из самых полезных хаков конфигурации Exim. Добавление в exim.conf приведенной строки, позволит писать в лог файл строку subject, писем проходящих через сервер. Это сильно помогает при решении проблем в процессе настройки сервера, а так-же дает дополнительные критерии для отсева спама.
Отключение identd
Честно говоря не думаю что протокол identd был когда либо очень полезен. Identd опирается на подключающийся хост, что-бы подтвердить идентификацию ( System UID ), удаленного пользователя, владельца процесса, устанавливающего сетевое соединение. Это может быть в определенной степени полезно в мире системных оболочек и IRC пользователей, но уж никак не на нагруженном почтовом сервере, где пользователем процесса зачастую является просто какой-нибудь «mail», и за этим может быть любой другой MTA. В итоге куча накладных расходов, нулевой результат, лишь задержки identd запросов и как следствие отказы и таймауты.
Можно запретить Exim делать подобные запросы, установив таймаут 0 секунд в exim.conf.
Отключение блокировки вложений
Что-бы отключить блокировку исполняемых вложений, что CPanel делает по умолчанию, правда не предоставляя при это контроля «для каждого домена», следующий блок нужно добавить в начало файла /etc/antivirus.exim:
Поиск в журнальных файлах с помощью exigrep
Утилита exigrep ( не путайте с exiqgrep, использующейся для поиска в очереди ), используется для поиска по лог файлам. Например exigrep может вывести все записи из лог файла с совпадающим ID сообщения, что довольно удобно, учитывая что каждое сообщение занимает 3 строки в лог файле.
Поиск сообщений отправленных с определенного IP адреса:
Поиск сообщений отправленных на определенный IP адрес:
После того как вы внесли изменения в файл конфигурации, необходимо перезапустить exim, или послать рабочему процессу сигнал SIGHUP, что-бы он перечитал конфигурационный файл и изменения вступили в силу. Предпочтительней естественно отправить сигнал, нежели перезапускать приложение.
Как узнать версию exim centos
Полезные команды Exim
Получение базовой информации по Exim
Проверить правильность синтаксиса конфигурационного файла и узнать с поддержкой каких опций собран exim:
Вывести количество сообщений в очереди:
Печать списка сообщений в очереди. Выводятся, время постановки в очередь, размер, ID сообщения, отправитель, получатель:
Просмотр активных отправителей
Вывод суммарной информации.
Выводимые колонки: количество писем, объем, самое старое время, самое новое время, домен.
Тестирование маршрута доставки до указанного адреса:
Иммитировать SMTP транзакцию из командной строки, как если-бы сообщение пришло с указанного IP адреса. При этом будет показано прохождение и срабатывание проверок, фильтров и листов доступа (ACL). На самом деле, никакое сообщение никуда доставлено не будет.
Листинг всех настроек конфигурации
Поиск в очереди с помощью утилиты exiqgrep
Просмотр сообщений конкретного отправителя
Просмотр сообщений для конкретного получателя
Поиск сообщений, старше, указанного времени ( количества секунд)
В примере, сообщения старше 1 дня:
Поиск сообщений свежее указанного времени(количества секунд). В примере поиск сообщений, пришедших в течение последнего часа:
Просмотр замороженных сообщений
Подсчет замороженных сообщеий
Просмотр заблокированных сообщений
Подсчет заблокированных сообщеий
Просмотр только идентификаторов всех сообщений
Управление очередью сообщений
Принудительная рассылка всей почты в очереди
Запуск очереди только для локальных доставок:
Удалить сообщение из очереди:
Удалить все заблокированные сообщения из очереди:
Удалить все сообщения из очереди:
Удалить все заблокированные сообщения:
Удалить все сообщения, старше 5 дней (86400 * 5 = 432000 секунд):
Заблокировать(заморозить) все письма от указанного отправителя:
Удалить все письма от указанного отправителя:
Заблокировать( заморозить ) сообщение:
Разблокировать сообщение:
Доставить сообщение, вне зависимости от состояния блокировки или времени повторной доставки(принудительная доставка сообщения):
Доставить сообщение, только если достигнуто время для повторной доставки:
Принудительно остановить сообщение с формулировкой «отменено администратором»:
Просмотр заголовки сообщений:
Просмотр тела сообщений:
Просмотр логов сообщения:
Добавить получателя в сообщение:
Изменить адрес отправителя сообщения:
Поиск сообщений отправленных с определенного IP адреса:
Поиск сообщений отправленных на определенный IP адрес:
Данный пример ищет сообщения содержащие символы «=>», и отправленные на адрес «user@domain.tld», далее по конвейеру, результат передается команде grep, которая из полученного результата выбирает строки, содержащие «
Генерировать из лог файла и показать статистику Exim:
То-же что и выше но с более подробными данными:
Аналогично но за определенный день:
Удалить все сообщения в очереди, содержащие в теле, определенную строку:
Проверка распознавания адреса exim, и вывода роутера и транспорта который будет использоваться для доставки локальным пользователям: