
В Ubuntu пакет sendmail часто устанавливается автоматически как зависимость других программ или остается в системе после тестовых настроек почтовых сервисов. При этом демон может продолжать слушать порт 25, создавать очереди писем и конфликтовать с альтернативными MTA, такими как Postfix или Exim. Если sendmail не используется, его присутствие увеличивает поверхность атаки и усложняет администрирование.
Удаление sendmail в Ubuntu требует большего, чем простой вызов apt remove. Пакет состоит из службы, вспомогательных утилит, конфигурационных файлов и системных ссылок, которые могут сохраниться после стандартного удаления. Без проверки статуса сервиса и очистки зависимостей система продолжит обращаться к несуществующим компонентам.
В статье разобраны практические шаги: как определить, установлен ли sendmail, корректно остановить службу, удалить сам пакет и связанные зависимости, а также убедиться, что система больше не пытается использовать sendmail для обработки почты. Примеры команд ориентированы на актуальные версии Ubuntu и подходят для серверов и рабочих станций.
Проверка установлен ли sendmail в системе Ubuntu
Перед удалением нужно точно определить, присутствует ли sendmail в системе и в каком виде он установлен. Самый быстрый способ – проверить список пакетов через менеджер apt. Команда dpkg -l | grep sendmail покажет установленные пакеты, связанные с sendmail, включая sendmail-base и sendmail-bin. Наличие статуса ii в начале строки означает, что пакет установлен.
Даже если пакет присутствует, демон может быть не запущен. Для проверки активности службы используется systemctl status sendmail. Если сервис найден, systemd выведет его текущее состояние, путь к unit-файлу и информацию о последнем запуске. Сообщение о том, что unit не найден, указывает на отсутствие активной службы.
В ряде конфигураций sendmail используется только как системный MTA по умолчанию без активного демона. Это можно проверить через update-alternatives —display mta. Если sendmail указан как текущая альтернатива, его замена или удаление потребуют дополнительного шага, чтобы избежать ошибок доставки почты системными утилитами.
Определение версии Ubuntu и менеджера пакетов

Если утилита lsb_release отсутствует, ту же информацию можно получить из системного файла /etc/os-release. Команда cat /etc/os-release покажет точное имя версии и идентификатор дистрибутива, что помогает корректно подбирать команды для работы с пакетами.
Во всех актуальных версиях Ubuntu используется менеджер пакетов apt, но способ управления установленными компонентами зависит от его версии и настроек системы. Проверить текущую версию можно командой apt —version. Это полезно при работе на старых серверах, где синтаксис некоторых опций может отличаться.
| Команда | Назначение |
|---|---|
| lsb_release -a | Определение версии Ubuntu и кодового имени |
| cat /etc/os-release | Получение данных о системе без дополнительных пакетов |
| apt —version | Проверка версии менеджера пакетов apt |
Точное понимание версии Ubuntu и используемого менеджера пакетов снижает риск ошибок при удалении sendmail, особенно в системах с долгой историей обновлений и нестандартным набором установленных компонентов.
Остановка службы sendmail перед удалением

