Как узнать версию exim centos

Обновлено: 01.07.2024

Получение базовой информации по Exim

Печать суммарной информации. Выводимые колонки: количество, объем, старейшее, последнее, домен.

Чем в данный момент занимается Exim:

Тестирование маршрута доставки до указанного адреса:

Листинг всех настроек конфигурации exim:

Поиск очереди с помощью утилиты exiqgrep

Стандартная поставка сервера Exim включает в себя утилиту для поиска по очередям — exiqgrep, это самый оптимальный путь для решения данной задачи.
Если вы используете конвейер команд, например из exim -bp в awk, grep, cut и т.д., вы просто усложняете себе жизнь.
Различные ключи команды exiqgrep, позволяют достаточно тонко настроить критерии поиска.

Вывести только идентификатор всей очереди:

Запуск очереди только для локальных доставок:

Заблокировать все письма от указанного отправителя:

Листы контроля доступа (Access Control List, ACL)

Exim предоставляет возможность использовать, листы контроля доступа (ACL) на различных этапах SMTP передачи. Условия ACL назначаются в конфигурационном файле exim.conf.
Начать имеет смысл с HELO.

В приведенном примере для блокировки используются два текстовых файла. В файл /etc/exim_reject_hosts, значения добавляются в виде: имя_хоста/IP_адрес, в файл /etc/exim_reject_senders в виде адреса отправителя, по одной записи в строке.

Исправление SMTP аутентификации для pine

Некоторое время назад, данная проблема имела место быть в CPanel, на текущий момент этот недочет исправлен.

Запись в лог файл заголовка Subject

Один из самых полезных хаков конфигурации Exim. Добавление в exim.conf приведенной строки, позволит писать в лог файл строку subject, писем проходящих через сервер. Это сильно помогает при решении проблем в процессе настройки сервера, а так-же дает дополнительные критерии для отсева спама.

Отключение identd

Отключение блокировки вложений

Поиск в журнальных файлах с помощью exigrep

Генерировать из лог файла и показать статистику Exim:

То-же что и выше но с более подробными данными:

Аналогично но за определенный день:

В качестве дополнения

Проверка SMTP содинения из коммандной строки для определенного IP-адреса. Результат покажет через какие проверки будет проходить письмо с данного IP-адреса, через какие ACL и фильтры. Необходимо заменить x.x.x.x на необходмый IP-адрес.

выводит все значения установленные в конфиге. У этой команды тоже есть
куча параметров, но дефолтное использование + grep достаточно в 90%
случаев.

Посмотрим настройки транспорта

Посмотрим настройки транспорта и подписи DKIM

отладка. Крайне полезная опция. Специально начал с нее, потому что её
можно комбинировать с любыми другими.

Например exim -bd -d запускает exim как демон, выводя на консоль всю
отладочную информацию. Чтобы уменьшить количество выдаваемой информации,
можно использовать -dd (имеет смысл только с -bd) пропускает информацию
по подпроцессам. Или -v, простое описание того, что делает exim (при
использовании -d включена по умолчанию).

кроме того, что выдает версию и некоторую информацию о бинарнике,
проверяет exim.conf на ошибки (А скорее, на опечатки. Если эта опция
говорит, что все хорошо, то это еще не значит, что ВСЁ хорошо).

устанавливает имя отправителя. Если опция не указана, подставляется
значение поля «gecos» из данных пароля пользователя.

устанавливает адрес отправителя. Обычно, она может использоваться только
доверенными пользователями, но директива «untrusted_set_sender» может
разрешить её использование недоверенным пользователям.

Информация по очередям(Queue)

Вывести информацию по колличеству писем в очереди

Вывод только Message-ID, как результат одного из двух поисковых запросов выше

Вывод только Message-ID очереди

Опция -q имеет флаги. Её использование таково exim -q<qflags><time>

Значение time идет после всех флагов. Он определяет промежуток времени,
через который будет повторяться заданная обработка очереди. Например:

А так можно запустить демона, который будет обслуживать входящие
соединения и обрабатывать очередь каждые 30 минут (собственно штатные
средства ОС, его примерно так и запускают).

Начать процесс выполнения очереди

Принудительный запуск другой очереди

Начать процесс выполнения только для локальных получателей

Генерировать из лог файла и показать статистику Exim:

То-же что и выше но с более подробными данными:

Аналогично но за определенный день:

В качестве дополнения

