Как обновить exim debian

Обновлено: 07.07.2024

The README.Debian.gz file included in the exim4 packages details Debian style configuration exhaustively.

Generally, the Debian Exim 4 packages are configured through debconf. The install prompts for questions during package installation, and your initial Exim configuration is created from your answers. You can repeat the configuration process at any time by invoking:

Despite the default configuration being extended somewhat from the original upstream, chances are that you'll need to manually change the Exim configuration with an editor if you intend to do something that is not covered by the debconf-driven configuration. It has never been the packages' intention to offer all possible configuration methods through debconf.

There are three ways you can configure exim4. The first is a single monolithic file, the second is split file, and the third is your own file.

The configuration file is generated from these config files using the command (yes it has .conf in the name)

After which you should restart exim4 with something like

Single Exim4 configuration file

If you select this option in debconf, configuration will be generated from the /etc/exim4/exim4.conf.template file.

The default file is rich with features which can be enabled and controlled merely by setting the values of various macros.

Incidentally, the /etc/exim4/exim4.conf.localmacros file will be read in first, which makes it the ideal place to put any macros you may want to set. Using this file you can control various features (DKIM for example) and still gain the benefits of not touching the debian provided files, so hopefully having more seamless upgrades.

Split file

In this scenarios the configuration is split across lots of smaller files stored in /etc/exim4/conf.d/ which are then assembled in to one file for you by the update-exim4.conf command. Each section of the configuration file has its own subdirectory and the files therein are concatenated in alphabetical order. As such its probably a good idea that your custom files be named something like 00_exim4-my-config so they are included first.

This mode of operation allows for your own sections of configuration to be inserted at any location in the final config file, without touching any of the package provided files. The idea being that upgrades become very reliable.

Your own file

Simply install your own file in /etc/exim/exim4.conf and exim will use that file verbatim.

To have something to start with, you can either take /etc/exim4/exim4.conf.template, run update-exim4.conf --keepcomments --output /etc/exim4/exim4.conf, or use upstream's default configuration file that is installed as /usr/share/doc/exim4-base/examples/example.conf.gz.

You are going to lose all magic you get from packaging though, so you need to be familiar with Exim to build an actually working config.

Note that /etc/exim4/exim4.conf is read directly by exim4 every time exim forks. So if you edit it in place, each smtp connection will actually read a different configuration file!

Location of the auto-generated config

For reference, the file generated by update-exim4.conf is /var/lib/exim4/config.autogenerated

Avoid editing this file in place!

Example stand-alone example

This configuration has been tested on a server and ought to be suitable for internal use:

This writes the configuration to /etc/exim4/update-exim4.conf.conf.

TLS and authentication

Generating a local certificate

Generate a certificate using:

It will generate exim.crt and exim.key in /etc/exim4/

Instead of generating a certificate, you may simply copy certificates that you have purchased or generated previously.

Edit /etc/exim4/exim4.conf.localmacros and add the following line:

This, of course, may be already enabled in the main configuration template "exim4.conf.template"

As with any change to the configuration, run update-exim4.conf then restart exim (service exim4 restart) or, if you're using systemd; systemclt restart exim4.service.

Dual stack RSA/ECDSA configuration

If you wish to support both ECDSA and RSA algorithms, you can provide more than one certificate:

Exim will select a certificate to present to the client based on the selected cipher. The priority order for ciphers will affect which certificate is used.

Communicating with a smarthost

If, like most home users, you are not actually running an Internet server but instead are using e-mail accounts from an ISP or other company (e.g. gmail, hotmail, yahoo mail, etc.), you will need to communicate with their smtp server to send mail.

Every company seems to configure their server differently and puts different restrictions on how you can send mail. This makes configuring Exim4 difficult to describe as a general case. Adding tls makes things even more complicated. However you should always use tls (if available) so that your login is sent encrypted.

SPF filtering

This is provided via the macro CHECK_RCPT_SPF, set it to true.

