Настройка exim centos 8

Обновлено: 02.07.2024

Устанавливаем антивирус clamAV
yum -y install clamav clamd
обновляем базы
freshclam -v
прописываем в запуск
chkconfig clamd --level 35 on
делаем бекап конифга
mv -v /etc/clamd.conf /etc/clamd.conf.bak
и настраиваем антивирус

существует большое количество статей на тему настройки clamAV и Spamassassin, поэтому на их настройках особо останавливаться не будем.


Переходим к установке exim
yum install exim exim-mysql.x86_64 -y
и устанавливаем все необходимые пакеты для его дальнейшей пересборки- сборки
yum install pcre-devel.i686 pcre-devel.x86_64 libXt-devel.x86_64 libXt-devel.i686 libXaw-devel.i686 libXaw-devel.x86_64 firebird-devel.i686 firebird-devel.x86_64 mysql-devel.i686 mysql-devel.x86_64 pcre.x86_64 pcre.i686 pcre-static.x86_64 sqlite-devel.i686 sqlite-devel.x86_64 -y
Добавляем пользователей в групп exim
usermod -a -G exim apache
usermod -a -G exim clam

теперь создаем дерево каталогов в которое будет установлен exim
mkdir -v /opt/exim/tmp
mkdir -v /opt/exim/var/
mkdir -v /opt/exim/var/spool/
mkdir -v /opt/exim/var/spool/exim
даем права
chown exim:exim -R /opt/exim/

добавляем службу в запуск
cp -v /etc/init.d/exim /etc/init.d/exim.bak
сhmod 600 /etc/init.d/exim.bak

добваляем возможность запуска exim в режиме отладки
debug() stop
echo $"Starting exim in debug mode: "
bash -c "/opt/exim/bin/exim -bd -q15m -d+all > /opt/exim/tmp/debug.log 2>&1 &"
>

добавляем в exim
chkconfig exim --level 35 on

настраиваем конфиг exim

h ide mysql_servers = localhost/contrspam/ MYMEGAUSER / MYMEGAPASS
где MYGAUSER и MYMEGAPASS это логин и пароль к бд contrspam
MYSQL_Q_RDOMAINS = SELECT domain FROM tb_domains WHERE domain='$domain';
MYSQL_Q_WHITELIST = SELECT DISTINCT email FROM tb_emails LEFT JOIN tb_domains ON tb_emails.domain_id = tb_domains.id WHERE type = 'white' AND domain = '$' AND ( email = '$' OR email = '*@$' );
MYSQL_Q_BLACKLIST = SELECT DISTINCT email FROM tb_emails LEFT JOIN tb_domains ON tb_emails.domain_id = tb_domains.id WHERE type = 'black' AND domain = '$' AND ( email = '$' OR email = '*@$' );
MYSQL_Q_DOMAIN = SELECT * FROM tb_domains WHERE domain='$domain';

domainlist local_domains = @
domainlist relay_to_domains = mysql;MYSQL_Q_RDOMAINS
hostlist relay_from_hosts = EXTERNIP :127.0.0.1

я выложил только настройки для exim необходимые для работы с grey листом

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

contrspam (я конечно предполагаю, что читатель уже обладает основными навыками работы с базами данных)
Как только истекает интервал N мин. вновь полученное письмо отправляют на проверку на спам и вирусы.

Если что то не заработало, то внимательно читаем /opt/exim/tmp/debug.log

Все замечательно, но добавлять через консоль или phpMyadmin новые домены и листы доступа для этих доменов очень не удобно.
Для этого за основу был взят движок FreePbx и на его основе был разработан свой, под который были написаны модули для работы с exim.

Распаковываем движок engine-v1.tar.gz в нужную директорию, в нашем случае /var/www/
путь к сайту указывается в системных переменных в базе данных exim в таблице settings
BIN=/var/www/html/bin
WEBROOT=/var/www/html

создаем базу данных с именем exim и в нее разворачиваем БД
mysql -u root -p exim < exim.sql

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>


Fail2Ban защищает ваш VPS, блокируя IP-адреса атакущих, с которых предпринимаются попытки войти на ваш VPS. Fail2Ban сканирует лог-файлы, чтобы определить, какие IP-адреса выполняют атаки методом брутфорса, и блокирует их.


