Tech Recipe Book
My Services
  • Book
    • About the author
    • Architect
      • Algorithms
        • DB index algorithms
          • How does database indexing work
        • Neural network optimization
          • Neural Network Optimization
        • Route search
          • Road network in a database to build a route
          • Traveling Salesman Problem (TSP)
      • Architecture Frameworks
        • DODAF
        • TOGAF
        • Enterprise Architecture (EA) Tools Reviews 2023 | Gartner
      • Zero Trust
      • Billing
        • SHM billing system
      • Bots
        • Discord
        • Telegram
          • Chat GPT Telegram bot
          • Получаем статистику Telegram-канала при помощи api и python или свой tgstat с регистрацией и смс
          • Как хостить телеграм-бота (и другие скрипты на Python) на Repl.it бесплатно 24/7
          • Создание Telegram бота на PHP #1: основные понятия для работы с API
          • Создание Telegram бота на PHP #2: создание первого бота для Telegram
          • Создание Telegram бота на PHP #3: примеры отправки сообщений с кнопками в Telegram
          • Создание Telegram бота на PHP #4: отправка файлов и изображений в Telegram
          • Создание Telegram бота на PHP #5: работа с хуками
      • Business intelligence
      • Cloud Storage
        • Ceph
        • Virtual Distributed File System
      • Cryptography
        • Open Source PKI Software
        • OpenPGP
          • Email Encryption
          • Kleopatra
          • Miscellaneous Tools
          • Server side applications
      • Message broker
        • Kafka
          • Kafka UI-tools
          • Kafka streams ksqlDb
        • RabbitMQ
      • DB
        • MySQL
          • Auto sharding
          • MariaDB Zabbix monitoring
          • MySQL and MariaDB replication with Zabbix monitoring
        • Postgres
          • HA PostgreSQL with Patroni, Haproxy, Keepalived
          • Mass parallel requests - Greenplum
          • PostgreSQL cluster for development and testing
        • Vitess - Scalable. Reliable. MySQL-compatible. Cloud-native. Database.
      • Identity and Access Management (IDM)
        • FreeIPA - Identity, Policy, Audit
        • FreeIPA as an Enterprise solution
        • Keycloak
          • Keycloak HA cluster
        • Open Identity Platform
        • SSO
          • Keycloak for Java app
          • OpenAM
          • OpenIG
      • Firewall
        • nftables
      • Infrastructure As a Code
        • Ansible
        • IaC Packer Ansible Teraform
        • Installing Jenkins using terraform in Kubernetes in Yandex Cloud with letsencypt
        • Teraform Crosplan Pulumi
        • Yandex IaC solutions
      • Kubernetes
        • Installation
          • Install Kubernetes cluster
          • Deploying a Kubespray cluster to OpenStack using Terraform
          • Kube deploy in Yandex cloud
        • Frameworks
          • Deckhouse
            • LDAP authentification
            • On premise Install
            • Yandex Cloud Install
          • K3S
          • OpenShift OKD
          • RKE2
          • Rancher
            • Rancher Install
        • Auth
          • Keycloak in k8s
          • LDAP
        • GUI management Lens
        • Monitoring
          • Monitoring with Falco
          • Network monitoring
          • Nginx ingress
          • Prometheus Graphana for sample Nodejs app
          • Rsource monitoring Avito
        • Exposing services
          • Exposing Kubernetes Services
          • Cilium BGP
        • CNCF
        • Helm
          • Repositories
            • Artifact Hub | official
            • Bitnami | vmware
          • Awesome helm charts and resources
          • Essential Services for Modern Organizations
          • Security and Compliance
          • Additional charts
        • Isolation
          • vcluster - Virtual Kubernetes Clusters
          • Kiosk
          • KubeArmor
          • Control Plane Hardening
          • Hierarchical namespaces
        • Security Center
          • Minesweeper
          • NeuVector by SUSE
          • SOAR in Kubernetes
          • Security Сenter for Kubernetes
        • Terraform CI security
          • Terraform plan analysis with Checkov and Bridgecrew
          • Yandex Terraform scan
        • Vulnerability management
          • Aqua
          • Sysdig
          • Kyverno
          • GitLab
          • NeuVector by SUSE
        • Image scanning
          • Snyk
          • Sysdig
          • Harbor
          • Trivy
        • Signature verification
          • Sigstore
        • Control plane security
          • Gatekeeper
            • Applying OPA Gatekeeper
          • Kyverno
            • Policy as a code. Kyverno
        • Runtime Security
          • Osquery
          • Falco
          • ClamAV
        • Network security
          • Cilium
          • Control Plane Hardening (API restriction)
          • Network policy recipes
          • Service mesh
            • Istio HA, LoadBalance, Rate limit
          • mTLS Autocert
        • Honeypot
          • Building honeypot using vcluster and Falco
        • Backup
          • Kasten K10
        • Secrets
          • Vault CSI Driver
      • Load Balance
        • Nginx
        • HAProxy
          • Proxy methods
          • HAProxy for RDP
          • Payment gateway A/B test with HAProxy
          • HAPRoxy for Percona or Galera
      • Monitoring
        • Zabbix
          • Apache Zabbix
          • Disc Quota
          • Nginx Zabbix
          • SSL certificates Zabix
          • Zabbix notifications
        • Nagios
          • Datacenter monitoring
        • Prometheus and Grafana
      • Windows
        • Sysmon enhanced Windows audit
        • Sysmon to Block Unwanted File
      • Linux
        • Rsync
        • Debian based
          • Apt-Cacher NG
          • Unattended Upgrades in Debian / Ubuntu
        • RedHat basede
          • RPM Server
        • Logs analysis
        • Build armhf qemu
      • NGFW
      • CI/CD
        • DevSecOps
          • DAST
            • Burp
              • Dastardly
            • StackHawk
            • ZAP and GitHub Actions
          • SAST
            • Checkmarx
            • OSV by Google
            • Snyk
            • SonarQube
        • GitLab Runner in Yandex Cloud
        • Dynamic Gitlab Runners in Yandex Cloud
        • GitLab runner in Kubernetes with Werf
        • Kubernetes deploy strategies
        • Kubernetes highload deploy. part 1
        • Kubernetes highload deploy. part 2
        • Kubernetes Argo Rollouts
        • Jenkins in Kubernetes
        • Ansible Semaphore
        • Image storage, scaning and signing
        • Install WireGuard with Gitlab and Terraform
        • CI/CD example fror small web app
        • Threat matrix for CI CD Pipeline
      • SIEM / SOC
        • Datadog
        • Splunk
          • Splunk — general description
        • MaxPatrol
          • MaxPatrol 8 and RedCheck Enterprise
        • QRadar IBM
        • Cloud Native Security Platform (CNAPP) - Aqua
        • OSSIM | AT&T
          • AlienVault (OSSIM) install
        • Wazuh
        • EDR
          • Cortex XDR | Palo Alto Networks
          • Cynet
          • FortiEDR | Fortinet
          • Elastic
        • Elastic
          • Install Elasticsearch, Logstash, and Kibana (Elastic Stack) on Ubuntu 22.04
          • Setting Up Elastic 8 with Kibana, Fleet, Endpoint Security, and Windows Log Collection
        • Threat Intelligence
          • MISP
          • msticpy Microsoft
          • X-Force | IBM
          • Elastic
      • VPN
        • Full-Mesh VPN fastd, tinc, VpnCloud
        • Wireguard
          • WireGuard for Internet access
          • WireGuard on MikroTik and Keenetic
          • WireGuard site to site
        • SoftEther VPN Project
        • Cisco AnyConnect client
        • OpenConnect
        • SSTP python server
      • OS hardening
        • CIS Benchmarks
      • Cloud Providers
      • OpenNebula
        • OpenNebula Edge Cloud - Open Source Cloud & Edge Computing
        • Discover OpenNebula – Open Source Cloud & Edge Computing Platform
        • OpenNebula Multi-Cloud
        • Kubernetes on OpenNebula
        • The Open Source Alternative to Nutanix
        • The Simple Alternative to OpenStack
        • OpenNebula Partner Ecosystem
      • OpenStack
        • Install manual
        • Install with DevStack
      • VM
        • Create a VHD file from a Linux disk
        • Backup / Migration
          • Coriolis
          • Proxmox Backup Server
        • oVirt
        • VMware vCenter
        • Proxmox
      • Docker
        • Container optimization
        • Ubuntu RDP container
      • LXC
        • LXD on Ubuntu 18.04
        • Install, Create and Manage LXC in Ubuntu/Debian
    • Big Data
      • OLAP data qubes
      • Storage and autoscale in Lerua
    • Machine Learning
      • Yandex YaLM 100B. GPT model
      • Kaggle Community Datasts Models
      • AI in video production
      • Image search
      • Chat bots
        • You.com
        • Chat GPT
          • Implementing GPT in NumPy
        • Jailbreak Chat
      • Coding plugins CodeWhisperer
    • Malware
      • Isiaon/Pitraix: Modern Cross-Platform Peer-to-Peer Botnet over TOR
      • theZoo A repository of LIVE malwares
    • Pentest
      • Red Team
        • MITRE ATT&CK matrix
        • C2 Frameworks
          • Brute Ratel C4
          • Cobalt Strike
          • Covenant
          • Havoc Framework
          • Merlin
          • Metasploit
          • Sillenttrinity
          • Sliver
        • Manage and report
          • Dradis Framework
          • Hexway
        • Underground
      • Social engineering
        • Social Engineer Toolkit setoolkit
      • OSINT
        • OSINT for comapny
        • Instagram fishing
      • Forensics
        • Forensics tools
      • Pentesting Methodology
      • Web
      • CI/CD Methodology
      • Cloud Methodology
        • Hacking The Cloud
      • Kubernetes Pentesting
      • Android
        • SSL Unpinning for Android applications
      • iOS
        • SSL unpinning iOS and macOS applications
      • HackBar tool
      • CyberChef Tools
      • Python virtualenv
      • IppSec - YouTube
      • Hacktricks.xyz
    • Compliance
      • 152 ФЗ. Personal data
      • PCI DSS and ГОСТ Р 57580.1-2017
      • Cloud compliance
      • ГОСТ Р 57580.1-2017 для Kubernetes
      • Kubernets as DevSecOps and NIST compliance
      • NIST SP 800-61 cyberincidece control
      • CIS Kubernetes Benchmark v1.6 - RKE2 v1.20
      • CIS Kubernetes Benchmark v1.23 - RKE2
      • Requirements for Russian Banks
      • Tools
        • Chef InSpec
        • Elastic SIEM
    • Asset management
      • CMDBuild
    • Project management
    • Incident management SRE
    • Risk management
      • IT risk management
      • BSI-Standard 200-3
    • Web Dev
      • Cookie security
      • OWASP Top 10 2021
      • Docker nginx php mysql
      • Docker tor hiddenservice nginx
      • Docker Compose wp nginx php mariadb
      • Dependency Checking
        • Nexus Analyzer
        • OWASP dependency-check
      • Yii skeeks cms
      • YiiStudio
    • Art
      • GTK Themes
      • Themes for Xfce Desktop
      • XFCE / Xubuntu Windows 95
      • Moscow events
      • Photo goods
      • Russian style gifts
    • Cryptocurrency
      • News
      • Arbitrage
      • Stocks
      • Exchange aggregators
      • Where to use
      • Prepaid cards
        • BitFree
        • Pyypl Your Money at Your Fingertips
    • IT magazines
      • WIKI and Writeups tools
        • BookStack
        • GitBook
        • MkDocs
        • Wiki.js
        • DokuWiki
    • Languages
    • Learning
      • (ISC)2
        • CISSP
      • Offensive Security
        • OSCP
        • OSEP
        • OSED
      • DevSecOps
        • Certified DevSecOps Professional (CDP)
        • Certified DevSecOps Expert (CDE)
      • Web Security Academy: PortSwigger
    • Relocation
      • London experience
      • IT visas in 2022
      • Remote work
      • Running business in UAE
    • Freenet
      • Independent online services: the philosophy of a free Internet
      • Tor Project Anonymity Online
      • I2P Anonymous Network
    • Services
      • SMS Registration
        • Registering ChatGPT in Russia
      • Local and regional eSIMs for travellers - Airalo
      • Digital busines cards
      • No KYC services and exchanges
