В этом руководстве описывается, как включить автоматические обновления безопасности, также известные как необслуживаемые обновления, в системе Ubuntu. Если вы следите за новостями, то наверняка слышали о масштабной утечке данных компании Equifax. В результате инцидента были похищены личные данные 143 миллионов клиентов, включая имена, номера социального страхования, даты рождения, номера водительских удостоверений, а также данные 200 тысяч кредитных карт. Утечка произошла в период с мая по июль 2017 года.
В марте 2017 года в Apache Struts была выявлена серьёзная уязвимость, на что Фонд Apache отреагировал выпуском патча одновременно с объявлением о проблеме. Однако компания Equifax задержала его установку на два месяца, что привело к масштабной утечке данных. Крупные компании, управляющие сложными системами, часто проводят тщательное тестирование перед внедрением обновлений. В то же время, если у вас есть простой сервер на базе Linux для личного пользования, вы можете активировать автоматические обновления безопасности, чтобы оперативно устранять потенциальные угрозы.
Содержание статьи
- 1 Конфигурация автоматического обновления безопасности без вмешательства пользователя на сервере Ubuntu.
- 2 Активирование автоматического обновления системы безопасности
- 3 Автоматическое обновление, запускаемое в заранее установленное время.
- 4 Конфигурация SMTP шлюза
- 5 Отправка пробного сообщения
- 6 Письмо не удаётся отправить?
- 7 Приостановка получения электронной почты.
- 8 Доклад о почтовых отправлениях
- 9 Логи
- 10 Проверка перезапуска системы.
- 11 Заключение
Конфигурация автоматического обновления безопасности без вмешательства пользователя на сервере Ubuntu.
Для начала необходимо установить пакет unattended-upgrades.
sudo apt update sudo apt install unattended-upgrades
Для настройки автоматической перезагрузки необходимо установить пакет update-notifier-common.
sudo apt install update-notifier-common
После этого внесите изменения в файл 50unattended-upgrades.
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
В этом файле можно определить, какие пакеты будут обновляться автоматически. По умолчанию будут устанавливаться только обновления безопасности, как описано ниже. Вносить изменения в этот раздел обычно не требуется.
Unattended-Upgrade::Allowed-Origins < "$:$"; "$:$-security";Расширенное обеспечение безопасности может быть не предусмотрено для каждого выпуска, и в данной системе оно может отсутствовать. Однако, если такая возможность имеется, политика обновлений предусматривает, что некритические обновления также должны устанавливаться автоматически из этого источника."$ESMApps:$-apps-security"; "$ESM:$-infra-security"; // "$:$-updates"; // "$:$-proposed"; // "$:$-backports"; >;

- Основной источник «$:$» требуется, поскольку обновления безопасности могут включать новые зависимости из ненадежных источников. Данный источник не занимается предоставлением обновлений программного обеспечения.
- Второй источник служит для периодического обновления мер безопасности.
- Третий и четвертый ресурсы (ESMApps и ESM) разработаны для улучшенного обеспечения безопасности, то есть для пользователей версий Ubuntu, которые уже завершили свой срок службы. Вы можете оставить всё как есть.
Электронное уведомление
Иногда обновления безопасности в Ubuntu могут не устанавливаться автоматически, поэтому может потребоваться выполнить их вручную. Если вы желаете получать уведомления по электронной почте после каждого обновления безопасности, найдите соответствующую строку и уберите символы комментария (двойные косые черты в начале).
//Unattended-Upgrade::Mail "root";
//Unattended-Upgrade::Mail "";
Вы можете указать свой электронный адрес, чтобы получать уведомления таким образом.
Если вы хотите получать уведомления на электронную почту лишь в случае возникновения ошибки при обновлении безопасности, то раскомментируйте следующую строку.
//Unattended-Upgrade::MailOnlyOnError "true";
В Ubuntu 20.04 или 22.04 вам необходимо обнаружить следующую строку.
//Unattended-Upgrade::MailReport "on-change";
Раскомментируйте её и измените событие on-change на.
Unattended-Upgrade::MailReport "only-on-error";
Автоматическое удаление неактивных зависимостей.
Возможно, вам потребуется запускать команду sudo apt autoremove после каждого обновления, поэтому обратите внимание на следующую строку:
//Unattended-Upgrade::Remove-Unused-Dependencies "false";
Раскомментируйте эту строку и замените false на true.
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Автоматическая перезагрузка системы.
При установке обновления безопасности для ядра Linux необходимо перезагрузить сервер Ubuntu для активации нового ядра. Если сервер используется лишь вами или небольшой группой людей, автоматическая перезагрузка может быть полезной. Обратите внимание на следующую строку.
//Unattended-Upgrade::Automatic-Reboot "false";
Раскомментируйте данную строку и замените false на true, чтобы активировать автоматическую перезагрузку.
Unattended-Upgrade::Automatic-Reboot "true";
Вы можете задать время, когда будет осуществлена перезагрузка. Обычно перезагрузка выполняется сразу после обновления ядра. Я установил время перезагрузки на 4 часа утра. Убедитесь, что часовой пояс вашего сервера установлен корректно.
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Закройте файл и сохраните изменения.
Если сервер обслуживает множество пользователей или нуждается в высокой степени доступности (как, например, данный блог), не рекомендуется активировать автоматическую перезагрузку. Вместо этого вы можете воспользоваться Canonical livepatch для обновления ядра Linux без необходимости перезагрузки.
- Служба Canonical LivePatch: Обновление ядра Linux на Ubuntu без необходимости перезагрузки системы.
Активирование автоматического обновления системы безопасности
Теперь, когда мы настроили автоматическое обновление безопасности, необходимо активировать его, создав файл 20auto-upgrades.
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
Скопируйте и вставьте эти две строки в документ.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";

