Централизованное обновление по linux

Централизованная система обновления пакетов в Ubuntu

Что делать, если аналоги платные или не адаптированы под наши условия? Конечно, писать самому.

Условие:

50 удаленных клиентских станций, работающих на Ubuntu Desktop (10.04-12.10).

Задача:
Варианты решения:
  • Landscape – Отлично, но платно.
  • Spacewalk – Только RHEL и ему подобные.
  • Собственная разработка – этот вариант как раз для нас.

Поскольку мои знания ограничиваются одним языком программирования – bash, реализация будет выполнена именно на нем.
Что нам потребуется:

  • ssh-server на клиентских станциях.
  • Общий пользователь для администрирования.
  • Linux сервер (программа expect должна быть установлена).
  • Сетевая шара (я использовал nfs).

Как будет работать:
ssh adm@IP -> сбор нужной информации -> запись в лог на сервер -> exit.

Как выглядит на практике:

При запуске программы отображается информация о пользователях и доступных пакетах для обновления. Имеется возможность ручного управления через меню. P.s реальные имена и IP заменены в целях анонимности. Далее показан пример выполнения первого пункта:

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

Реализация:
/root/uuman – корневая папка программы.
../uuman/log – папка с лог файлами (она же сетевая шара).
../../log/.menu_log – скрытая папка с краткой информацией о удаленной машине.

Как пользоваться:
Если Вы использовали свои пути, поправьте следующие переменные в uuman.sh:

Скрипт setup установит необходимые пакеты для работы программы на клиентских станциях. Чтобы использовать скрипт, в файле uuman.sh закомментируйте строку:
И раскомментируйте:

Автоматический режим:
$WORKD/uuman.sh check — чек клиентских станций из файла ip.txt на доступность обновлений.
$WORKD/uuman.sh update — обновление клиентских станций, доступных из файла ip.txt.

Мы получаем клиент-серверную систему позволяющую в автоматическом или ручном режиме получать, хранить и обрабатывать информацию об актуальности установленных программ, пакетов безопасности и при необходимости производить обновление на клиентских станциях под управлением Ubuntu Linux.

UPD:
Авторизация теперь по ssh-key.
Генерируем ключ

С помощью файла setup, размещаем его на клиентских станциях.

Источник

Обновление Ubuntu

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

В данной статье рассматривается процесс обновления пакетов в Ubuntu, но не обновление самого дистрибутива до новой версии. Смотрите также наше руководство по обновлению Ubuntu до новой версии.

Ubuntu можно обновить, используя графическую утилиту Менеджер обновлений или использовать командную строку. Рассмотрим оба способа.

Обновление пакетов в Ubuntu, используя графическую утилиту

Запустим утилиту Менеджер обновлений (в системе она называется «Обновление приложений» или «Software Updater»). Для этого откройте лаунчер, нажав сочетание клавиш Super+A . В лаунчере найдите иконку Обновление. или же введите в строку поиска «update»

Утилита выполнит проверку обновлений. Это может занять несколько секунд.

Появится окно Менеджера обновлений. В нем представлен список компонентов, которые готовы для обновления. По умолчанию все компоненты помечены галочками. Можно снять галочку напротив какого-либо компонента, чтобы не обновлять его. Для запуска процесса обновления нажмите кнопку Установить сейчас .

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

Начнется процесс обновления Ubuntu.

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

Читайте также:  Эффективность windows defender windows 10

В некоторых случаях, после завершения обновления, требуется перезагрузка компьютера. Для выполнения перезагрузки нажмите кнопку Перезагрузить сейчас или перезагрузите компьютер позже.

Обновление Ubuntu через командую строку

Рассмотрим, как обновить Ubuntu Linux через командную строку (через терминал). Для обновления пакетов в Ubuntu используется утилита apt.

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

Выполните в терминале следующую команду:

Появится запрос на ввод вашего пароля пользователя. Введите пароль и нажмите Enter . При вводе пароля на экране не выводится никакой индикации ввода.

Начнется процесс обновления Ubuntu.

Когда обновление завершится, в терминале снова появится приглашение ко вводу новой команды.

Источник

Централизованное обновление CLAMAV

Есть такая задача — поставить на один сервер linux clamav и настроить так что бы остальные linux-сервера получали обновления и базы не через инет, а с этого сервера. К сожалению гугл не сильно помог в решении этой задачи. У самого clamav вроде бы нет такого функционала.

Натыкался на информацию, где теоретически описано, что можно как то через локальный DNS и WEB сервер настроить обновление всех серверов с одного linux сервера с ClamAm. Подскажите пожалуйста как это сделать. Наверняка кто то реализовал такое.