Powered by GitBook
On this page
  • Установка и первоначальная настройка Apt-Cacher NG
  • Настройка клиента через конфигурацию APT
  • Настройка клиента через редактирование репозиториев
  • Настройка автоматического обнаружения Apt-Cacher NG
  • Эксплуатация Apt-Cacher NG

Was this helpful?

  1. Book
  2. Architect
  3. Linux
  4. Debian based

Apt-Cacher NG

Last updated 1 year ago

Was this helpful?

Любая современная система требует регулярного обновления и Linux не исключение, но как бы ни был организован этот процесс мы столкнемся с постоянной нагрузкой на канал и повышенным расходом трафика, так как каждый компьютер будет скачивать обновления самостоятельно из сети интернет. При этом, даже если вас не волнует трафик, данный процесс занимает время и не всегда зеркала репозиториев отдают данные на хорошей скорости, поэтому становится актуальным создание локального кеша пакетов, в чем нам поможет Apt-Cacher NG. Его просто установить и еще проще использовать.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Как указано в заголовке, Apt-Cacher NG - кеширующий прокси-сервер, который становится посредником между клиентом и зеркалом репозитория и сохраняет в собственное хранилище все загруженные из сети пакеты. При повторном запросе он проверит кеш и при наличии в нем требуемого пакета отдаст его локально. Это позволяет существенно экономить как трафик, так и время и последний фактор сегодня играет все более значимую роль.