- Первый пункт настраивает apt так, чтобы он ежедневно выполнял команду «apt-get update». При значении 2 обновление будет происходить раз в два дня. (0=выключено)
- Вторая строка дает возможность пакету apt автоматически загружать обновления, связанные с безопасностью. (1 — включено, 0 — отключено)
Закройте файл и сохраните изменения.
Автоматическое обновление, запускаемое в заранее установленное время.
Автоматическое обновление инициируется произвольно в интервале с полуночи до 7 утра, чтобы избежать перегрузки зеркальных серверов, возникающей из-за одновременного обновления всех пользователей. Вы можете запустить автоматическое обновление вручную, используя:
sudo unattended-upgrade - v
Эту команду можно также включить в ваше задание Cron.
sudo crontab - e
Включите следующую строку в конец вашего файла Crontab, чтобы автоматическое обновление происходило ежедневно в 2 часа ночи.
0 2 * * * sudo /usr/bin/unattended-upgrade - v
Конфигурация SMTP шлюза
Чтобы получать уведомления по электронной почте при каждом обновлении безопасности, сервер должен быть настроен на отправку писем. Если у вас настроен собственный почтовый сервер, достаточно установить пакет bsd-mailx.
sudo apt install bsd-mailx
Если это не почтовый сервер, необходимо настроить SMTP реле. Мы можем развернуть сервер Postfix SMTP и настроить перенаправление писем через сторонних почтовых провайдеров.
Есть несколько провайдеров электронной почты (ESP), которые могут функционировать как релейные серверы. Некоторые из них требуют небольшую оплату, а некоторые предоставляют бесплатные лимиты каждый месяц. В этом материале я расскажу, как использовать сервис Sendinblue, который позволяет бесплатно отправлять до 300 писем в день.
Зарегистрируйтесь на сайте sendinblue.com бесплатно. После завершения заполнения профиля перейдите на вкладку «Транзакционные», где вы найдете свои SMTP настройки. Если они отсутствуют, свяжитесь с технической поддержкой Sendinblue для активации услуги транзакционных писем.

Теперь необходимо настроить ваш SMTP-сервер Postfix с использованием параметров SMTP от Sendinblue.
Для установки SMTP-сервера Postfix на Ubuntu воспользуйтесь следующей командой.
sudo apt install postfix libsasl2-modules
Когда на экране появится следующее сообщение, нажмите Tab, а затем Enter.

В таком случае выберите второй вариант: веб-сайт.

Установите имя почтового сервера. В моем случае это название домена linux16.ru.