Exim uses a helper tool, which you will need to install.

You should then run update-exim4.conf and restart exim.

DNS Blacklists

You can configure exim to use DNS Blacklists with the macro CHECK_RCPT_IP_DNSBLS :

The default behaviour is not to block the hosts found in the lists, but just add a warning header. In order to truly blacklist the spammers, just change 'warn' by 'deny' in the following block:

Then restart exim.

Email sub-addressing (plus-signs as in Gmail)

These can easily be achieved by adding something similar to the following in one of more of your router definitions

Similarly, you could use a prefix instead with these similarly named options

In either case, you could then use sieve filtering, config tricks or your email client to apply delivery rules.

Install diagnostic tools

Test the connection:

Note that above we are sending an empty password while testing with the swaks tool.

Some ISPs may block connecting to port 25, and also some broken clients insist TLS on Port 465.

To support these, change /etc/default/exim4 as:

Also edit /etc/exim4/exim4.conf.template:

User authentication

Adding user authentication is possible using tools like Dovecot or sasl2-bin. For shell users who would like to use SASL and PAM for password authentication, that can setup this way:

Edit /etc/default/saslauthd to enable saslauth:

Start the deamon:

In /etc/exim4/exim4.conf.template, uncomment the following lines to enable authentication via saslauthd:

Add exim to the sasl group:

Test the connection using your username:

Enable IMAP access by installing Courier-Imap or a similar MTA.

Spam scanning

There are several ways to detect spam.

Exim has default configuration for spamassassin (exim4-daemon-heavy required).

If you are using Debian Jessie or later (with systemd enabled by default), enable and start the service using systemctl;

On earlier Debian releases, edit /etc/default/spamassassin .

. and then start the daemon.

On all systems, edit /etc/exim4/exim4.conf.template as required for your system.

First, if necessary, set the spamd_address:

Next, edit the acl_check_data section to add suitable spam headers:

Note that the above configuration also adds an X-Spam-Report header in outgoing emails, thereby violating RFC2822. Some mail servers, in particular the Debian mailing-list server, simply drop such non-conformant emails. See also Debian bug 774553.

For more information about configuring spam filters, see the exim documentation.

Exim access control lists (ACLs)

Exim provides flexible way to set access control list. For detailed information, see the ACL documentation on the exim wiki.

Smarthost with Authentication

Start by reconfiguring exim4:

Select mail sent by smarthost, no local mail (unless you are configuring local mail, which most folks at home do not need).

Then edit the file:

And add the line:

Substituting the correct email account login name for login and corresponding password. Comments in the passwd.client file will provide additional information about configuration options.

Most ISPs offer multiple email accounts so it may make sense security wise to create an account just for utility use such as this. If your Linux host is ever compromised you will be glad you had a separate utility email account.

DMARC Support

Note Trisquel 8 backports repository, exim4-daemon-heavy has DMARC support builtin, and is based on the version from ubuntu 18.04.

Exim will also have new dependencies, libopendmarc2 and libspf2-2. And their dev version for building.

Уязвимость с RCE в Exim уже довольно сильно нашумела, и довольно сильно потрепала нервы системным администраторам по всему миру.

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

Работает на серверах с ОС Centos, RHEL, Debian, Ubuntu при наличии установленного почтового сервера Exim.

Как понять, что сервер взломан?

Проверьте запущенные процессы командой top.
На заражённых серверах наблюдается 100%-я нагрузка, создаваемая процессом [kthrotlds]. Также в планировщике cron добавляется задание с ограничением прав на редактирование.

Секция предупреждений

Все встреченные нами инциденты заражения были абсолютно однотипными, вторая и третья волна могут от них отличаться — для них возможно придется модифицировать скрипт. На момент заражения задания в cron утрачиваются безвозвратно и возвращать их надо руками. Скрипт «рубит с плеча» — безбоязненно обновляет Exim до патченных версий, в случае с Centos 6 даже из тестового репозитория. Инстанс зловреда сидит в памяти, поэтому сервер обязательно нужно перезагружать сразу после чистки кронов.