Перед удалением пакетов sendmail службу нужно остановить, чтобы исключить блокировку файлов и ошибки менеджера пакетов. В системах с systemd используется команда sudo systemctl stop sendmail. После выполнения статус проверяют через systemctl status sendmail, убедившись, что сервис перешёл в состояние inactive.
Если служба настроена на автоматический запуск, её следует отключить до удаления пакета. Для этого выполняют sudo systemctl disable sendmail. Команда удаляет символические ссылки unit-файла и предотвращает повторный старт демона при перезагрузке системы.
В редких конфигурациях sendmail может быть запущен не как systemd-сервис, а через сторонние скрипты или устаревшие init-механизмы. В таких случаях проверяют активные процессы командой ps aux | grep sendmail и завершают их вручную с помощью kill, ориентируясь на PID.
Удаление пакета sendmail через apt
После остановки службы удаление sendmail выполняется через менеджер пакетов apt. Для начала имеет смысл уточнить точное имя установленного пакета, так как в системе могут присутствовать несколько компонентов. Проверка выполняется командой dpkg -l | grep sendmail, по результатам которой определяется основной пакет и связанные модули.
Для стандартного удаления без затрагивания пользовательских конфигураций применяется команда sudo apt remove sendmail. Этот вариант подходит, если требуется временно убрать пакет с возможностью восстановления настроек. Если sendmail был установлен вместе с дополнительными компонентами, apt предложит список пакетов к удалению, который нужно внимательно проверить перед подтверждением.
При полном удалении с очисткой конфигурационных файлов используется sudo apt purge sendmail. Такой способ подходит для серверов, где sendmail больше не планируется использоваться. В процессе purge удаляются файлы из /etc/mail, а также связанные системные настройки.
Если в системе установлены дополнительные пакеты sendmail, их удаляют последовательно или одной командой:
- sudo apt purge sendmail sendmail-bin sendmail-base
- sudo apt purge sendmail-cf – при наличии пакета с макросами конфигурации
Очистка зависимостей и остаточных пакетов sendmail
После удаления основного пакета sendmail в системе часто остаются зависимости, которые больше не используются. Для их выявления применяется команда sudo apt autoremove. Она анализирует список установленных пакетов и удаляет библиотеки и утилиты, установленные ранее только для работы sendmail.
Завершающим шагом служит обновление локального кэша пакетов командой sudo apt update. Это синхронизирует состояние системы с репозиториями и исключает появление ссылок на уже удалённые компоненты sendmail.
Проверка что sendmail больше не запущен и не используется
После удаления sendmail важно убедиться, что служба и процессы больше не активны, а система не пытается использовать демона для отправки почты. Для этого выполняют несколько проверок.
- Проверка слушающих портов SMTP: ss -tulpn | grep :25 или netstat -tulpn | grep :25. Порт 25 не должен быть занят процессами sendmail.
- Проверка статуса службы systemd: systemctl status sendmail. Состояние должно быть inactive или not-found.
Дополнительно проверяют системный MTA, если sendmail использовался как альтернатива. Команда update-alternatives —display mta покажет текущего поставщика почтовой системы. Если sendmail указан, необходимо изменить альтернативу на другой MTA, например postfix, с помощью sudo update-alternatives —config mta.
Только после всех этих проверок можно быть уверенным, что sendmail полностью остановлен, не прослушивает порты и не мешает работе других почтовых сервисов.
Удаление конфигурационных файлов sendmail вручную
Даже после удаления пакета sendmail конфигурационные файлы могут сохраняться в системе. Основной каталог расположен в /etc/mail. Для полной очистки выполняют:
- Проверку наличия файлов и папок: ls -la /etc/mail.
- Удаление директории и всех вложенных файлов: sudo rm -rf /etc/mail.
Кроме /etc/mail могут сохраняться файлы в следующих местах:
- /var/spool/mqueue – очередь почты, которую нужно очистить: sudo rm -rf /var/spool/mqueue/*.
- /var/log/mail.log и /var/log/mail.err – журналы sendmail, при необходимости удаляются: sudo rm /var/log/mail.*.
После удаления этих файлов стоит проверить, что не осталось символических ссылок и скриптов автозагрузки, связанных с sendmail. Команда find /etc/systemd /etc/init.d -name ‘*sendmail*’ покажет оставшиеся единицы, которые при обнаружении удаляются вручную.
Предотвращение повторной установки sendmail в Ubuntu
Чтобы sendmail не устанавливался снова при обновлениях или установке пакетов, необходимо заблокировать его через менеджер пакетов apt. Команда для этого выглядит так: sudo apt-mark hold sendmail sendmail-bin sendmail-base. После выполнения эти пакеты не будут обновляться и повторно устанавливаться автоматически.
Дополнительно стоит проверить зависимости других пакетов. Команда apt-cache rdepends sendmail покажет, какие программы могут подтягивать sendmail. Если среди них есть ненужные пакеты, их лучше удалить или заменить альтернативными версиями без зависимости от sendmail.
Для предотвращения повторной установки через metapackage или скрипты сторонних репозиториев используют фильтры dpkg. Создается файл /etc/apt/preferences.d/no-sendmail с содержимым:
Package: sendmail* Pin: release * Pin-Priority: -1
Это полностью запрещает установку любых пакетов sendmail из репозиториев. После настройки блокировки проверяют статус командой apt-mark showhold, чтобы убедиться, что все необходимые пакеты находятся под защитой.
Вопрос-ответ:
Как проверить, установлен ли sendmail на Ubuntu?
Чтобы убедиться, что sendmail присутствует в системе, используйте команду dpkg -l | grep sendmail. Она покажет все пакеты sendmail с их статусом. Если в начале строки стоит ii, это означает, что пакет установлен. Дополнительно можно проверить активность демона командой systemctl status sendmail и прослушиваемые порты с помощью ss -tulpn | grep :25.
Какие шаги нужны для безопасного удаления sendmail?
Перед удалением нужно остановить службу sendmail: sudo systemctl stop sendmail и отключить автозапуск: sudo systemctl disable sendmail. Затем удаляют пакеты через sudo apt purge sendmail sendmail-bin sendmail-base. После этого очищают зависимости командой sudo apt autoremove и проверяют, что порт 25 свободен, а процессы sendmail больше не активны.
Как удалить оставшиеся конфигурационные файлы sendmail?
Даже после удаления пакета могут оставаться конфигурации в /etc/mail и очередь почты в /var/spool/mqueue. Для их удаления используют команды sudo rm -rf /etc/mail и sudo rm -rf /var/spool/mqueue/*. Журналы sendmail, такие как /var/log/mail.log и /var/log/mail.err, также можно удалить вручную. После очистки стоит проверить символические ссылки и скрипты автозагрузки через find /etc/systemd /etc/init.d -name ‘*sendmail*’.
Как предотвратить повторную установку sendmail на Ubuntu?
Для блокировки повторной установки применяют apt-mark hold для всех пакетов sendmail: sudo apt-mark hold sendmail sendmail-bin sendmail-base. Дополнительно можно создать файл /etc/apt/preferences.d/no-sendmail с содержимым
Package: sendmail* Pin: release * Pin-Priority: -1
, что полностью запрещает установку любых пакетов sendmail из репозиториев. Проверить состояние блокировки можно командой apt-mark showhold.