Каких-то существенных требований к железу Apt-Cacher NG не предъявляет и прекрасно работает в виртуальной машине или контейнере. Все что вам нужно - это выделить достаточное место для хранилища кеша пакетов. Теоретически его размер может быть равен объему всех используемых репозиториев, но на практике запросы гораздо скромнее и зависят только от разнообразия систем и количества установленных в них пакетов.

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

Первоначально Apt-Cacher NG поддерживал только DEB-пакеты, сегодня это универсальный прокси, который можно использовать с любыми пакетными системами, но это выходит за рамки данной статьи и ниже мы будем рассматривать его применение исключительно в среде Debian или Ubuntu.

Установка и первоначальная настройка Apt-Cacher NG

Установить пакет просто, он есть в стандартных репозиториях:

apt install apt-cacher-ng

В процессе установки вам будет задан вопрос: разрешаете ли вы использование HTTP-туннелей. С одной стороны это облегчает работу с программой, в частности при доступе к HTTPS-репозиториям, с другой создает угрозу безопасности, так как пользователи смогут использовать такой туннель не только для скачивания обновлений, но и для выхода в интернет. Если для вас это не критично, то рекомендуем использование туннелей разрешить, что упростит дальнейшую эксплуатацию.

В остальном служба не требует каких-либо настроек и начинает работать сразу после установки, для приема соединений используется порт 3142 TCP. Тем не менее заглянем в конфигурационный файл /etc/apt-cacher-ng/acng.conf.

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