Exim предоставляет возможность использовать, листы контроля доступа (ACL) на различных этапах SMTP передачи. Условия ACL назначаются в конфигурационном файле exim.conf. В приведенном примере для блокировки используются два текстовых файла. В файл /etc/exim_reject_hosts, значения добавляются в виде: имя_хоста/IP_адрес, в файл /etc/exim_reject_senders в виде адреса отправителя, по одной записи в строке. regex = ^Subject:: .*Lower your self-esteem by becoming a sysadmin server_condition = «$»exiqgrep — Выборка из очереди.

Без опций будет идентично exim -bp
Самая главная опция это -h, которая выводит список всех опций.

что выводит нам ID замороженных баунсов.

с — удалить все баунсы (не надо так делать!)
cf — удалить все frozen баунсы

Логи можно подавать на стандартный ввод или через пробел после всех
опций. Логи могут быть в архиве (вообще говоря, все это дело
определяется опциями сборки ZCAT_COMMAND и COMPRESS_SUFFIX в файле
Local/Makefile).

Использование

eximstats [Output] [Options] mainlog1 mainlog2
По умолчанию скрипт выведет статистику в STDOUT в формате txt. Например
можно сделать так

eximstats mainlog1 mainlog2 . > report.txt
но лучше так

eximstats -txt=report.txt mainlog1 mainlog2
Вместо txt можно указать html или xls, чтобы вывод был в
соответствующем формате.

Уже готовые отчеты можно объединить в один.

eximstats -merge -html [Options] report.1.html . > weekly_rep.html
У программы масса опций, посмотреть их можно так

eximstats -help
или так

perldoc eximstats
Если отчеты в html, то можно даже png-графики выводить.
Описывать, что получается в отчете, смысла, думаю, нет. Стоит просто
попробовать и посмотреть. Статистика очень мощная, если есть проблемы,
они винды сразу.

Ссылки
Заметка написана на основе официальной документации к Exim. В процессе
написания использовались некоторые формулировки из перевода документации
[urlspan]отсюда.[/urlspan]

Коллеги, кто использует на своих почтовых серверах Exim версий 4.87. 4.91 — срочно обновляйтесь до версии 4.92, предварительно остановив сам Exim во избежание взлома через CVE-2019-10149.

Потенциально уязвимы несколько миллионов серверов по всему миру, уязвимость оценивается как критическая (CVSS 3.0 base score = 9.8/10). Злоумышленники могут запускать на Вашем сервере произвольные команды, во многих случаях от рута.

Пожалуйста, убедитесь что Вы используете исправленную версию (4.92) либо уже пропатченную.
Либо пропатчите существующую, см. ветку комментария immaculate.

Обновление для centos 6: см. комментарий Theodor — для centos 7 оно тоже работает, если из epel напрямую еще не прилетело.

UPD: Убунту затронуты 18.04 и 18.10, обновление для них выпущено. Версии 16.04 и 19.04 не затронуты, если только кастомные варианты на них не ставили. Подробнее на их официальном сайте.

Сейчас описанная там проблема активно эксплуатируется (ботом, надо полагать), заметил у себя на некоторых серверах (бегавших на 4.91) заражение.

Далее читать актуально только для тех, кто уже «попал» — надо или перевозить всё на чистую VPS со свежим софтом, или искать решение. Попробуем? Пишите, если кто-то сможет побороть малварь эту.

Если Вы, являясь пользователем Exim и читая это, всё ещё не обновились (не убедились в наличии 4.92 или пропатченной версии), пожалуйста остановитесь и бегите обновляться.

Для уже попавших — продолжим…

Зловредов может быть великое множество. Запустив лекарство не от того и почистив очередь пользователь и не вылечится и возможно не узнает от чего ему лечиться нужно.

Заражение заметно так: [kthrotlds] грузит процессор; на слабой VDS на 100%, на серваках слабее но заметно.

После заражения зловред удаляет записи в крон, прописывая там только себя в запуском каждые 4 минуты, при этом файл кронтаба делает immutable. Crontab -e не может сохранить изменения, выдаёт ошибку.

Immutable можно снять например так, после чего удалить строку команды (1.5кб):

Далее там в редакторе crontab (vim) удаляем строку и сохраняем: dd
:wq

Однако какой-то из активных процессов перезаписывает снова, разбираюсь.

При этом висит куча активных wget'ов (либо curl'ов) на адреса из скрипта инсталлятора (см. ниже), я их пока сбиваю так, но они снова запускаются:

