{"id":1655,"date":"2014-09-18T19:51:46","date_gmt":"2014-09-18T17:51:46","guid":{"rendered":"http:\/\/blog.sfsoft.it\/?p=1655"},"modified":"2015-04-01T17:22:33","modified_gmt":"2015-04-01T15:22:33","slug":"usare-una-cache-di-rete-per-apt-usando-squid-deb-proxy","status":"publish","type":"post","link":"http:\/\/www.sfsoft.it\/blog\/2014\/09\/18\/usare-una-cache-di-rete-per-apt-usando-squid-deb-proxy\/","title":{"rendered":"Usare una cache di rete per apt usando squid-deb-proxy"},"content":{"rendered":"<p>Nel caso avessimo molte macchine in rete e non volessimo far pesare tutto il traffico dato da apt, \u00e8 possibile usare un server proxy locale che fa da cache e fa scaricare solo la prima volta i pacchetti da internet e poi le successive richieste vengono esaudite con le copie in locale.<\/p>\n<p>Ho sempre usato apt-cacher-ng per questo compito ma ultimamente a seguito di errori sempre pi\u00f9 frequenti di firme sbagliate o file corrotti ho deciso di provare un suo rivale, squid-deb-proxy.<\/p>\n<p>Il vantaggio rispetto ad apt-cacher-ng \u00e8 che \u00e8 completamente trasparente per il pc che fa richiesta, cio\u00e8 sar\u00e0 il pc che controller\u00e0 se in rete locale esiste un proxy e in tal caso lo user\u00e0, in caso contrario uscir\u00e0 diretto normalmente.<\/p>\n<p>Si installa sia il server che il client:<\/p>\n<pre class=\"lang:default decode:true\">sudo apt-get install squid-deb-proxy squid-deb-proxy-client avahi-utils<\/pre>\n<p>L&#8217;ultimo pacchetto dovrebbe essere installato dalle dipendenze ma per sicurezza lo nominiamo, \u00e8 quello che si occupa di avvisare in rete che esiste un proxy in ascolto.<\/p>\n<p>Terminata l&#8217;installazione spegniamo eventualmente il servizio per configurarlo:<\/p>\n<pre class=\"lang:default decode:true\">sudo service squid-deb-proxy stop<\/pre>\n<p>Si edita il file di configurazione:<\/p>\n<pre class=\"lang:default decode:true \">sudo nano \/etc\/squid-deb-proxy\/squid-deb-proxy.conf<\/pre>\n<p>Ad esempio cambiamo la cartella di archiviazione:<\/p>\n<pre class=\"lang:default decode:true \"># cache_dir aufs \/var\/cache\/squid-deb-proxy 40000 16 256\r\ncache_dir aufs \/path\/new\/folder 40000 16 256<\/pre>\n<p>il 40000 indica quanto spazio riservare in MB al proxy per i pacchetti.<\/p>\n<p>Cambiando il percorso occorre dare i permessi al percorso nuovo e copiare la struttura vecchia sulla nuova oppure far rigenerare il tutto tramite il comando:<\/p>\n<pre class=\"lang:default decode:true\">sudo chown -R proxy.proxy \/path\/new\/folder\r\nsudo squid3 -f \/etc\/squid-deb-proxy\/squid-deb-proxy.conf -z<\/pre>\n<p>Ora serve andare a dire quale rete \u00e8 abilitata a usare il proxy, nel file allowed-networks-src.acl sono indicate le reti 10.0.0.0\/8, 172.16.0.0\/12, 192.168.0.0\/16 e 127.0.0.1.<\/p>\n<p>Se abbiamo un&#8217;altra classe si imposta nel file apposito:<\/p>\n<pre class=\"lang:default decode:true \">sudo nano \/etc\/squid-deb-proxy\/allowed-networks-src.acl.d\/10-default<\/pre>\n<p>Serve ancora dire da quali siti il proxy \u00e8 abilitato a lavorare, di default ha impostato i classici repository di Ubuntu ( sono nel file mirror-dstdomain.acl ), se ci serve abilitarne altri si modifica:<\/p>\n<pre class=\"lang:default decode:true\">sudo nano \/etc\/squid-deb-proxy\/mirror-dstdomain.acl.d\/10-default<\/pre>\n<p>Ad esempio aggiungiamo il repo di Mint, Mint Debian,\u00a0<del>Webmin<\/del> ( questo l&#8217;ho tolto per via di problemi ad autenticare il server da cui scaricare che puntando a sourceforge cambia spesso nome ), VirtualBox e Launchpad:<\/p>\n<pre class=\"lang:default decode:true\">packages.linuxmint.com\r\nextra.linuxmint.com\r\ndebian.linuxmint.com\r\n#download.webmin.com\r\ndownload.virtualbox.org\r\nppa.launchpad.net<\/pre>\n<p>Salviamo e avviamo il server:<\/p>\n<pre class=\"lang:default decode:true \">sudo service start squid-deb-proxy<\/pre>\n<p>Facendo un apt-get update dal server dovremmo vedere iniziare a popolarsi la cartella di cache ( sempre se abbiamo installato il client prima ).<\/p>\n<p>Ora basta andare sulle singole macchine che vogliamo gestire tramite questo modo e installiamo solo il client:<\/p>\n<pre class=\"lang:default decode:true \">sudo apt-get install squid-deb-proxy-client<\/pre>\n<p>E in maniera totalmente trasparente il pc user\u00e0 il proxy se si trova nella rete locale, mentre se si trova fuori o in un altra posizione user\u00e0 la connessione diretta.<\/p>\n<hr \/>\n<p><strong>Aggiornamento:<\/strong> nell&#8217;eventualit\u00e0 che si avessero problemi con un qualche tipo di pacchetto o si volesse installare qualcosa bypassando il proxy \u00e8 sufficente editare il file <em>\/etc\/apt\/apt.conf.d\/30autoproxy<\/em> e remmare la riga di configurazione per poi ripristinarla terminata l&#8217;installazione.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nel caso avessimo molte macchine in rete e non volessimo far pesare tutto il traffico dato da apt, \u00e8 possibile usare un server proxy locale che fa da cache e fa scaricare solo la prima volta i pacchetti da internet e poi le successive richieste vengono esaudite con le copie in locale. Ho sempre usato [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[166,15,3,77,23],"tags":[133,167,16,8,78,105,204,5],"_links":{"self":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1655"}],"collection":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/comments?post=1655"}],"version-history":[{"count":7,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1655\/revisions"}],"predecessor-version":[{"id":1765,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/1655\/revisions\/1765"}],"wp:attachment":[{"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/media?parent=1655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/categories?post=1655"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/tags?post=1655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}