Apt-cacher

Da GolemWiki.
Jump to navigation Jump to search

Cos'è APT-Cacher?

Quanto ci si trova a gestire (aggiornare/installare) numerosi computer che utilizzano con la stessa distribuzione può essere conveniente configurare una macchina che funga da cache dei repository all'interno della nostra rete locale. In questo modo il pacchetto che si desidera installare viene scaricato dalla rete esterna solo la prima volta, le richieste successive saranno soddisfatte dal server di cache della nostra LAN.

Il programma che riesce ad eseguire tale compito è: apt-cacher-ng.

È presente nei repositori ufficiali di Debian, Ubuntu ed in AUR per gli utenti Arch Linux.

NB: apt-cacher-ng può essere installato su qualsiasi computer della LAN. Nel caso in cui però sia installato sul gateway della rete si può scegliere di affiancargli un transparent proxy così da permettere alla cache di funzionare senza bisogno effettuare modifiche sul lato client.

Installazione

  • Debian e Ubuntu
$ sudo apt-get install apt-cacher-ng
  • Arch Linux
# yaout -S apt-cacher-ng


Configurazione lato server

Su Debian ed Ubuntu non appena terminata l'installazione dell'apt-cacher-ng il demone risulta già configurato ed attivo.

  • Su Arch Linux la prima volta che vogliamo abilitare il servizio dovremo eseguire i seguenti comandi:
# systemctl enable apt-cacher-ng.service
# systemctl start apt-cacher-ng.service


Configurazione lato client

  • Debian/Ubuntu

Editare il file /etc/apt/apt.conf.d/02proxy aggiungendo la seguente linea:

Acquire::http { Proxy "http://your-apt-cacher-ng-server:3142"; };
  • Arch Linux

Editare il file /etc/pacman.d/mirrorlist aggiungendo l'indirizzo del proxy a quello del mirror che solitamente è usato per scaricare i pacchetti, es.:

Server = http://mi.mirror.garr.it/mirrors/archlinux/$repo/os/$arch

Diventerà

Server = http://127.0.0.1:3142/mi.mirror.garr.it/mirrors/archlinux/$repo/os/$arch


Transparent Proxy

Affinché un proxy possa essere utilizzato in maniera trasparente (senza dover configurare niente) dai client della LAN è necessario che il traffico che si vuole cachare passi fisicamente dalla macchina in cui è in ascolto il proxy (es. il gateway).


Configurazione

Per realizzare il transparent proxy si consiglia di procurarsi un computer munito di 2 schede ethernet, una per il collegamento alla rete esterna (Internet) mediante un router e l'altra per condividere la connessione con la rete interna (LAN). Sarà necessario installare i seguenti programmi: dhcp server (es.: isc-dhcp-server, udhcpd...), squid


Schede di rete

eth0 sarà l'interfaccia con la quale ci collegheremo ad Internet, è configurata per ricevere l'IP dal dhcp del router.

eth1 è l'interfaccia con IP statico (nell'esempio è stato scelto l'indirizzo 192.168.5.1) con la quale condivideremo la connessione sulla LAN.

  • Su Debian/Ubuntu editare il file /etc/network/interfaces
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 192.168.5.1
netmask 255.255.255.0


  • Su Arch Linux
# cp /etc/network.d/examples/ethernet-dhcp /etc/network.d/eth0-dhcp

Creare il file /etc/network.d/eth1-static ed editarlo come segue:

CONNECTION='ethernet'
DESCRIPTION='static ethernet connection'
INTERFACE='eth1'
IP='static'
ADDR='192.168.5.1'
SKIPNOCARRIER='yes'

Aggiungere le due nuove configurazioni di rete nel file /etc/conf.d/netcfg

NETWORKS=(eth1-static @eth0-dhcp)

Controllare che in /etc/rc.conf sia presente alla voce DAEMONS

net-profiles


dhcpd

Per facilitare la connessione dei client si consiglia di installare un server dhcp che stia in ascolto sull'interfaccia eth1.

  • Debian/Ubuntu
$ sudo apt-get install isc-dhcp-server

Editare /etc/dhcpd.conf aggiungendo la configurazione per la rete interna (eth1); es.:

subnet 192.168.5.1 netmask 255.255.255.0 {
range 192.168.5.100  192.168.5.200;
}
  • Arch Linux
# yaourt -S udhcp

Editare /etc/udhcpd.conf aggiungendo la configurazione per la rete interna (eth1); es.:

server          192.168.5.1
start           192.168.5.100
end             192.168.5.200
interface       eth1
option  subnet  255.255.255.0
option  dns     8.8.8.8
option  lease   259200

Squid

Jesred

Firewall

NB: il firewall di Linux è iptables, normalmente è installato di default in tutte le distribuzioni, se non lo fosse sarà necessario installarlo.