Скрипт инсталлятора трояна нашел тут (centos): /usr/local/bin/nptd… не выкладываю во избежание, но если кто заражен и разбирается в shell скриптах, пожалуйста изучите внимательнее.

Дополню по мере обновления информации.

UPD 1: Снос файлов (с предварительным chattr -i) /etc/cron.d/root, /etc/crontab, rm -Rf /var/spool/cron/root не помог, равно как и остановка службы — пришлось кронтаб пока полностью выдрать (bin-файл переименовать).

UPD 2: Инсталлятор трояна иногда валялся также в других местах, помог поиск по размеру:
find / -size 19825c

UPD 3: Внимание! Помимо отключения selinux троян также добавляет свой SSH-ключ в $/authorized_keys! И активирует следующие поля в /etc/ssh/sshd_config, если они ещё не были прописаны как YES:
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
echo UsePAM yes
PasswordAuthentication yes

UPD 4: Резюмируя на данный момент: отключаем exim, cron (с корнями), срочно убираем троянов ключ из ssh и правим конфиг sshd, перезапускаем sshd! И то пока не точно что это поможет, но без этого вообще беда.

Важную информацию из комментариев про патчи/апдейты вынес в начало заметки, чтобы читающие с неё начинали.

UPD 5: AnotherDenni пишет что малварь поменяла пароли в WordPress.

UPD 6: Paulmann подготовил временное лекарство, тестируем! После перезагрузки или отключения лекарства вроде как слетает, но пока хоть так.

Кто сделает (или найдёт) стабильное решение, пожалуйста пишите, многим поможете.

Очистить всю очередь exim можно так:
exipick -i | xargs exim -Mrm
Проверка количества записей в очереди:
exim -bpc

UPD 8: Снова спасибо за информацию AnotherDenni: FirstVDS предложили свою версию скрипта для лечения, давайте тестировать!

UPD 9: Похоже что работает, спасибо Кириллу за скрипт!

Главное не забудьте что сервер уже был скомпрометирован и злоумышленники могли успеть ещё каких-то нетиповых гадостей (не прописанных в дроппере) подсадить.

Поэтому лучше переехать на начисто установленный сервер (vds), или хотя бы продолжить отслеживать тему — если что-то будет новое, пишите в комменты здесь, т.к. явно не все будут переезжать на свежую установку…

UPD 10: Ещё раз спасибо clsv: он напоминает что заражаются не только серверы, но например и Raspberry Pi, и виртуалки всякие… Так что после спасения серверов не забудьте спасти свои видеоприставки, роботов и тд.

UPD 11: От автора целебного скрипта важное примечание для «лечащих вручную»:
(после применения того или иного метода борьбы с этим зловредом)

перезагружаться обязательно надо — малварь сидит где-то в открытых процессах и, соответственно, в памяти, и записывает себя по новой в крон каждые секунд 30

UPD 12: supersmile2009 нашел у себя в очереди exim другой(?) зловред и советует сначала изучить конкретно свою проблему, до начала лечения.

UPD 13: lorc советует скорее переезжать на чистую систему, и файлы переносить крайне осторожно, т.к. малварь уже в публичном доступе и её использовать могут другими, менее очевидными и более опасными способами.

Даже если работает не из под рута происходит взлом… У меня на OrangePi стоит debian jessie UPD: stretch, exim запущен от Debian-exim и все равно случился взлом, потерло крон и прочее.

UPD 15: при переезде на чистый сервер со скомпрометированного не забывайте про гигиену, полезное напоминание от w0den:
При переносе данных обратите внимание не только на исполняемые или конфигурационные файлы, но и всё что может содержать вредоносные команды (например, в MySQL это может быть CREATE TRIGGER или CREATE EVENT). Также, не забывайте о .html, .js, .php, .py и других публичных файлах (в идеале эти файлы, как и другие данные, должны быть восстановлены из локального или другого доверенного хранилища).

UPD 16: daykkin и savage_me столкнулись с другой проблемой: в системе в портах стояла одна версия exim, а на деле выполнялась другая.

Так что всем после обновления стоит убедиться что используете именно новую версию!
Конкретно с их ситуацией мы сообща разобрались.

На сервере использовался DirectAdmin и стоял его старый пакет da_exim (старой версии, без уязвимости).

При этом с помощью DirectAdmin'овского менеджера пакетов custombuild по факту потом была установлена более новая версия exim, уже уязвимая.

Конкретно в этой ситуации помогло также обновление через custombuild.

Не забывайте делать бэкапы до таких экспериментов, а также убедитесь что до/после обновления все процессы exim старой версии были остановлены и не «застряли» в памяти.