Никогда не надо было. Но наискосок freshclam.conf параметр DatabaseCustomURL не оно?

Но наискосок freshclam.conf параметр DatabaseCustomURL не оно?

Похоже, что оно. ТСу: на первом сервере расшариваешь /var/lib/clamav по NFS (см. nfs-utils), на втором и последующих прописываешь DatabaseCustomURL в /etc/freshclam.conf (по аналогии с закомменченным примером).

Дополню. Не обязательно /var/lib/clamav — каталог для freshclam (я имею ввиду тот который изначально будет сливать), вроде можно указать любой. Это просто напомнило момент, что в разные времена/разные версии, этот каталог по дефолту мог и меняться.

Спасибо! А в чём разница по NFS или там вирт дир на apache сделать? Я так понимаю так же будет забирать?

З.Ы. Заранее рекомендую сделать конфиг для whitelisting’а false positive.

А в чём разница по NFS или там вирт дир на apache сделать? Я так понимаю так же будет забирать?

Да, забирать будет что так, что так. Я сказал про NFS сугубо потому, что мне он был бы удобнее, но web, пожалуй, попроще в настройке и не требует поддержки nfs от клиентов (вдруг у тебя с клиентской стороны clamav на винде? :).

Можно кстати просто через squid. У freshclam есть настройки прокси.

Можно кстати просто через squid. У freshclam есть настройки прокси.

А это здесь причем? Задача же:

получали обновления и базы не через инет

получали обновления и базы не через инет

Ну один-то по-любому через Интернет. А вместо него может быть Squid. Недостаток — всё же доступ в Интернет нужен в момент попытки получения обновления. Преимущество — обновление точно будет новое. Либо из кэша Squid, если кто-то уже скачал, либо скачается актуальное.

Тут вопрос в том, какая конечная задача на самом деле.

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

Может быть, а может и не быть при таком объеме, «ОБС или как настроим».

Тут вопрос в том, какая конечная задача на самом деле.

Мне кажется ТС её поставил вполне конкретно «получали обновления и базы не через инет». Решаем именно эту задачу. Зачем предлагать то что ТС не просил?

Читайте также:  Принцип работы windows приложений

Потому что ответить на вопрос легко, это тебе не узнать, что ТСу надо было вместо этого.

Простите, конечно бывают невнятные запросы. Но имхо вопрос ТС не из разряда X-Y

так что бы остальные linux-сервера получали обновления и базы не через инет

Ничего «сверх естественного» в подобном вопросе нет.
ЗЫ Или есть, по вашему мнению?

Вопрос «а нужно-то что было?» лежит вне плоскости оригинального вопроса и от его сложности не зависит.

Спасибо большое, но к сожалению не могу найти mysigs.ndb в папке /var/lib/clamav/ , которую можно указать в DatabaseCustomURL нет таких файликов. Там только —

bytecode.cvd daily.cld main.cvd mirrors.dat

А если все 3 прописать в эти DatabaseCustomURL, то всё равно ломится в инет —

bytecode.cvd is up to date (version: custom database) Downloading daily.cld [100%] daily.cld updated (version: custom database, sigs: 1589915) main.cvd is up to date (version: custom database) main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr) nonblock_connect: connect timing out (30 secs) Can’t connect to port 80 of host database.clamav.net (IP: 104.16.218.84) nonblock_connect: connect timing out (30 secs) Can’t connect to port 80 of host database.clamav.net (IP: 104.16.219.84) WARNING: getpatch: Can’t download daily-25402.cdiff from database.clamav.net

теоретически описано, что можно как то через локальный DNS и WEB сервер настроить обновление всех серверов с одного linux сервера с ClamAm

Ну теоретически звучит просто.

1) посмотреть на какой адрес стучится clamav за обновлением
2) на своем днс-сервере сделать А запись на ваш внутренний сервер
3) .
4) Получить отлуп, т.к. нет нужных ключей для подписи вашего файла обновления

1)Стучится он на database.clamav.net. 2) если перенаправить на внутренний пишет ошибку так же.

ERROR: getpatch: Can’t download daily-25402.cdiff from database.clamav.net WARNING: Incremental update failed, trying to download daily.cvd WARNING: getfile: daily.cvd not found on database.clamav.net (IP: ) ERROR: Can’t download daily.cvd from database.clamav.net Giving up on database.clamav.net.