CacheDir: /var/cache/apt-cacher-ng

Вы можете задать собственный путь к хранилищу, однако после этого вам потребуется откорректировать его также в файле юнита /lib/systemd/system/apt-cacher-ng.service, для этого используйте команду:

systemctl edit apt-cacher-ng.service

Затем раскомментируйте и замените значение в строке:

RequiresMountsFor=/var/cache/apt-cacher-ng

Сохраните файл, перечитайте список юнитов systemd и перезапустите службу:

systemctl daemon-reload
systemctl restart apt-cacher-ng

Вторая опция, которая может быть нам интересна - это привязка службы к адресам или интерфейсам, по умолчанию Apt-Cacher NG прослушивает все сетевые интерфейсы. Чтобы изменить это поведение раскомментируйте и измените опцию:

BindAddress: localhost 192.168.7.254

Остальные опции не представляют особого практического интереса.

Если вы при установке не разрешили создание HTTP-туннелей, то доступ к репозиториям использующим HTTPS будет невозможен, поэтому если вы используете такие репозитории, то нужно отдельно прописать разрешения на доступ к ним. Для этого следует использовать отдельный конфигурационный файл, выполним:

nano /etc/apt-cacher-ng/zzz_override.conf

Если файл не существует, то он будет создан и открыт на редактирование, иначе просто открыт. Если же вам больше нравится редактор mc, то замените в команде nano на mcedit.