Важно: уязвимость позволяет исполнять код из под root'а, что не дает никаких гарантий стопроцентного исцеления. Имея рутовый доступ к серверу, можно запрятать на этот сервер почти что угодно, так, что найти его будет почти не возможно. Гарантированно полностью вылечить сервер можно только полной переустановкой, однако она далеко не всегда возможна. Если возможности переустановить сервер нет, а симптомы совпадают с описанными — можно попробовать быстро заделать дыры этим скриптом.

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

Что делает скрипт?

1. Обновляет Exim, переустанавливает curl.
2. Проверяет наличие заражения на сервере.

Скрипт анализирует задания планировщика на наличие подозрительных включений.

2а. Если в папке /etc есть следы вирусного скрипта, делает следующее

  • останавливает cron
  • убивает процесс, запущенный вирусным скриптом
  • четыре раза убивает процессы curl wget sh (запускаются вирусом по расписанию)
  • чистит почтовую очередь от всех писем (заражённые письма трудно отделить от безвредных, поэтому приходится удалять всю очередь)
  • разрешает удаление файлов, где размещены фрагменты вредоносного скрипта:
  • удаляет эти файлы
  • удаляет задание автозапуска в /etc/rc.local
  • удаляет ключ злоумышленника из разрешенных ключей ssh
  • запускает cron
  • и сразу перезагружает сервер

Уточнения

Все задания планировщика cron вирус удаляет. Поэтому после перезагрузки сервера требуется их повторная настройка или восстановление из резервной копии.

curl также заражается вирусом, поэтому он переустанавливается.

Перезагрузка (скрипт выполняет её автоматически после лечения) обязательна — иначе вредонос сохраняется в памяти сервера и самовоспроизводится каждые 30 секунд даже после удаления заражённых файлов.

Как пользоваться?

Традиционно: перед запуском убедитесь, что у вас на руках есть актуальная резервная копия данных сервера.

Для запуска скрипта:

Подключитесь к серверу по ssh под пользователем с правами root. Также можно использовать Shell-клиент в панели ISPmanager — Инструменты.

В терминале введите команду:


Ожидайте завершения выполнения скрипта и перезагрузки сервера.

После перезагрузки проверьте работу сервера и сайтов/приложений, размещённых на нём, перенастройте или восстановите из бэкапа задачи в cron.

Ну и напоследок

По сути, скрипт является временным решением для восстановления работоспособности сервера, для гарантированной профилактики лучшим решением является переход на новый сервер с той версией операционной системы, которая уже не содержит уязвимости.

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

UPD1: Добавил на github.
Залил туда же исходник скрипта малвари, который удалось вытащить с зараженного сервера.
UPD2: для Centos 6 пришел релиз 4.92 в EPEL, теперь во всех версиях скрипта ставится из основных репозиториев. Изначально скрипт качал 4.92 для Centos 6 из EPEL/testing.

Устанавливайте репозитории в Debian легко и быстро. В статье мы расскажем, что такое репозитории, какие они бывают, а также, как происходит настройка репозиториев в Debian.

Что такое репозитории в Linux

Все программы в Linux распространяются в виде пакетов ― набора программ, упакованных в специальный формат. Пакеты можно скачать из репозиториев. Репозитории ― это хранилища в Интернете, в которых находятся файлы пакетов приложений Linux. Практически у каждого дистрибутива Linux есть свой репозиторий, который содержит проверенные и стабильные версии программ.

Пакеты можно установить на Linux одним из двух способов: через инструменты с графическим интерфейсом (менеджеры файлов) или через командную строку (терминал). Подключение репозиториев в Debian происходит через терминал. С его помощью вы вводите команду — обращаетесь к репозиторию, и программа устанавливается.

