Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

4 года назад
Открыть в
В последнее время навводили кучу запретов на загрузку софта с IP адресов РФ. Я покажу на наглядном примере, как поднять свой deb репозиторий, наполнить его санкционным софтом и использовать в своей инфраструктуре. Пример будет не гипотетический, а самый что ни на есть актуальный. Допустим, нам надо на парке серверов обновить filebeat от компании elastic, которая закрыла доступ к своим публичным репозиториям с территории РФ. Я включил прокси, скачал через браузер пакет filebeat-8.4.3-amd64.deb. Далее идём на сервер с Debian, где будем настраивать локальный репозиторий с помощью aptly. # apt install aptly Создаём конфиг /etc/aptly.conf. Содержимое берём из документации, где меняем только rootDir и имя FileSystemPublishEndpoints. {  "rootDir": "/mnt/repo",  "downloadConcurrency": 4,  "downloadSpeedLimit": 0,  "architectures": [],  "dependencyFollowSuggests": false,  "dependencyFollowRecommends": false,  "dependencyFollowAllVariants": false,  "dependencyFollowSource": false,  "dependencyVerboseResolve": false,  "gpgDisableSign": false,  "gpgDisableVerify": false,  "gpgProvider": "gpg",  "downloadSourcePackages": false,  "skipLegacyPool": true,  "ppaDistributorID": "elk",  "ppaCodename": "",  "FileSystemPublishEndpoints": {   "elkrepo": {    "rootDir": "/var/www/aptly",    "linkMethod": "symlink",    "verifyMethod": "md5"   }  },  "enableMetricsEndpoint": false } Создаём необходимые директории: # mkdir -p /mnt/repo /var/www/aptly Создаю репозиторий для Debian 11: # aptly repo create -distribution="bullseye" elk Копирую на сервер пакет и добавляю его в репозиторий: # aptly repo add elk ~/filebeat-8.4.3-amd64.deb Создаю gpg ключ для репозитория: # gpg --default-new-key-algo rsa4096 --gen-key --keyring pubring Real name: elkrepo Публикуем репозиторий с этим ключом: # aptly publish repo elk Далее вам нужно поднять любой веб сервер и настроить через него доступ к директории /var/www/aptly. Если не хочется это делать, можно запустить сам aptly как веб сервер (дефолтный порт 8080): # aptly serve Он автоматом создаст и опубликует директорию /mnt/repo/public. Для удобства можно туда выгрузить публичный ключ: # gpg --export --armor > /mnt/repo/public/elkrepo.asc Можно зайти браузером на 8080 порт сервера и посмотреть содержимое репозитория вместе с gpg ключом. Теперь идём на клиенты и подключаем репозиторий. Для этого создаём файл /etc/apt/sources.list.d/elk_repo.list: deb http://10.20.1.56:8080 bullseye main Обновляем пакеты и устанавливаем или обновляем filebeat: # apt update && apt install filebeat Инструкцию написал и проверил лично, так как надо было для дела. Можете заполнить этот репозиторий всеми пакетами elastic и пользоваться. #debian #elk