Для примера возьмем репозиторий браузера Opera:

deb https://deb.opera.com/opera-stable/ stable non-free

Из него нам нужно узнать адрес, т.е. deb.opera.com, затем добавьте в файл zzz_override.conf запись:

PassThroughPattern: ^deb\.opera\.com:443$

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

systemctl restart apt-cacher-ng

На этом настройка кеширующего прокси-сервера закончена.

Настройка клиента через конфигурацию APT

Чтобы клиент начал использовать для доступа к репозиториям наш кеширующий сервер его нужно указать в настройках пакетного менеджера APT, для этого создадим отдельный конфигурационный файл:

nano /etc/apt/apt.conf.d/02aptproxy

И внесем в него следующие строки:

Acquire::http::proxy "http://192.168.111.72:3142";
Acquire::ftp::proxy "http://192.168.111.72:3142";

Где 192.168.111.72:3142 - адрес и порт нашего кеширующего сервера.

Настройка клиента через редактирование репозиториев

Из всех способов этот самый трудоемкий, но может понадобиться в настольных дистрибутивах, которые могут не использовать APT для управления пакетами и установки обновлений (например, KDE Neon). В этом случае изменения следует внести прямо в адреса репозиториев. Еще один плюс этого метода, что кешировать репозитории можно выборочно. Скажем, если у вас на некоторых узлах есть собственные репозитории, которые больше нигде не используются, то можно не тратить ресурсы кеширующего прокси-сервера на сохранение их пакетов и качать их напрямую.

Для того, чтобы применить данный способ замените адрес репозитория с:

deb http://ftp.debian.org/debian bullseye main contrib

На:

deb http://192.168.111.72:3142/ftp.debian.org/debian bullseye main contrib

Для HTTPS репозиториев используйте следующую конструкцию:

deb http://192.168.111.72:3142/HTTPS///deb.opera.com/opera-stable/ stable non-free

Добавлять разрешающее правило в zzz_override.conf при этом не нужно.

Настройка автоматического обнаружения Apt-Cacher NG

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

В этом нам поможет технология Zeroconf, при этом следует отметить, что при ее использовании вы не должны использовать в локальной сети домен верхнего уровня .local.

За поддержку Zeroconf в Linux отвечает служба Avahi, установим ее на сервере:

apt install avahi-daemon

Apt-Cacher NG уже содержит готовую конфигурацию для Avahi, поэтому отдельно настраивать ничего не нужно. Для нормальной работы службы следует разрешить пакеты на порт 5353 UDP.

На клиенте следует установить пакет squid-deb-proxy-client:

apt install squid-deb-proxy-client

Никаких настроек также не требуется, все начинает работать сразу после переустановки.

Эксплуатация Apt-Cacher NG

Для контроля и управления кеширующим сервером откройте в браузере адрес: http://192.168.111.72:3142/acng-report.html. Здесь вы можете увидеть статистику, включающую общий объем скачанных пакетов и объем данных отданных локально, а также процент попадания в кеш. Данные выводятся в двух разрезах: со времени последнего запуска службы и за все время.

Также здесь можно выполнять операции обслуживания сервера, например, очистить кеш от устаревших пакетов.

Если же перестало работать обновление с сервера, а напрямую обновляется без проблем, то перейдите в раздел Direct actions и последовательно выполните действия Delete unreferenced и Delete damaged.

Как видим, настроить кеширующий прокси для обновлений Debian и Ubuntu совсем несложно, а эксплуатировать его легко. В тоже время вы получите существенную экономию времени и ресурсов на обслуживание парка Linux-систем.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

углубленном курсе по администрированию MikroTik
https://interface31.ru/tech_it/2023/08/ustanovka-i-nastroyka-aptcacherng-keshiruyushhego-servera-obnovleniy-dlya-debian-i-ubuntu.html
углубленном курсе по администрированию MikroTik