Для работы с программным обеспечением на Debian надо знать псевдонимы версий Debian, официальные репозитории, а также виды веток программных пакетов. Сначала рассмотрим основные репозитории и разделы в Debian.

Типы официальных репозиториев в Debian

Существует официальный список репозиториев Дебиан. Расскажем про каждый из них подробнее.

Виды репозиториев

Stable

В этом репозитории находятся самые актуальные и стабильные версии программ, именно их рекомендуется использовать. Программы, которые оказались в этом репозитории, прошли много проверок и доработок, чтобы стать надежным ПО. Часто в этом репозитории публикуют не самые свежие версии, зато самые надежные. Он формируется из ветки Testing после тщательной доработки.

Testing

В репозитории Testing находятся разработанные программы, которые ещё не прошли много тестов, чтобы перейти в ветку Stable. Пакеты в Testing попадают из репозитория Unstable. Использовать программы из репозитория Testing следует, только чтобы ознакомиться с возможностями нового релиза программы, так как они могут иметь ошибки при использовании.

Unstable (sid)

Sid ― это репозиторий с самым свежим программным обеспечением. Если в репозитории Testing ошибок может совсем не быть, так как до этого программа уже прошла большой путь проверок, то здесь ПО только начало свой путь. Использовать программы из этого репозитория не рекомендуется. Также Unstable может нарушить зависимости пакетов, так что потом вернуться на Stable будет трудно.

Oldstable

Oldstable — кодовое имя предыдущего Stable репозитория. При публикации новой версии Stable, предыдущая переходит в ветку Oldstable. Для этого репозитория ещё продолжают выпускаться обновления безопасности.

Experimental

Experimental репозиторий содержит пакеты и утилиты, которые только разрабатываются и находятся в состоянии начальной версии. Он предназначен для разработчиков и тестировщиков.

Backports

Backports ― компромисс между Stable-веткой и набором программ Testing. Он содержит преимущественно пакеты из Testing и немного из Unstable. Пакеты из Backports, где это возможно, устанавливаются без новых библиотек. Это сделано для того, чтобы при необходимости можно было вернуться на Stable. Если вам нужно ПО из веток Testing и Unstable, то лучше использовать этот репозиторий.

В Debian каждый репозиторий состоит из нескольких веток (разделов):

  • main ― эта ветка включается в каждый дистрибутив. Она подчиняется принципам свободного программного обеспечения. Ветка не зависит от других пакетов, которые не входят в раздел «main»;
  • contrib ― эта ветка подчиняется принципам свободного программного обеспечения и зависит только от пакетов, которые не входят в раздел «main». Может понадобиться прошивка ROM или ПО, которое имеет собственника, например Java от Oracle;
  • non-free ― содержит пакеты, которые противоречат принципам свободного программного обеспечения или имеют патенты и другие юридические ограничения.

Пакеты в каждой из веток (main, contrib и non-free) полностью готовы к работе с дистрибутивом Debian. Также для добавления репозитория вам понадобятся названия псевдонимов версий Debian.

Псевдонимы версий Debian

Все версии (релизы) Debian имеют псевдонимы. Каждая версия названа в честь одного из героев мультфильма «История игрушек»:

  • Debian 7 ― Wheezy,
  • Debian 8 ― Jessie,
  • Debian 9 ― Stretch,
  • Debian 10 ― Buster,
  • Debian 11 ― Bullseye.

Знание релизов понадобится при добавлении репозитория.

Как добавить официальный репозиторий в Debian

Операционная система хранит адреса всех репозиториев в специальном файле sources.list, который расположен в каталоге /etc/apt. Чтобы подключить репозиторий, нужно добавить в sources.list адрес web-сервера репозитория.

Как подключить репозиторий Debian:

Откройте терминал сочетанием клавиш Ctrl+Alt+T.

Отредактируйте файл /etc/apt/sources.list. Введите в терминал:

Подключение репозитория Debian.jpg

В конец файла вставьте команду с адресом репозитория:

