Удалить sendmail centos 7

Обновлено: 05.07.2024

Задача: настроить отправку электронной почты (e-mail) от пользователей сервера в интернет. Необходимо для мониторинга оборудования, извещения о событиях и т.п. Пример: получать оповещения от smartd в случае обнаружения проблем со SMART диска.

Но для того, чтобы отправленные из своего MTA письма были доставлены до адресата, а не удалены спам-фильтром получателя, необходимо располагать:

Почтовый сервер - программа, которая отправляет e-mail получателю напрямую (на его почтовый сервер) или через посредника (relay).

Здесь будет рассматриваться установка и настройка Postfix для CentOS 7. Эта информация будет полезна и для выбора и установки MTA на другие системы.

Выбор почтового сервера

Из огромного множества рассмотрим 3 самых массовых почтовых сервера: Sendmail, Exim и Postfix.

Согласно cтатистики использования MTA на июнь 2020 г. самым популярным в мире является Exim (466853 - 57%), за ним следует Postfix (289401 - 35%), а вот некогда самый массово используемый Sendmail уже практически не используется (30640 - 4%).

Еще в 2007 году Sendmail был установлен на большинстве серверов, но утрата позиций связана, в первую очередь, с часто возникающими проблемами с безопасностью. Exim - мощный почтовый агент, большинство функционала которого не будет использоваться для поставленной задачи. Postfix - самый безопасный и простой в настройке полноценный MTA, он и был выбран для отправки писем с сервера.

Полезная информация по выбору MTA

Установка и настройка Postfix в CentOS 7

Установка и сохранения настроек по умолчанию в файле main.cf.origin:

Для настройки конфигурации Postfix необходимо отредактировать или добавить следующие параметры в главном конфигурационном файле Postfix /etc/postfix/main.cf:

После первичной настройки запускаем Postfix и прописываем его в автозагрузку:

Чтобы перечитать конфиг Postfix после его редактирования, пригодятся такие команды:

Если в журнале присутствует такая строчка со статусом "status=bounced", значит e-mail отклонен сервером получателя. Причину ищите в этой же строке журнала чуть дальше:

Если же в журнале "status=sent", значит e-mail принят сервером получателя и будет скорее всего доставлен по назначению:

Но даже если письмо принято получателем, оно может быть (точнее скорее всего) будет автоматически перемещено в папку "Спам". Как с этим бороться - читайте ниже.

Дополнительные настройки для работы почтового сервера

Настройка Hostname сервера

Посмотреть, как называется сервер можно такой командой:

Если название отличается от необходимого или не установлено, тогда записать hostname для сервера:

Обратите внимание, что hostname сервера не равно домену сервера! Если полный домен сервера: "server.example.com", то hostname сервера - это "server".

Настройка PTR (Reverse DNS)

В настройках домена прописываются A-записи, которые связывают домен с IP-адресом(ами) сервера. Reverse DNS - это обратное действие, которое связывает IP-адрес с доменом.

Прописать Reverse DNS может только владелец IP-адреса, который назначен серверу - это скорее всего хостинг, где размещен сервер или VPS. Если сервис расположен в квартире/офисе, то по вопросу указания PTR стоит обратиться к интернет-провайдеру.

Не нужно путать владельца IP-адреса и регистратора для доменов - это, обычно, разные компании. Но если вы разместили свой сервер и зарегистрировали домен у одного и того же провайдера, то тогда по вопросу изменения Reverse DNS следует обращаться к одной и той же компании.

Проверить домен, присвоенный PTR, можно утилитой командной строки dig: $ dig -x 5.6.7.8 или используя различные онлайн-сервисы.

Настройка DNS доменного имени почтового сервера

В панели управления регистратора домена example.com поддомен для сервера (server) конфигирируется, обычно, в разделе "Настройка DNS":

В третьей строке указывается SPF-запись для поддомена. SPF используется почтовым сервером-получателем для проверки: разрешено ли владельцем домена отправка писем с IP, с которого пришло в действительности письмо? Параметры SPF "+a +mx -all" указывают, что письма могут отправлять только те IP, которые прописаны в A и MX записях домена, а со всех остальных IP принимать почту запрещено.

Проверка влияния настроек PTR и DNS на отправляемые e-mail

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

Отправляем тестовое письмо на свой e-mail и смотрим журнал:

Если "status" отправки e-mail Postfix равен "sent", значит письмо было получено сервером принимающей стороны. Следует проверить, не попало ли оно в спам, и если нет - значит большая часть работы по настройке Postfix выполнена успешно. Но остается еще один важный момент, требующий настройки: шифрование письма.

