Quando hoje o tráfego e as velocidades de Internet casuais são medidas em dezenas de Gigabytes em um piscar de olhos mesmo para clientes comuns de Internet, você pode perguntar qual é o propósito de configurar um cache de repositório local em LANs?

Uma das razões é reduzir a largura de banda da Internet e aumentar a velocidade ao puxar pacotes do cache local. Mas, também, outra razão importante deveria ser a privacidade. Vamos imaginar que os clientes da sua organização são restritos na Internet, mas suas caixas Linux precisam de atualizações regulares do sistema em software e segurança ou apenas necessitam de novos pacotes de software. Para ir mais além, imagine um servidor que opera em uma rede privada, contém e serve informações secretas sensíveis apenas para um segmento de rede restrito e nunca deve ser exposto à Internet pública.
Estas são apenas algumas razões pelas quais você deve construir um espelho de repositório local em sua LAN, delegar um servidor de borda para essa tarefa e configurar os clientes internos para pegar software do seu espelho de cache.
O Ubuntu fornece o pacote apt-mirror para sincronizar o cache local com os repositórios oficiais do Ubuntu, um espelho que pode ser configurado através de um servidor HTTP ou FTP para compartilhar seus pacotes de software com clientes do sistema local.
Para um cache de espelho completo, o seu servidor precisa ter pelo menos 120G de espaço livre reservado para os repositórios locais.
Requisitos
- No mínimo 120G de espaço livre
- Servidor Proftpd instalado e configurado em modo anônimo.
Passo 1: Configurar o Servidor
1. A primeira coisa que você pode querer fazer é identificar os espelhos do Ubuntu mais próximos e mais rápidos perto de sua localização visitando a página do Ubuntu Archive Mirror e selecionando seu país.

Se o seu país oferecer mais espelhos, você deve identificar o endereço do espelho e fazer alguns testes com base nos resultados do ping ou do traceroute.

2. O próximo passo é instalar o software necessário para configurar o repositório de espelhamento local. Instale os pacotes apt-mirror e proftpd e configure o proftpd como um daemon do sistema autônomo.
$ sudo apt-get install apt-mirror proftpd-basic


3. Agora é hora de configurar o servidor apt-mirror. Abra e edite o arquivo /etc/apt/mirror.list adicionando suas localizações mais próximas (Passo 1) – opcional, se os espelhos padrão forem suficientemente rápidos ou se você não estiver com pressa – e escolha o caminho do sistema onde os pacotes devem ser baixados. Por padrão, o apt-mirror usa a localização /var/spool/apt-mirror para o cache local, mas neste tutorial vamos usar a alteração do caminho do sistema e apontar a diretiva set base_path para a localização /opt/apt-mirror.
$ sudo nano /etc/apt/mirror.list

Também é possível descomentar ou adicionar outras listas de origem antes da diretiva clean – inclusive fontes Debian – dependendo das versões de Ubuntu que seus clientes usam. Você pode adicionar fontes do 12.04, se desejar, mas esteja ciente de que adicionar mais fontes requer mais espaço livre.
Para listas de origem do Debian, visite a Wiki do Debian ou o Gerador de Lista de Fontes do Debian.
4. Tudo o que você precisa fazer agora é criar o diretório de caminho e executar o comando apt-mirror para sincronizar os repositórios oficiais do Ubuntu com nosso espelho local.
$ sudo mkdir -p /opt/apt-mirror $ sudo apt-mirror

Como você pode ver, o apt-mirror prossegue com a indexação e o download de arquivos apresentando o número total de pacotes baixados e seu tamanho. Como podemos imaginar, 110-120 GB é grande o suficiente para levar algum tempo para baixar.
Você pode executar o comando ls para visualizar o conteúdo do diretório.

Uma vez que o download inicial estiver concluído, os downloads futuros serão pequenos.
5. Enquanto o apt-mirror baixa os pacotes, você pode configurar seu servidor Proftpd. A primeira coisa que você precisa fazer é criar um arquivo de configuração anônima para o proftpd executando o seguinte comando.
$ sudo nano /etc/proftpd/conf.d/anonymous.conf
Em seguida, adicione o seguinte conteúdo ao arquivo anonymous.conf e reinicie o serviço proftpd.
<Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp RequireValidShell off # MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>

6. O próximo passo é vincular o caminho do apt-mirror ao caminho do proftpd executando um bind mount com o seguinte comando.
$ sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Para verificar, execute o comando mount sem parâmetro ou opção.
$ mount

7. O último passo é garantir que o servidor Proftpd seja iniciado automaticamente após o reinício do sistema e que o diretório de mirror-cache seja montado automaticamente no caminho do servidor ftp. Para habilitar automaticamente o proftpd, execute o seguinte comando.
$ sudo update-rc.d proftpd enable
Para montar automaticamente o cache apt-mirror no proftpd, abra e edite o arquivo /etc/rc.local.
$ sudo nano /etc/rc.local
Adicione a seguinte linha antes da diretiva exit 0. Utilize 5 segundos de atraso antes de tentar montar.
sleep 5 sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Se você baixa pacotes dos repositórios Debian, execute os seguintes comandos e verifique se as configurações apropriadas para o arquivo rc.local são habilitadas.
$ sudo mkdir /srv/ftp/debian $ sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/

8. Para uma sincronização diária do apt-mirror, você também pode criar um trabalho agendado para ser executado às 2h todos os dias. Execute o comando crontab, selecione seu editor preferido e adicione a seguinte sintaxe na linha.
$ sudo crontab –e

Na última linha, adicione a seguinte linha.
0 2 * * * /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log

Agora, todos os dias às 2h, o cache do repositório do seu sistema será sincronizado com os espelhos oficiais do Ubuntu e um arquivo de registro será criado.
Passo 2: Configurar clientes
9. Para configurar os clientes locais do Ubuntu, edite o arquivo /etc/apt/source.list nos computadores clientes para apontar para o endereço IP ou nome do host do servidor apt-mirror – substitua o protocolo http por ftp e, em seguida, atualize o sistema.
deb ftp://192.168.1.13/ubuntu trusty universe deb ftp://192.168.1.13/ubuntu trusty main restricted deb ftp://192.168.1.13/ubuntu trusty-updates main restricted ## Ad so on….

10. Para visualizar os repositórios, você pode realmente abrir um navegador e apontar para o endereço IP do servidor ou nome de domínio usando o protocolo FTP.

O mesmo sistema se aplica também aos clientes e servidores Debian, a única mudança necessária são o espelho do Debian e a lista de fontes.
Também, se você instalar um sistema Ubuntu ou Debian do zero, forneça seu próprio espelho local manualmente com o protocolo ftp quando o instalador solicitar qual repositório usar.
A grande vantagem de ter seus próprios repositórios locais é que você está sempre atualizado e seus clientes locais não precisam se conectar à Internet para instalar atualizações ou software.
Source:
https://www.tecmint.com/setup-local-repositories-in-ubuntu/