Схема кода

  • deb ― указывает на то, что это пакет Debian;
  • ссылка на репозиторий пакетов Debian (выглядит, как обычный URL-адрес сайта). На сайте Debian есть ссылки на зеркала, а также список сгруппированных пакетов, по категориям Stable, Testing, Unstable;
  • название версии Debian ― кодовое имя дистрибутива, псевдоним (например, Buster ― Debian 10, Stretch ― Debian 9, Jessie ― Debian 8, и т.д);
  • main ― компонент, который указывает на полностью свободное программное обеспечение. Также можно указать компоненты contrib и non-free.

Чтобы скачать программу MariaDB для Debian 10, надо ввести:

СРОЧНО, критическая уязвимость exim до 4.91 включительно

Вопросы по работе Почтовый сервера
Dovecot, Exim, RoundCube
achyorny Posts: 54 Joined: Tue May 07, 2013 7:30 pm
СРОЧНО, критическая уязвимость exim до 4.91 включительно

Post by achyorny » Mon Jun 10, 2019 12:18 pm

через exim злоумышленник выполняет команды root.

сейчас на centos 6
exim не хочет обновляться до 4.92 по команде

как мне его обновить?

стоит centos 6
последняя веста
уже был взлом через эту уязвимость

avtor Posts: 7 Joined: Fri May 12, 2017 5:42 pm

Post by avtor » Mon Jun 10, 2019 4:50 pm

Может быть можно как-то перейти на другую MTA безболезненно? Postfix?
Кто знает? maxsx Posts: 12 Joined: Sun May 20, 2018 8:36 am
Os: Debian 8x Web: nginx + php-fpm

Post by maxsx » Mon Jun 10, 2019 5:12 pm

аналогично хотелось бы узнать, как правильно обновиться
PS от exim зависит куча пакетов, менеджер предлагает их удалить - как поступать в этом случае?
И на дебиан 8 не обновляется, пишет что последний пакет установлен Last edited by maxsx on Mon Jun 10, 2019 6:30 pm, edited 1 time in total. grayfolk Support team Posts: 1111 Joined: Tue Jul 30, 2013 10:18 pm Contact:
Os: CentOS 7x Web: nginx + php-fpm

Post by grayfolk » Mon Jun 10, 2019 5:59 pm

как мне его обновить?

стоит centos 6
последняя веста
уже был взлом через эту уязвимость

Timmy Posts: 13 Joined: Thu Feb 08, 2018 2:20 pm
Os: Ubuntu 18x Web: apache + nginx

Post by Timmy » Mon Jun 10, 2019 6:50 pm

подскажите пожалуйста как обновиться на debian 8?
сначала делаю

после этого получаю ошибку

Debian 8 64bit
Vesta 0.9.8 (amd64) 24
Exim 4.84.2-2+deb8u4

duddy2007 Posts: 41 Joined: Thu Feb 23, 2017 8:10 am

Post by duddy2007 » Mon Jun 10, 2019 8:02 pm

Debian 8 64bit
Vesta 0.9.8 (amd64) 24
Exim 4.84.2-2+deb8u4 на сколько мне известно проблема есть только начиная с версии 4.87 у вас же установлена 4.84 спите спокойно ))) у меня у самого 4.86_2 надеюсь тоже прокатит achyorny Posts: 54 Joined: Tue May 07, 2013 7:30 pm

Post by achyorny » Mon Jun 10, 2019 10:42 pm

как мне его обновить?

стоит centos 6
последняя веста
уже был взлом через эту уязвимость

moonback Posts: 31 Joined: Thu Mar 07, 2013 8:38 pm

Post by moonback » Tue Jun 11, 2019 2:17 am

через exim злоумышленник выполняет команды root.

сейчас на centos 6
exim не хочет обновляться до 4.92 по команде

как мне его обновить?

стоит centos 6
последняя веста
уже был взлом через эту уязвимость

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