Добавить шифрование в Postfix для отправляемых писем - весьма просто, инструкция расположена ниже.

TLS-шифрование отправляемых писем в Postfix

Первым делом необходимо получить сертификат, при помощи которого будут шифроваться все отправляемые из Postfix e-mail. Самый простой и быстрый способ - создать сертификат самостоятельно.

Постфиксный почтовый сервер Centos7 build (Tencent Cloud)

Используйте Tencent Cloud, чтобы сначала открыть порт 25, под именем пользователя на странице консоли . Меня долго обманывали .


После использования почтовой службы, предоставляемой такими поставщиками почтовых серверов, как qq, было обнаружено, что количество отправляемых ими писем ограничено. С учетом бизнес-потребностей компании нам необходимо создать почтовый сервер. Почтовый сервер может нам помочь в некоторых напоминаниях и помощи с новостями.

1. Краткое введение в почтовую систему:

Система электронной почты основана на почтовом протоколе для завершения передачи электронной почты.Общие почтовые протоколы следующие.

Простой протокол передачи почты (SMTP): Используется для отправки и пересылки электронных писем, занимая 25 / TCP-порт сервера.

Почтовый протокол 3 (Post Office Protocol 3): Используется для хранения электронной почты на локальном хосте, занимая порт 110 / TCP сервера.

Самая простая система электронной почты должна иметь возможность предоставлять услуги отправки и получения дляЭто требует использования служебной программы Postfix, основанной на протоколе SMTP, для обеспечения функции отправки, и использования служебной программы Dovecot на основе протокола POP3 для обеспечения функции службы приема.Таким образом, пользователи могут использовать программы обслуживания клиентов, такие как Outlook Express или Foxmail, для обычной отправки и получения почты.

Фактическая операция:

  1. Подготовьте среду, откройте необходимые порты, удалите sedmail, настройте разрешение доменного имени, измените имя хоста
  2. Установить и настроить службу доставки postfix
  3. Установить и настроить службу приема голубей
  4. Протестируйте, проверьте доставку.

2. Подготовьте среду:


Нам нужно открыть нужные нам порты. Порты: 25 (служба SMTP, используется для отправки почты), 110 (служба pop3, используется для получения почты) 143 (служба imap, используется для получения почты).



Если вы хотите использовать только службу pop3, нам нужно только открыть порт 110 и 25, если мы используем ssl,

pop3 необходимо открыть наш порт 465 (отправка) 995 (прием)

imap необходимо открыть наш 465 (отправляющий) 993 (принимающий) порт

2.1 Открытый порт:

2.2 Удалить sendmail

2.3 Конфигурация разрешения доменного имени

Нам нужно добавить запись A и запись mx. Сначала добавьте запись A для разрешения на наш IP-адрес сервера.


2.4 mx запись


Заполните соответствующие символы на моем рисунке, где вам нужно ввести значение.

2.5 Изменить имя хоста

2.6 Изменить MTA (агент передачи почты по умолчанию)

Затем нажмите Enter напрямую.

Проверьте, успешно ли он установлен.

Вы можете увидеть статус mta в первой строке. Например: mat-status задается вручную.

3. POSTFIX

Postfix предоставляет сервис исходящей почты (примечание: измените файл конфигурации для резервного копирования, следующие шаги не включают резервное копирование.)

Важный параметр в основном файле конфигурации служебной программы postfix.

Имя хоста системы почтового отделения.

Доменное имя почтовой системы

Доменное имя почты, отправленной с этого аппарата.

Мониторинг интерфейса сетевой карты

Имя хоста или доменное имя, которое может получать почту

Установите, почту каких хостов можно пересылать

Установите, почту каких доменов можно пересылать

3.1 Установите postfix

В centos7 наш постфикс поставляется с системой, но предыдущая версия centos7 не включена по умолчанию, а предыдущая версия centos7 - sendmail.

Если нет, установите:

3.2 Конфигурация:

vim /etc/postfix/main .cf

Положение соответствующего количества строк, соответствующих вышеуказанному, может различаться в разных версиях. Значение некоторых параметров объясняется ранее в этом разделе.

3.3 Откройте службу postfix и добавьте ее в систему для автоматического запуска.

4. Установите и настройте dovecot

4.1 Установите голубятню

4.2 Настройка dovect

Редактировать файлdovecot.conf

изменить содержание:

