Centralizar acceso a actualizaciones para varias distros

Discusión en 'GNU/Linux' iniciado por Zuljin, 19 May 2017.

Suscripciones al tema:
Este tema está siendo suscrito por: 5 usuarios.
  1. Zuljin

    Zuljin Fundador Staff Fundador OVERLORD Old School Miembro Regular

    Registrado:
    15 Jan 2004
    Mensajes:
    6,227
    Likes Recibidos:
    1,201
    Trofeos:
    198
    Amigos, necesito que me ayuden a buscar la mejor solución para el siguiente problema:

    Actualmente tenemos varias máquinas virtuales con RedHat, CentOS y Oracle Linux, y por ahí algunas con Suse y Debian. Además, tenemos varias versiones de cada sistema operativo.

    Por defecto, ningún servidor tiene acceso a internet. Si alguna requiere acceso para actualizaciones le damos el permiso al repositorio correspondiente mediante una regla en el firewall. El problema es que, aparte de ser un proceso burocrático, quedamos con demasiadas reglas.
    Me pasó que migré un servidor de RedHat a Centos y tuve que hacer la pedida para darle permiso a los repos de Centos.

    ¿Es posible contar con un servidor "pivote" que tenga TOOODOS los accesos a TOODOS los repos necesarios (RedHat, CentOS, y que los otros servidores se contacten con ese server pivote para pedirle acceso limitado a internet? Así, me evito tener que pedir acceso a los repos para cada server nuevo que se cree.

    O también puede ser que ese servidor "pivote" sea una especie de repositorio local de varias distris y versiones, pero que tenga sólo las últimas versiones de los paquetes.
    O mejor aún, que localmente no almacene ningún paquete: derive la pedida a los repositorios oficiales en internet.

    Bueno, esa es la idea. Se me ocurre que es un problema recurrente y ya debe existir una solución que implantar. Les agradecería que me orienten, plis.
     
  2. galansinchance

    galansinchance enajenao Old School Miembro Regular

    Registrado:
    3 Jan 2006
    Mensajes:
    7,200
    Likes Recibidos:
    269
    Trofeos:
    188
    con squid se podrá hacer algo??
     
  3. yakko

    yakko pingüino mal genio Old School Miembro Regular

    Registrado:
    24 Aug 2004
    Mensajes:
    16,722
    Likes Recibidos:
    118
    Trofeos:
    178
    los repos no son nada más que un montón de paquetes en un directorio y un par de index, puedes sincronizar los repos oficiales (con rsync, todo los días si quieres) a un disco local y en el dns en la vista interna cambias las ips de los repos oficiales por el repo local, si te da paja hacer lo de los dns, puedes crear un archivo de config de repo para cada distro que apunte a tu servidor de repos.

    la única paja son los repos que no son de acceso público, como el de rhel o de sles, pero puedes acceder a ellos desde una maquina con las licencias válidas y hacer lo mismo.
     
  4. VittokoX

    VittokoX GΣΣK REPORTERO Old School Miembro Regular

    Registrado:
    1 Oct 2007
    Mensajes:
    4,064
    Likes Recibidos:
    1,027
    Trofeos:
    148
    Oye, y será mucho leseo tener un Squid al que SI le des acceso a internet, y cuando algun server necesite acceso a internet (para bajar nuevos paquetes)
    configurar el squid dentro del yum.conf (o del apt, depende del gusto) y listo? :zippy
    Así te evitas estar bajando TOOOODOS los repositorios de TOOOODAS las versiones de TOOOOODOS los sistemas operativos que manejas. Y sólo te preocupas de subir el servicio de Squid (o de prender el servidor de proxy) cuando necesites instalar algo y voilá :zippyte
     
  5. yakko

    yakko pingüino mal genio Old School Miembro Regular

    Registrado:
    24 Aug 2004
    Mensajes:
    16,722
    Likes Recibidos:
    118
    Trofeos:
    178
    Sirve sólo para los repos libres

    Enviado desde mi HTC_M10h mediante Tapatalk
     
  6. VittokoX

    VittokoX GΣΣK REPORTERO Old School Miembro Regular

    Registrado:
    1 Oct 2007
    Mensajes:
    4,064
    Likes Recibidos:
    1,027
    Trofeos:
    148
    Al menos en red hat si se puede usar el proxy dentro del Red Hat Suscription Manager :zippyjackson
    https://access.redhat.com/solutions/57669
     
  7. Zuljin

    Zuljin Fundador Staff Fundador OVERLORD Old School Miembro Regular

    Registrado:
    15 Jan 2004
    Mensajes:
    6,227
    Likes Recibidos:
    1,201
    Trofeos:
    198
    Gracias, parei que squid es la mano. Voy a intentar hacer un servicio para todos los servidores de todas las distros. Si me resulta y queda bien hacemos una guía.
     
    A dwyer le gusta esto.
  8. yakko

    yakko pingüino mal genio Old School Miembro Regular

    Registrado:
    24 Aug 2004
    Mensajes:
    16,722
    Likes Recibidos:
    118
    Trofeos:
    178
    satelite es de pago, y no sé si suse tiene algo similar.
     
  9. VittokoX

    VittokoX GΣΣK REPORTERO Old School Miembro Regular

    Registrado:
    1 Oct 2007
    Mensajes:
    4,064
    Likes Recibidos:
    1,027
    Trofeos:
    148
    Basta con usar un fierro viejo (o una vm minúscula) y chantarle squid :yao

    Enviado desde mi MotoE2 mediante Tapatalk
     
  10. Zuljin

    Zuljin Fundador Staff Fundador OVERLORD Old School Miembro Regular

    Registrado:
    15 Jan 2004
    Mensajes:
    6,227
    Likes Recibidos:
    1,201
    Trofeos:
    198
    Ya cabros. 20 minutos y configuré un Centos 7 con squid a partir de una lista blanca. Por lo menos para un servidor con Oracle Linux funciona. Mañana voy a probar Centos y RedHat.

    Básicamente fue un centos 7 en instalación mínima y acceso a internet, instalar el squid, agregar un archivo de texto con la lista de los sitios permitodos (*.centos.org, *.oracle.com, *.redhat.com) y listo.
     
    A miguelwill y VittokoX le gusta esto.
  11. Zuljin

    Zuljin Fundador Staff Fundador OVERLORD Old School Miembro Regular

    Registrado:
    15 Jan 2004
    Mensajes:
    6,227
    Likes Recibidos:
    1,201
    Trofeos:
    198
    Update.

    El Squid es el mejor invento de la humanidad, empatando con la rueda. Una máquina virtual cagona con centos 7 y 2 gb de ram le da acceso a actualizaciones a los Centos, oracle linux y hasta Windows 2012. Luego cuando tenga tiempo voy a poner los parámetros que utilicé: es sencillísimo, me demoré pocazo en tenerlo andando.
     
    A galansinchance le gusta esto.
  12. VittokoX

    VittokoX GΣΣK REPORTERO Old School Miembro Regular

    Registrado:
    1 Oct 2007
    Mensajes:
    4,064
    Likes Recibidos:
    1,027
    Trofeos:
    148
    Te lo dije :zippyte
     
  13. Harima

    Harima Pegao al tarro Miembro Regular

    Registrado:
    15 May 2008
    Mensajes:
    1,858
    Likes Recibidos:
    1,023
    Trofeos:
    148
    Lo instalaste solo para el trafico o le pusiste que guardara los paquetes en caché??
     
  14. Zuljin

    Zuljin Fundador Staff Fundador OVERLORD Old School Miembro Regular

    Registrado:
    15 Jan 2004
    Mensajes:
    6,227
    Likes Recibidos:
    1,201
    Trofeos:
    198
    Sólo para el tráfico. Tenemos buen ancho de banda y no es que actualicemos a cada rato.
     
    A Harima le gusta esto.
  15. Gran_Maestre

    Gran_Maestre Copuchento Miembro Regular

    Registrado:
    1 Oct 2005
    Mensajes:
    688
    Likes Recibidos:
    51
    Trofeos:
    163
  16. yakko

    yakko pingüino mal genio Old School Miembro Regular

    Registrado:
    24 Aug 2004
    Mensajes:
    16,722
    Likes Recibidos:
    118
    Trofeos:
    178
    Yum install squid

    Y le permites todo el tráfico
     
  17. VittokoX

    VittokoX GΣΣK REPORTERO Old School Miembro Regular

    Registrado:
    1 Oct 2007
    Mensajes:
    4,064
    Likes Recibidos:
    1,027
    Trofeos:
    148
    Una ACL con los servidores que lo van a usar y listo :zippy
     
  18. Zuljin

    Zuljin Fundador Staff Fundador OVERLORD Old School Miembro Regular

    Registrado:
    15 Jan 2004
    Mensajes:
    6,227
    Likes Recibidos:
    1,201
    Trofeos:
    198
    Es super sencillo.

    - Instala Centos 7 en su versión mínima.


    - Darle acceso a internet (tiene que llegar a las distros que le indiques).


    - Instalar squid.

    Code:
          # yum install squid
       

    - Agregar parámetros al archivo de configuracion /etc/squid/squid.conf

    Code:
    http_port 8080
    
    cache_mem 400 MB
    maximum_object_size 1024 MB
    maximum_object_size_in_memory 1024 KB
    
    access_log /var/log/squid/access.log squid
    
    # Size should be about 60% of your free space
    cache_dir ufs /var/spool/squid 15000 16 256
    
    
    acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
    acl localnet src 192.168.0.0/16 # RFC1918 possible internal network  Configura tu intranet. 
    acl localnet src fc00::/7       # RFC 4193 local private network range
    acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
    
    # Archivo txt con los dominios permitidos. 
    acl whitelist dstdomain "/etc/squid/permitidos.txt"  
    
    acl SSL_ports port 443
    acl Safe_ports port 80          # http
    acl Safe_ports port 21          # ftp
    acl Safe_ports port 443         # https
    acl Safe_ports port 70          # gopher
    acl Safe_ports port 210         # wais
    acl Safe_ports port 1025-65535  # unregistered ports
    acl Safe_ports port 280         # http-mgmt
    acl Safe_ports port 488         # gss-http
    acl Safe_ports port 591         # filemaker
    acl Safe_ports port 777         # multiling http
    acl CONNECT method CONNECT
    
    #
    # Recommended minimum Access Permission configuration:
    #
    # Deny requests to certain unsafe ports
    http_access deny !Safe_ports
    
    # Deny CONNECT to other than secure SSL ports
    http_access deny CONNECT !SSL_ports
    
    # Only allow cachemgr access from localhost
    http_access allow localhost manager whitelist
    http_access deny manager
    
    # We strongly recommend the following be uncommented to protect innocent
    # web applications running on the proxy server who think the only
    # one who can access services on "localhost" is a local user
    #http_access deny to_localhost
    
    #
    # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
    #
    
    # Example rule allowing access from your local networks.
    # Adapt localnet in the ACL section to list your (internal) IP networks
    # from where browsing should be allowed
    http_access allow localnet
    http_access allow localhost
    
    # And finally deny all other access to this proxy
    http_access deny all
    
    # Squid normally listens to port 3128
    http_port 3128
    
    # Uncomment and adjust the following to add a disk cache directory.
    #cache_dir ufs /var/spool/squid 100 16 256
    
    # Leave coredumps in the first cache dir
    coredump_dir /var/spool/squid
    
    #
    # Add any of your own refresh_pattern entries above these.
    #
    refresh_pattern ^ftp:           1440    20%     10080
    refresh_pattern ^gopher:        1440    0%      1440
    refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
    refresh_pattern .               0       20%     4320
    
    

    - Crea el archivo /etc/squid/permitidos.txt con los accesos necesarios a las distros. Este es el contenido de mi archivo:

    Code:
    *.centos.org
    *.oracle.com
    *.dell.com
    *.redhat.com
    
    # Mirrors chilenos de Centos
    *.gtdinternet.com
    *.utfsm.cl
    
    # Mirrors para hora
    *.iana.org
    
    # Windows Update
    *.microsoft.com
    *.windowsupdate.com
    *.windows.com
    

    - Configurar squid para que levante al inicio y luego subir el servicio

    Code:
       # systemctl enable squid
       # systemctl start squid
    
    

    - Puedes configurar el firewall del servidor squid para que deje entrar los requerimientos o derechamente deshabilitarlos, si es que confias en el resto de los equipos que se van a conectar. No olvides deshabilitar selinux.


    - En el servidor destino agregar esta línea en el archivo /etc/yum.conf

    Code:
    proxy=http://host_squid:3128
    
    
    y listo.



    ¿Alguien sabe como configurar la caché para que retenga 5 GB y 2 meses?

    Gracias
     
  19. VittokoX

    VittokoX GΣΣK REPORTERO Old School Miembro Regular

    Registrado:
    1 Oct 2007
    Mensajes:
    4,064
    Likes Recibidos:
    1,027
    Trofeos:
    148
    Deja la partición en 5 GB nomas po :zippyte

    Code:
    cache_dir ufs /var/spool/squid 5000 16 256
     
  20. yakko

    yakko pingüino mal genio Old School Miembro Regular

    Registrado:
    24 Aug 2004
    Mensajes:
    16,722
    Likes Recibidos:
    118
    Trofeos:
    178
    Cache_dir aufs /var/spool/squid 5190 16 256
     

Compartir!

Share
Loading...