В этой статье я расскажу как установить и настроить Fail2Ban на CentOS 7 и на CentOS 8. У каждой версии CentOS свои нюансы. Fail2Ban защищает ваш VPS, блокируя IP-адреса атакущих, с которых предпринимаются попытки войти на ваш VPS. Fail2Ban сканирует лог-файлы, чтобы определить, какие IP-адреса выполняют атаки методом брутфорса, и блокирует их.

В этой статье я расскажу как установить и настроить Fail2Ban на CentOS 7 и на CentOS 8. У каждой версии CentOS свои нюансы.

CentOS 7


Fail2ban не включен в официальный репозиторий пакетов CentOS. Он включен в дополнительные пакеты для Enterprise Linux (EPEL). Поэтому сначала установите последнюю версию EPEL.Теперь установим Fail2BanИ запустим его

CentOS 8


Fail2ban не включен в официальный репозиторий пакетов CentOS. Он включен в дополнительные пакеты для Enterprise Linux (EPEL). Поэтому сначала установите последнюю версию EPEL.Теперь установим Fail2BanИ запустим его По умолчанию Fail2ban использует /etc/fail2ban/jail.conf, но он может быть перезаписан обновлениями Fail2Ban. Поэтому будем редактировать jail.local. Кроме того, jail.local имеет приоритет над jail.conf. Используйте только те части конфигурации, которые относятся к вашему VPS! Если вы не используете Exim, не добавляйте эту часть. То же самое относится и к части Postfix.

Создадим и отредактируем файл jail.localДобавьте следующий код и настройте значения в соответствии со своими потребностями. Объяснение параметров будет ниже.

Измените данные строк sender, destmail и igroreip на свои и используйте только те программы, которые вы используете на своем VPS (например, Exim или Postfix, но не обе). Вы можете проверить, какую из них вы используете на своем VPS, с помощью команды systemctl status exim / postfix.

Объяснение зачений этих строк

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

Проблема, с которой я столкнулся при настройке jail.local на CentOS 8 заключалась в ошибке

Соответственно сервис Fail2Ban не запускался. Как оказалось, надо установить недостающий компонент.

Сначала установим EPEL репозиторий, если еще не установлен

И поищем вхождения

И находим нужный нам пакет fail2ban-sendmail.noarch : Sendmail actions for Fail2Ban.

Давайте посмотрим описание этого пакета

И видим в описании, что: This package installs Fail2Ban's sendmail actions. This is the default mail actions for Fail2Ban.

Устанавливаем пакет и переходим на следующий шаг "Создадим и отредактируем файл jail.local"

Создадим и отредактируем файл jail.local
Добавьте следующий код и настройте значения в соответствии со своими потребностями. Объяснение параметров будет ниже.

Измените данные строк sender, destmail и igroreip на свои и используйте только те программы, которые вы используете на своем VPS (например, Exim или Postfix, но не обе). Вы можете проверить, какую из них вы используете на своем VPS, с помощью команды systemctl status exim / postfix.

В данной статье мы установим и настроим почтовый сервер с использованием Exim и Dovecot на CentOS 7.5 VPS с использованием веб интерфейса Roundcube.
Для этого мы используем VPS на базе CentOS; с предварительно установленной с минимальной CentOS 7.5

Что такое Exim?

Exim - это агент пересылки почты (MTA), который обычно используется в Unix-подобных операционных системах. Exim - это бесплатное программное обеспечение, которое распространяется в соответствии с условиями GNU (General Public License), является универсальным и гибким почтовым средством с обширными возможностями для проверки входящей электронной почты.

Что такое Dovecot?

Dovecot - это почтовый сервер с открытым исходным кодом IMAP и POP3 для Linux / UNIX-подобных систем. Безопасность стала краеугольным камнем в создании данного продукта нацеленного на гибкость и быстродействие.
Dovecot - это прекрасный выбор как для небольших, так и для крупных почтовых систем.

Что такое Roundcube?

