Comment accéder à Red Hat Subscription Manager (RHSM) via un pare-feu ou un proxy

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 7 (et plus)
  • Red Hat Enterprise Linux 6.1 (et plus)
  • Red Hat Enterprise Linux 5.8 (et plus)
  • Red Hat Subscription Management (RHSM)
  • Red Hat Satellite 5.6 and 5.7 (si migré de RHN -> RHSM)
  • Red Hat Satellite 5.8
  • Red Hat Satellite 6

Issue

  • Comment configurer mon système pour que yum puisse accéder à Red Hat Subscription Management (RHSM) via un pare-feu ou un proxy?
  • Quelles adresses URL et ports dois-je configurer dans mon serveur proxy, afin de pouvoir accéder à RHSM?
  • Comment accéder à RHSM (yum) via un pare-feu?
  • Enregistrement impossible en raison d'une erreur réseau.
  • Red Hat Satellite 6 est incapable de synchroniser le contenu de Red Hat. Je suppose que c'est le pare-feu de la société qui bloque le trafic. Quels noms d'hôte dois-je donner à l'équipe de sécurité réseau, afin de permettre la synchronisation du contenu?
  • Notre équipe de réseau affirme avoir besoin d'adresses IP pour permettre à notre installation Red Hat Satellite 6 de parler au Content Delivery Network. Nous ne pouvons pas utiliser des noms d'hôte et devons donc utiliser des adresses IP ou des gammes.

Resolution

Il est nécessaire d'autoriser les noms d'hôtes et les ports suivants sur le pare-feu du réseau sortant, afin de permettre à yum et subscription-manager de synchroniser le Serveur Satellite avec les dépôts de Red Hat Satellite 6:

  • subscription.rhn.redhat.com:443 [https] ET subscription.rhsm.redhat.com:443 [https] (C'est la nouvelle adresse par défaut dans les plus nouvelles versions de RHEL 7)
  • cdn.redhat.com:443 [https]
  • *.akamaiedge.net:443 [https] OU *.akamaitechnologies.com:443 [https]

Il n'est pas recommandé de spécifier les adresses IP, parce que les paquets sont distribués via la réseau Akamai et les adresses IP sont sujettes à modification. De toute façon, si vous pare-feu ne peut pas utiliser le filtrage par nom d'hôte, Red Hat offre un pool d'adresses IP qui devrait fournir la livraison de CDN.

Note: Si le système est derrière un proxy HTTP, ajoutez les détails dans /etc/rhsm/rhsm.conf comme suit:

# an http proxy server to use (enter server FQDN)
proxy_hostname = myproxy.example.com 

# port pour le serveur http proxy 
proxy_port = 8080

# nom d'utilisateur pour l'authentification sur un http proxy, si nécessaire
proxy_user = proxy_username

# mot de passe pour authentification http proxy de base, si nécessaire 
proxy_password = proxy_password

Root Cause

  • Le pare-feu ou le proxy n'est pas configuré pour accéder au RHSM.
  • Certains pare-feu ou organisations ne peuvent pas utiliser des noms d'hôte et pourraient nécessiter un contrôle plus granulaire.

Diagnostic Steps

Quelques exemples d'erreurs vus lorsque Subscription-Manager n'a pas pu accéder aux URL ci-dessus à cause du pare-feu et/ou proxy

  • On remarque cette erreur (dans /var/log/rhsm/rhsm.log) lorsqu'on essaie d'exécuter 'subscription-manager register':
2014-04-16 18:07:53,063 [INFO]  @connection.py:657 - Connection Built: host: subscription.rhn.redhat.com, port: 443, handler: /subscription
2014-04-16 18:07:53,108 [DEBUG]  @connection.py:420 - Loading CA PEM certificates from: /etc/rhsm/ca/
2014-04-16 18:07:53,108 [DEBUG]  @connection.py:402 - Loading CA certificate: '/etc/rhsm/ca/redhat-uep.pem'
2014-04-16 18:07:53,109 [DEBUG]  @connection.py:402 - Loading CA certificate: '/etc/rhsm/ca/candlepin-stage.pem'
2014-04-16 18:07:53,109 [DEBUG]  @connection.py:426 - Using proxy: proxy.example.com:3128
2014-04-16 18:07:53,109 [DEBUG]  @connection.py:441 - Making request: GET https://subscription.rhn.redhat.com:443/subscription/
2014-04-16 18:07:53,173 [ERROR]  @utils.py:361 - Error while checking server version: [Errno 111] Connection refused
2014-04-16 18:07:53,174 [ERROR]  @utils.py:363 - [Errno 111] Connection refused
Traceback (most recent call last):
  File "/usr/share/rhsm/subscription_manager/utils.py", line 341, in get_server_versions
    if cp.supports_resource("status"):
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 683, in supports_resource
    self._load_supported_resources()
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 670, in _load_supported_resources
    resources_list = self.conn.request_get("/")
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 541, in request_get
    return self._request("GET", method)
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 448, in _request
    conn.request(request_type, handler, body=body, headers=headers)
  File "/usr/lib64/python2.6/httplib.py", line 914, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.6/httplib.py", line 951, in _send_request
    self.endheaders()
  File "/usr/lib64/python2.6/site-packages/rhsm/connection.py", line 200, in endheaders
    httpslib.HTTPSConnection.endheaders(self)
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 780, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.6/httplib.py", line 739, in send
    self.connect()
  File "/usr/lib64/python2.6/site-packages/M2Crypto/httpslib.py", line 192, in connect
    HTTPConnection.connect(self)
  File "/usr/lib64/python2.6/httplib.py", line 720, in connect
    self.timeout)
  File "/usr/lib64/python2.6/socket.py", line 567, in create_connection
    raise error, msg
error: [Errno 111] Connection refused

... la solution a été d'ajouter l'adresse IP de la machine client dans le pare-feu de la société, afin de permettre l'accès à subscription.rhn.redhat.com.

  • On remarque cette erreur lorsqu'on exécute yum:
[root@rhsm ~]# yum update
Loaded plugins: product-id, rhnplugin, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
This system is receiving updates from RHN Classic or RHN Satellite.
Error: failed to retrieve repodata/89cb7993fa65f2293e1b188014e0266343598f276e1af053c3189f6db6b488b1-primary.xml.gz from rhel-x86_64-server-6
error was [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 407 Proxy Authentication Required"

... la solution a été d'ajouter l'information proxy dans /etc/rhsm/rhsm.conf

  • On remarque cette erreur lors de l'enregistrement d'un système, qui est derrière un pare-feu, sur RHSM :
Unable to verify server's identity: (104, 'Connection reset by peer')
  • la sortie tcpdump montre que le pare-feu a des règles dans le 'WEB Filter' qui pourraient entraver / modifier les paquets envoyés au serveur

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.