3). Гугл тоже не помогает. 4) Отлуп получил, что там за ключи и что делать дальше так и не понял увы((

А ещё есть такое ощущение, что всё-таки он забирает успешно дневной и основной Файл баз данных сигнатур, а пытается как раз скачать какие то download daily-25402.cdiff

freshclam restart ClamAV update process started at Fri Jun 7 14:20:51 2019 bytecode.cvd is up to date (version: custom database) daily.cld is up to date (version: custom database) main.cvd is up to date (version: custom database) main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr) WARNING: getpatch: Can’t download daily-25402.cdiff from local WARNING: getpatch: Can’t download daily-25402.cdiff from local WARNING: getpatch: Can’t download daily-25402.cdiff from local WARNING: Incremental update failed, trying to download daily.cvd WARNING: Can’t download daily.cvd from local Trying again in 5 secs.

Ну и долбится до посинения..

Решил наискосок погуглить. Действительно, похоже не все так просто. Вот из ссылок, но думаю вы её уже видели, https://www.lissyara.su/articles/freebsd/trivia/clamav_mirror/

Сейчас предложу вариант костылестроения, тапками не кидайтесь.
Учитывая задачу «настроить обновление всех серверов». Раскидывать db после обновления по серверам (или сгребать с серверов) и пинать clamd на релоад db, т.е. некий костыльный аналог freshclam.

Читайте также:  Virtualbox manual для windows

Сначала тебе надо все базы для ClamAV скачать, проверить подписи и их работоспособность:

Потом проверенные базы распихиваешь самым простым, безопасным методом по другим серверам.

Можно все делать одним скриптов с сервера. Хотя мне больше нравится вариант когда сервер периодически скачивает и выкладывает для клиентов, а клиенты когда захотят сами забирают.

freshclam не использую.

А зачем ты используешь freshclam? 4 файла с их сервера можно чем хочеш забирать. И клиенты твои тоже пусть просто файлы забирают без freshclam.

А есть здесь желающие сообща поддерживать антивирусных базку в формате YARA?

Могли бы обмениваться сигнатурами.

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

Ну так а в чём проблема с freshclam? Зачем что то другое? Я так понимаю тут проблема не в freshclam, а в чём то другом.

Теоретически вообще можно тупо копировать скриптом cp например из папки сервера на клиент. Но я так понимаю, что

bytecode.cvd daily.cld main.cvd mirrors.dat

с обновленного компа ему недостаточно. Потому как ещё раз —

freshclam ClamAV update process started at Thu Jun 13 12:11:28 2019 bytecode.cvd is up to date (version: custom database) Downloading daily.cld [100%] daily.cld updated (version: custom database, sigs: 1593437) main.cvd is up to date (version: custom database) main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr) WARNING: getpatch: Can’t download daily-25402.cdiff from server WARNING: getpatch: Can’t download daily-25402.cdiff from server WARNING: getpatch: Can’t download daily-25402.cdiff from server

т.е. он пытается утянуть какой то daily-25402.cdiff без которого ему не обновится.

Ну и потом что значит забирать — ну забрать то можно и подложить. Но примет ли он эти файлы все за обновленную базу свою? В чём отличие если это не freshclam качается?

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

Возможно педергивает демона для печитки баз. Наверняка все можно сделать скриптом.

Почему бы не начать с официальной документации? https://www.clamav.net/documents/private-local-mirrors ,пункты 2 и 3 описывают то, что вы хотите.

Да, это самый правильный совет. По ней и сделал, запускается скрипт .pl официальный, утягивает те же файлы.

Но с других машин при обращении на этот сервер опять пытается утянуть вот это —

freshclam ClamAV update process started at Fri Jun 14 12:04:46 2019 bytecode.cvd is up to date (version: custom database) WARNING: getfile: clamav/daily.cld not found on server (IP: *.*.*.*.) WARNING: Can’t download daily.cld from server main.cvd is up to date (version: custom database) main.cvd is up to date (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr) WARNING: getpatch: Can’t download daily-25402.cdiff from server WARNING: getpatch: Can’t download daily-25402.cdiff from server WARNING: getpatch: Can’t download daily-25402.cdiff from server WARNING: Incremental update failed, trying to download daily.cvd WARNING: Can’t download daily.cvd from server

Он пытается где то найти daily-25402.cdiff

Ну в общих чертах задача решена. Обновляется теперь всё. Проблема в том, что clamav не может брать обновления из кастомной папки апача. Ну т.е. с виртуалхост. Только с **/www/html

Но вот кстати некоторые машинки странно ведут себя- хотят дохрена cdiff файлов.

Источник

Оцените статью