Отредактируйте файл 10-auth.conf

Отредактируйте файл 10-mail.conf

Отредактируйте файл 10-master.conf

Примечание: Если мы не используем ssl, нам необходимо выполнить следующие операции. Не требуется, если используется.

Редактировать файл10-ssl.conf

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

5. Проверка отправки и получения почты.

5.1 Создать пользователя

Пользователи почты - это те же пользователи, что и пользователи системы, что означает, что пользователей системы можно рассматривать как пользователей почты.

Создайте пользователя и установите пароль

5.2 Используйте foxmail для входа в систему


В 1 нам нужно выбрать тип сервера, соответствующий открытому ранее порту.

Во 2 нам нужно только ввести имя пользователя, например admin, root

В 4, если мы используем ssl, нам нужно его проверить, если нет, нам не нужно его проверять.

После заполнения соответствующей информации мы можем авторизоваться. Затем мы можем отправлять и получать электронные письма, и мы можем протестировать отправку электронной почты на наш qq.


Если мы проверим журнал и обнаружим, что status = bounced, это означает, что почтовый сервер qq установил IP-адрес нашего сервера как вредоносный и не будет получать почту, отправленную с этого IP-адреса. Это означает, что если мы хотим отправлять почту на почтовый ящик qq, нам нужно изменить IP-адрес сервера.


Если вы хотите настроить SSL для почтового сервера, Тогда вы можете посмотретьКонфигурация SSL почтового сервера Centos7

Меры предосторожности:

Когда наш почтовый сервер устанавливает значение mynetworks, не устанавливайте все в одной строке, потому что многие серверы будут использовать ваш сервер в качестве ретрансляционного почтового сервера, что в конечном итоге приведет к тому, что почта, отправленная вашим почтовым сервером, будет qq, 163, gamil, эти почтовые службы отмечены как спам.

Когда мы однажды проверили наш почтовый журнал (/ var / log / maillog), мы обнаружили, что было отправлено много писем, и если письма были созданы не нами, то у нашего почтового сервера возникла проблема.

В это время на нашем сервере должно быть много писем, и тогда моя собственная почта не будет отправляться.

Что нам нужно сделать: проверить