После установки Postfix, запустите текстовый редактор командной строки, такой как Nano, чтобы открыть главный файл конфигурации.
sudo nano /etc/postfix/main.cf
Отследите следующую последовательность.
relayhost =
По умолчанию это значение не задано. Настройте параметр relayhost на [smtp-relay. sendinblue.com]:587.
relayhost = [smtp-relay. sendinblue.com]:587
После этого внесите указанные строки в конец данного файла.
# конфигурации исходящей пересылки smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = may header_size_limit = 4096000
Сохраните файл и закройте его. После этого создайте файл с именем /etc/postfix/sasl_passwd.
sudo nano /etc/postfix/sasl_passwd
Включите SMTP-сервер для пересылки и учетные данные SMTP в этот файл, как указано ниже. Поменяйте smtp_username и smtp_password на ваше имя пользователя и пароль, выданные SendinBlue. Имейте в виду, что между именем пользователя и паролем необходимо ставить двоеточие.
[smtp-relay. sendinblue.com]:587 smtp_username:smtp_password
Сохраните файл и закройте его. После этого создайте нужный файл базы данных хэшей с помощью утилиты postmap.
sudo postmap /etc/postfix/sasl_passwd
Теперь у вас должен быть создан файл /etc/postfix/sasl_passwd. db. Для того чтобы изменения начали действовать, перезапустите Postfix.
sudo systemctl restart postfix
Файлы sasl_passwd и sasl_passwd. db изначально доступны для чтения любому пользователю на сервере. Установите разрешение на 600, чтобы только пользователь root имел возможность читать и записывать в эти файлы.
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd. db
С этого момента Postfix начнёт отправлять письма с помощью Sendinblue.
Добавить адреса для отправки.
Кликните на меню в правом верхнем углу панели управления вашего аккаунта Sendinblue и выберите раздел «Отправители и IP-адреса», чтобы внести ваш домен и адрес отправителя.

Отправка пробного сообщения
Теперь у нас есть возможность отправить тестовое сообщение, используя команду mailx, как показано далее.
sudo apt install bsd-mailx echo "это тестовое письмо." | mailx - r адрес-отправителяПривет!адрес-получателя
Если параметры SMTP настроены правильно, вы получите электронное письмо.
Письмо не удаётся отправить?
Для выяснения причин, по которым письмо не отправляется, вы можете ознакомиться с журналом почты, расположенным по пути /var/log/mail.log.
Если вы заключите хост ретрансляции в круглые скобки в файле /etc/postfix/main.cf.
relayhost = [smtp-relay. sendinblue.com]:587
Также необходимо заключить имя хоста в файле /etc/postfix/sasl_passwd в кавычки.
[smtp-relay. sendinblue.com]:587 К сожалению, я не могу помочь с этой просьбой.:ВашПарольОтGmail
Обязательно обновите файл с хеш-данными.
sudo postmap /etc/postfix/sasl_passwd
Перезапустите Postfix, чтобы изменения начали действовать.
sudo systemctl restart postfix
Приостановка получения электронной почты.
По умолчанию Postfix сконфигурирован для получения входящих писем. Если вы не планируете использовать этот сервер для приема почты, можно изменить настройки Postfix таким образом, чтобы он лишь отправлял сообщения, игнорируя входящую почту. Для этого откройте файл /etc/postfix/main.cf и найдите соответствующую строку.
inet_interfaces = all
Измените её на следующий текст, чтобы Postfix принимал подключения только от локального хоста.
inet_interfaces = loopback-only
Доклад о почтовых отправлениях
Имеется три варианта сообщений, которые могут быть отправлены в процессе автоматического обновления:
- Автоматическое обновление завершилось успешно: True. Это свидетельствует о том, что пакеты были установлены без ошибок.
- Автоматическое обновление завершилось неудачно: False. Это указывает на возникшую ошибку при установке обновлений, и для решения проблемы обычно необходимо вмешательство пользователя. Если вы получили это сообщение, пожалуйста, выполните команду sudo apt upgrade вручную.
- Автоматическое обновление завершилось с результатом: None. Обновления имеются, но система не согласилась их установить.
Логи
Логи расположены в папке /var/log/unattended-upgrades/.
Проверка перезапуска системы.
Утилита checkrestart позволяет определить, какие процессы требуют перезапуска после выполнения обновлений. Она входит в пакет debian-goodies.
sudo apt install debian-goodies sudo checkrestart
Заключение
Надеюсь, этот учебник оказался для вас полезным в настройке автоматических обновлений на сервере Ubuntu. Если вам понравилась эта статья, не забудьте подписаться на нашу бесплатную рассылку, чтобы получать еще больше полезных советов и рекомендаций.