Roundcube — веб-интерфейс для работы с электронной почтой, предоставляет возможность работать с вашими почтовыми ящиками используя IMAP и SMTP. Приложение обладает мощным функционалом и по возможностям сравнимо с настольными почтовыми клиентами, такими как Outlook Express или Mozilla Thunderbird

Подготовка и настройка

Подключим дополнительный репозиторий EPEL.
Для чего выполним:

Exim установка и настройка

Теперь мы откроем файл /etc/exim/exim.conf, используя ваш любимый редактор,предварительно создав его резервную копию и приведем его к следующему виду:

Обратим внимание на строки tls_certificate и tls_privatekey, мы будем использовать сертификат SSL, Вы можете заказать его на нашем сайте и найти необходимые файлы в Личном кабинете.

Далее перейдем к разделу транспорт и приведем к виду:

local_delivery:
driver = appendfile
directory = $home/Maildir
maildir_format
maildir_use_size_file
delivery_date_add
envelope_to_add
return_path_add

Далее в разделе аутентификации добавим несколько строк:

dovecot_login:
driver = dovecot
public_name = LOGIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1
dovecot_plain:
driver = dovecot
public_name = PLAIN
server_socket = /var/run/dovecot/auth-client
server_set_id = $auth1

Запустим exim, и добавим его в автозагрузку системы используя systemctl:

Настройка Dovecot

Запустим dovecot, и добавим его в автозагрузку системы используя systemctl.

Roudcube

Alias /roundcube /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail


Options none
AllowOverride Limit
Require all granted


Options none
AllowOverride Limit
Require all granted

Установка выполняется на:

Создаём базу для доменов и почтовых ящиков:

Создаём пользователя и даём доступ к этой базе:

Устанавливаем всё необходимое для Postfixadmin:

Установка Posfixadmin

В файле config.inc.php настраиваем доступ к созданной базе:

Установка ClamAV

Требуется репозиторий Epel или RPMForge:

Установка Exim и Dovecot

Наcтройка Dovecot

Получаем UID пользователя exim (от него у нас будут работать и ClamAV, и Dovecot и сам Exim):

Запускаем и проверяем:

Запустился, пока без ошибок.

Настройка Exim

Создаём новый /etc/exim/exim.conf :

Проверяем синтаксис конфига:

Ошибка будет выглядеть так (оставим незакрытую скобку < для примера):

Устанавливаем права доступа:

Отключаем и удаляем Postfix:

Добавляем в автозагрузку Exim:

Настройка Postfixadmin

Создаём файлы логов:

Создаём директорию для php -обработчика:

Обязательно проверяем права:

Создаём конфиг для NGINX:

CentOS: установка и настройка Dovecot 2 + Exim +ClamAV + Postfixadmin

CentOS: установка и настройка Dovecot 2 + Exim +ClamAV + Postfixadmin

CentOS: установка и настройка Dovecot 2 + Exim +ClamAV + Postfixadmin

Добавляем новый домен:

CentOS: установка и настройка Dovecot 2 + Exim + ClamAV + Postfixadmin

CentOS: установка и настройка Dovecot 2 + Exim + ClamAV + Postfixadmin

CentOS: установка и настройка Dovecot 2 + Exim + ClamAV + Postfixadmin

CentOS: установка и настройка Dovecot 2 + Exim + ClamAV + Postfixadmin

Проверяем лог /var/log/exim/main.log :

Письмо есть, всё работает.

Настраиваем IPTABLES:

Подключаемся внешним почтовым клиентом, проверяем лог /var/log/maillog :

Заодно, можно увидеть работу dnsblacklist :

Проверим с помощью telnet , для большей наглядности:

На сервере проверяем:

Позже надо будет добавить Greylisting, Spamassassin и поддержку шифрования по TLS.

Exim debugging

Несколько команд для проверки работы Exim.

Проверить отправку можно так:

Проверить работу антивируса:

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

Посмотреть саму очередь:

Узнать, чем занят Exim в настоящий момент:

Проверить маршрут отправки письма:

Сымитировать SMTP-активность с заданного адреса, с отображением задействованных фильтров и т.п.:

Вывести все опции Exim из файлов конфигурации (активные/неактивные):

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