du -sh /var/spool/postfix/*

Проверьте размер каталога defer и deferred в каталоге, проверьте почту в очереди с помощью postqueue -p и удалите всю почту в очереди с помощью postsuper -d ALL.

Наша задача – перейти с sendmail и почтовых ящиков в формате mailbox на связку postfix+cyrus-imapd, с хранением паролей пользователей в базе MySQL и организацией виртуальных почтовых доменов.
Для удобства доступа и администрирования будем использовать web-cyradm для администрирования почтовых ящиков и squirrelmail в качестве веб-интерфейса для почты.

Cyrus IMAPD – сервер, обеспечивающий доступ к почте по протоколам IMAP и POP3.

Почта не привязана к локальным пользователям системы. Почтовые ящики хранятся в своем формате в отдельном каталоге, пароли могут проверяться различными способами, которые доступны через библиотеку SASL. Можно хранить пароли в базе My SQL, в sasldb или проверять через любые PAM модули. В состав Cyrus IMAPD входят программа для локальной доставки почты.

Внимание Необходимо сменить владельца /etc/imapd.conf на cyrus и отобрать у «прочих» права на чтение
chown cyrus /etc/imapd.conf
chmod o-r /etc/imapd.conf

/etc/imapd.conf
================
configdirectory: /var/lib/imap

allowplaintext: 1
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail

(см. Аутенификация SASL)

/etc/cyrus.conf
Все по умолчанию

cyradm – скрипт на Perl для управления почтовыми ящиками по протоколу IMAP. Запуск

cyradm -u cyradmin localhost

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

Создание почтового ящика и установка квоты 100МБ

cm user/newuser
sq user/newuser 100000

Удаление ящика
sam user/newuser cyradm c
dm user/newuser

Восстановление индексных файлов в порушенном ящике
/usr/lib/cyrus-imapd/reconstruct user

Переход на Postfix с sendmail в CentOS осуществляется почти автоматически.
Устанавливаем postfix
yum install postfix
Правим конфигурационные файлы в каталоге /etc/postfix, удаляем Sendmail, cтроим hash для файла aliases, стартуем Postfix и добавляем его в список загружаемых при старте демонов

vi /etc/postfix/main.cf
rpm -e sendmail
newaliases
/sbin/service postfix start
/sbin/chkconfig postfix on

В CentOS используется специальный механизм выбора версии программы, имеющей несколько реализаций. К таким программам относятся почтовые серверы, принт серверы, различные варианты java. В каталоге /etc/alternatives/ сделаны символические линки на реально установленные программы например, /etc/alternatives/mta изначально является символическим линком на /usr/lib/sendmail.sendmail. При удалении Sendmail происходит замена и /etc/alternatives/mta становится символическим линком на /usr/lib/sendmail.postfix. Файл /usr/sbin/sendmail является в свою очередь линком на /etc/alternatives/mta. Т.к. Postfix обрабатывает те же опции при запуске, что и Sendmail, подмену никто не заметит. Аналогичная ситуайия с mailq, newaliases, rmail.

Борьба со спамом и вирусами

Желательно установить Greylisting, clamav, spamassasin и/или mimedefang

yum install postgrey clamav clamd spamassassin mimedefang

Mimdefang подключится если у нас Postfix версии 2.4

Правим права доступа

В файле /etc/sysconfig/mimedefang (Проверить)
MX_USER=postfix

chown -R postfix.postfix /var/spool/MIMEDefang

MIMEDefang ожидает что сокет clamd расположен в /var/spool/MIMEDefang/clamd.sock, причем это прошито в коде /usr/bin/mimedefang.pl. Clamd по умолчанию помещает свой сокет в /tmp/clamd.socket. Попробуем сделать линк (Проверить)

ln -s /tmp/clamd.socket /var/spool/MIMEDefang/clamd.sock

По умолчанию MIMEDefang запускает Spamassassin с конфигурационным файлом /etc/mail/sa-mimedefang.cf, а пакет spamassassin устанавливает свой конфиг в /etc/mail/spamassassin/local.cf. Чтобы не было путаницы удаляем /etc/mail/sa-mimedefang.cf, MIMEDefang переключится на /etc/mail/spamassassin/local.cf автоматически.

Для postgrey прописываем белые листы:

Пользователи которым нельзя задерживать доставку почты ни под каким видом
Файл /etc/postfix/postgrey_whitelist_recipients

Локальные сети
Файл /etc/postfix/postgrey_whitelist_clients.local

К сожалению маска сети не предусмотрена. Если ваша подсеть больше или меньше стандартного класса, то придется перечислять все подсети или IP адреса (может получиться до 128 строк на подсеть)

Теперь надо включить postgrey, clamd, spamassassin и mimedefang в автозапуск.
/sbin/chkconfig clamd on
/sbin/chkconfig spamassassin on
/sbin/chkconfig mimedefang on

Ограничения на пересылку почты определяютя так
mydestination = $myhostname, localhost.$mydomain, localhost
mynetworks = 168.100.189.0/24, 127.0.0.0/8
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
check_policy_service unix:postgrey/socket

В этом варианте spamassassin и антивирус запустятся через MIMEDefang.

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

или в каталог Maildir

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

или по протоколу lmtp если Postfix используется в связке с Cyrus IMAPD

Можно описать собственный транспорт в файле /etc/postfix/master.cf

Конфигурационный файл, описывающий «технические» параметры (запускаемые почтовые службы и их настройки).

Подключение spamassassin и антивируса для Postfix версии < 2.4.
Проверяем только SMTP

Файл /usr/local/sbin/avfilter.sh может быть таким

trap "rm -f $INSPECT_DIR/in.$$ $INSPECT_DIR/vr.$$ $INSPECT_DIR/vr1.$$" 0 1 2 3 15

В зависимости от подсистемы обслуживающей почтовые ящики, имена из virtual могут отображаться, а могут и не отображаться на имена пользователей из файла passwd.

Минимальная установка RHEL / CentOS 7 для серверов поставляется с некоторыми предварительно установленными службами по умолчанию, такими как демон Postfix Mail Transfer Agent, Avahi mdns daemon (многоадресная система доменных имен) и служба Chrony, которая отвечает за поддержание системных часов.


Удаление сервисов в CentOS 7

Теперь встает вопрос: зачем нужно отключать все эти сервисы? если они предварительно установлены? Одной из основных причин будет повышение уровня безопасности системы, вторая причина - конечный пункт назначения системы, а третья - системные ресурсы.

Требования

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

Отключить / удалить Postfix MTA, Avahi и Chrony Services

1. После завершения установки войдите в систему на своем сервере с учетной записью root или пользователем с правами root и выполните обновление системы, чтобы убедиться, что в вашей системе установлены все пакеты и исправления безопасности.


2. Следующим шагом будет установка некоторых полезных системных утилит с помощью диспетчера пакетов YUM, таких как net-tools (этот пакет предоставляет более старые
но хорошая команда ifconfig ), текстовый редактор nano, wget и curl для передачи URL-адресов, lsof (для просмотра списка открытых файлов) и bash-завершение, которое автоматически завершает вводимые команды.


Установите системные утилиты

3. Теперь вы можете начать отключать и удалять предустановленные нежелательные сервисы. Прежде всего, получите список всех ваших включенных и запущенных служб, выполнив команду netstat для сетевых сокетов состояния TCP, UDP и Listen.


Список включенных сервисов

4. Как вы можете видеть, Postfix запущен и прослушивает localhost на порту 25, демон Avahi связывается на всех сетевых интерфейсах, а служба Chronyd привязывается на localhost и всех сетевых интерфейсах на разных портах. Выполните удаление службы Postfix MTA, введя следующие команды.


Удалить сервис Postfix

5. Затем удалите службу Chronyd, которая будет заменена сервером NTP, введя следующие команды.


Удалить сервис Chronyd

6. Теперь пришло время удалить демона Avahi . Похоже, в RHEL / CentOS 7 демон Avahi сильно привязан и зависит от службы Network Manager. Выполнение удаления демона Avahi может оставить вашу систему без каких-либо сетевых подключений.

Итак, обратите особое внимание на этот шаг. Если вам действительно нужна автоматическая настройка сети, предоставляемая Network Manager, или вам нужно отредактировать свои интерфейсы
через утилиту сети и интерфейса nmtui, вам нужно только остановить и отключить демон Avahi и вообще не удалять его.

Выполните следующие команды для удаления демона Avahi mdns . Внимание : не пытайтесь удалить демон Avahi, если вы подключились через SSH.


Удалить Avahi Daemon

7. Этот шаг требуется только в том случае, если вы удалили демон Avahi и ваши сетевые подключения оборвались, и вам необходимо снова вручную настроить карту сетевого интерфейса.

Чтобы отредактировать сетевой адаптер для использования IPv6 и статического IP-адреса, перейдите в / etc / sysconfig / network-scripts / path, откройте файл интерфейса NIC (обычно первая карта называется ifcfg-eno1677776 и уже настроена Network Manager) и используйте Network Manager). следующий отрывок в качестве руководства на случай, если ваш
Сетевой интерфейс не имеет конфигурации.


Настроить сетевой интерфейс

Наиболее важные настройки, которые вы должны принять во внимание:

8. Если в вашей инфраструктуре есть сервер DHCP, который автоматически назначает IP-адреса, используйте следующую выдержку для настройки сетевых интерфейсов.


Настройте интерфейс DHCP

Аналогично конфигурации со статическим IP-адресом, убедитесь, что для BOOTPROTO задано значение dhcp, оператор DEFROUTE прокомментирован или удален, а устройство настроено на автоматический запуск при загрузке. Если вы не используете IPv6, просто удалите или закомментируйте все строки, содержащие IPv6.

9. Чтобы применить новые конфигурации для сетевых интерфейсов, необходимо перезапустить сетевой сервис. После перезапуска сетевого демона используйте ifconfig
или команду ip addr show, чтобы получить настройки интерфейса и попытаться пропинговать доменное имя, чтобы проверить работоспособность сети.


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

10. В качестве окончательной настройки убедитесь, что вы задали имя для системного имени хоста с помощью утилиты hostnamectl и просмотрите свою конфигурацию с помощью команды hostname .


Настройка имени хоста системы

11. Вот и все! В качестве заключительного теста снова запустите команду netstat, чтобы узнать, какие службы работают в вашей системе.


Проверьте запущенные сервисы

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


Проверьте службу DHCP

13. В качестве альтернативы утилите netstat вы можете вывести работающие сетевые сокеты с помощью команды Sockets Statistics .


Команда ss для проверки сети

14. Перезагрузите сервер и выполните команду systemd-analize, чтобы определить производительность времени загрузки системы, а также использовать free и Disk.
Бесплатная команда для отображения статистики RAM и HDD, а также команда top, чтобы увидеть верх наиболее часто используемых системных ресурсов.


Проверьте время загрузки системы


Проверьте память и использование диска

Поздравляем! Теперь у вас есть чистая минимальная системная среда RHEL / CentOS 7 с меньшим количеством установленных и запущенных сервисов и большим количеством ресурсов для будущих конфигураций.

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