Configurar repositorios locales con apt-mirror en sistemas Ubuntu y Debian


Cuando en la actualidad el tráfico y las velocidades de Internet ocasionales se miden en adolescentes de Giga en un abrir y cerrar de ojos, incluso para los clientes de Internet normales, ¿cuál es el propósito de configurar una memoria caché de repositorio local en LAN?

Una de las razones es reducir el ancho de banda de Internet y la alta velocidad al extraer paquetes de la caché local. Pero, también, otra razón importante debería ser la privacidad. Imaginemos que los clientes de su organización tienen acceso restringido a Internet, pero sus equipos Linux necesitan actualizaciones periódicas del sistema sobre software y seguridad o simplemente necesitan nuevos paquetes de software. Para ir más allá, un servidor que se ejecuta en una red privada, contiene y sirve información confidencial secreta solo para un segmento de red restringido, y nunca debe estar expuesto a la Internet pública.

Estas son solo algunas de las razones por las que debería crear un espejo de repositorio local en su LAN, delegar un servidor perimetral para este trabajo y configurar clientes internos para extraer software de su espejo de caché.

Ubuntu proporciona el paquete apt-mirror para sincronizar la caché local con los repositorios oficiales de Ubuntu, espejo que se puede configurar a través de un servidor HTTP o FTP para compartir su paquetes de software con clientes del sistema local.

Para un caché espejo completo, su servidor necesita al menos 120G de espacio libre reservado para repositorios locales.

  1. Mínimo 120 G de espacio libre
  2. Servidor Proftpd instalado y configurado en modo anónimo.

Paso 1: configurar el servidor

1. Lo primero que puede hacer es identificar los espejos de Ubuntu más cercanos y rápidos cerca de su ubicación visitando la página de Ubuntu Archive Mirror y seleccione su país .

Si su país proporciona más réplicas, debe identificar la dirección de la réplica y realizar algunas pruebas basadas en los resultados de ping o traceroute .

2. El siguiente paso es instalar el software necesario para configurar el repositorio espejo local. Instale los paquetes apt-mirror y proftpd y configure proftpd como un demonio del sistema independiente.

$ sudo apt-get install apt-mirror proftpd-basic

3. Ahora es el momento de configurar el servidor apt-mirror . Abra y edite el archivo /etc/apt/mirror.list agregando sus ubicaciones más cercanas ( Paso 1 ) - opcional, si los espejos predeterminados son lo suficientemente rápidos o no está en Date prisa y elige la ruta del sistema donde se deben descargar los paquetes. Por defecto, apt-mirror usa la ubicación /var/spool/apt-mirror para la caché local, pero en este tutorial usaremos cambiar la ruta del sistema y establecer el punto directiva base_path a la ubicación /opt/apt-mirror .

$ sudo nano /etc/apt/mirror.list

También puede descomentar o agregar otra lista de fuentes antes de la directiva clean, incluidas las fuentes de Debian , dependiendo de las versiones de Ubuntu que usen sus clientes. Puede agregar fuentes de 12.04 , si lo desea, pero tenga en cuenta que agregar más fuentes requiere más espacio libre.

Para obtener listas de fuentes de Debian , visite el Generador de listas de fuentes de Debian.

4. Todo lo que necesita hacer ahora es crear un directorio de ruta y ejecutar el comando apt-mirror para sincronizar los repositorios oficiales de Ubuntu con nuestro espejo local.

$ sudo mkdir -p /opt/apt-mirror
$ sudo apt-mirror

Como puede ver, apt-mirror procede a indexar y descargar archivos que presentan el número total de paquetes descargados y su tamaño. Como podemos imaginar, 110-120 GB es lo suficientemente grande como para demorar la descarga.

Puede ejecutar el comando ls para ver el contenido del directorio.

Una vez que se complete la descarga inicial, las descargas futuras serán pequeñas.

5. Mientras apt-mirror descarga paquetes, puede configurar su servidor Proftpd . Lo primero que debe hacer es crear un archivo de configuración anónimo para proftpd ejecutando el siguiente comando.

$ sudo nano /etc/proftpd/conf.d/anonymous.conf

Luego agregue el siguiente contenido al archivo anonymous.conf y reinicie el servicio proftd.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
#   MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>

6. El siguiente paso es vincular la ruta de apt-mirror a la ruta de proftpd ejecutando un montaje de enlace emitiendo el comando.

$ sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/

Para verificarlo, ejecute el comando mount sin parámetro u opción.

$ mount

7. El último paso es asegurarse de que el servidor Proftpd se inicie automáticamente después del reinicio del sistema y el directorio mirror-cache también se monte automáticamente en el servidor ftp. camino. Para habilitar proftpd automáticamente, ejecute el siguiente comando.

$ sudo update-rc.d proftpd enable

Para montar automáticamente la caché apt-mirror en proftpd, abra y edite el archivo /etc/rc.local .

$ sudo nano /etc/rc.local

Agregue la siguiente línea antes de la directiva exit 0 . También use un retraso de 5 segundos antes de intentar montar.

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Si extrae paquetes de los repositorios de Debian , ejecute los siguientes comandos y asegúrese de que la configuración adecuada para el archivo rc.local anterior esté habilitada.

$ sudo mkdir /srv/ftp/debian
$ sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/

8. Para una sincronización apt-mirror diaria, también puede crear un trabajo de programación del sistema para que se ejecute en el comando crontab, seleccione su editor preferido y luego agregue la siguiente sintaxis de línea.

$ sudo crontab –e

En la última línea agregue la siguiente línea.

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log

Ahora, todos los días a las 2 a. M. , el caché del repositorio de su sistema se sincronizará con los espejos oficiales de Ubuntu y creará un archivo de registro.

Paso 2: configurar clientes

9. Para configurar clientes Ubuntu locales, edite /etc/apt/source.list en los equipos cliente para que apunte a la dirección IP o al nombre de host de apt-mirror servidor - reemplace el protocolo http con ftp, luego actualice el 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 ver los repositorios, puede abrir un navegador y apuntar a la dirección IP de su servidor del nombre de dominio mediante el protocolo FTP.

El mismo sistema se aplica también a los clientes y servidores Debian , los únicos cambios necesarios son réplica de Debian y lista de fuentes .

Además, si instala un nuevo sistema Ubuntu o Debian , proporcione su espejo local manualmente con el protocolo ftp cuando el instalador le pregunte qué repositorio usar.

Lo mejor de tener sus propios repositorios espejo locales es que siempre está actualizado y sus clientes locales no tienen que conectarse a Internet para instalar actualizaciones o software.