В сентябре 2019 была найдена новая уязвимость в Exim (уже было несколько в 2019 году, вот еще одну нашли).

Короче коротенькая инструкция, как обновить его (обновляется из стандартного репозитория, хотя на некоторых сайтах написано, мол, нет ещё. Значит, уже есть).

По очереди вводим команды:

Проверим установлен ли Exim у нас. Если пишет что ничего не найдено либо ничего не пишет, просто перескакивает на следующую строчку, значит его нет и не заморачиваемся, если в куче строк пишет версию, значит смотрим. Должна быть не ниже 4.92.2, если ниже, ставим обновление, то есть продолжаем.

Также версию можно проверить командой

Теперь собственно обновление из репозитория:

и перезапуск службы по окончании:

Также хочу Вам представить ДЕЙСТВИТЕЛЬНО дешевый, но при этом качественный магазин электроники, в котором я сам неоднократно покупал компьютерные комплектующие (на 20.01.16 есть ноутбуки за 13 000 руб. что ОЧЕНЬ дешево в современных взаимоотношениях курсов Рубля к Доллару).

Довольно обидно, когда делаешь добрые дела, помогаешь кому-то и за это еще и каждый месяц несешь убытки. Если статья Вам понравилась, помогла или просто сэкономила время и средства, Вы можете помочь автору хотя бы в оплате хостинга. Ведь для Вас это может быть всего 5 или 10 рублей (не деньги), но если хотя бы часть читателей будет сознательна, блог будет самоокупаться. Я на этом не заработаю, но хотя бы хостинг смогу оплатить. Очень не хочется завешивать свой труд настырной навязчивой рекламой (это как "нагадить" в собственной квартире), поэтому прошу помощи у Вас.

QIWI-кошелек: 910-083-81-10 (инструкция на сайте Qiwi, подходит любой терминал).
WebMoney-кошелек: R400441386741 (в меню выбрать "Перевести" и указать кошелёк)
Яндекс.Кошелёк: 410012164738327
Так же, можно просто положить деньги на номер телефона 8 (910) 083-81-10 (с него я могу перевести деньги на хостинг). Но звонить на него можете не пытаться, он отключен.
Огромное спасибо за понимание и помощь!


Не забывайте, что в колонке "Топ комментаторов" справа самые активные комментаторы получают не менее активную Dofollow-ссылку с каждой страницы моего блога на ваш сайт! А, как известно, ссылки лишними не бывают! Пока на блоге комментариев немного - шанс стать активным комментатором велик!

Управление Exim-ом.

Чтобы остановить, выполните:

Или еще можно выполнить по другому:

Выясняем чем же занят в данный момент Exim (его MTA).

Чтобы проверить маршрутизацию почты по заданному емейлу.

Генерируем и выводим статистику Exim из лог файла.

Можно проверить SMTP соединение из прямо из командной строки для конкретного IP-адреса.

Данная проверка будет показывать как проходит письмо с IP-шника, через какие ACL и так же фильтры:

Вывести все настройки Exim

Узнать сколько писем в очереди.

Вывод только Message-ID (или как в примере выше).

Показать только Message-ID очереди

Запустим процесс на выполнения в самой очереди

Запустим процесс выполнения самой очереди для локальных получателей

А просмотреть ID:

Принудительно запустить другую очередь на выполнение

Получить количество писем в очереди

Показать сколько замороженных писем в очереди

Допустим, 5 дней будет 432 000 секунд:

Скрипты.

1. Чтобы получить отсортированный список электронной почты отправителя в Exim c почтовой очереди. Он покажет количество писем которые в очереди.

Вы получите результат, как как следует:

Вы получите результат первых двух сценариев. Третий сценарий просто к дополнению от первых двух скриптов:

3. Иногда нужно выяснить кто же рассылает спам или скрипт. Следующий сценарий поможет вам найти точное названия скрипта, который отправляет спам-письма:

4. Следующая команда, которая покажет вам сценарий, который используете скрипт для отправки электронной почты. Если это отсылается от РНР, то его можно найти:

5. Это покажет 50 доменов, которые используют почтовый сервер:

6. Это покажет из какой пользовательской папки идет спам, так что вы можете легко отследить и заблокировать его.

7. Это покажет IP-адреса, которые связан с сервером через порт 25.

9. Выше команда действует, только если спам в настоящее время в стадии отправки. Если спам выполнился, используйте следующую команду.

Читайте также: