3 votes

Contrôler les en-têtes d'apt-get

J'ai plusieurs machines sur le terrain et je veux avoir des mises à jour sans surveillance, ce qui semble pris en charge par apt-get. Cependant, je veux mettre à jour différents hôtes vers différentes versions, par exemple en renvoyant différents fichiers Packages.gz, je pense. Mais en inspectant les en-têtes http envoyés par apt-get, je vois ceci :

Content-Length: 
User-Agent: Debian APT-HTTP/1.3 (1.0.1ubuntu2)
Host: localhost:9991
Cache-Control: max-age=0
Content-Type: 

Il n'y a pas d'information sur l'expéditeur de la demande. Je comprends que c'est très bien pour les cas d'utilisation courants, mais y a-t-il un moyen de configurer apt-get pour qu'il envoie, par exemple, un jeton JWT dans le champ Authorization en-tête ?

1voto

jrtapsell Points 365

Je ne pense pas que ce soit possible directement, mais je vois deux façons de contourner le problème :

1) Proxy

2) Système de gestion du serveur

Proxy

Vous pouvez configurer un proxy sur chaque serveur géré qui ajoute les en-têtes que vous voulez avant de transférer les demandes, de sorte que du côté du serveur de gestion, vos demandes ont les en-têtes requis. Pour ce faire, vous pouvez soit utiliser un proxy préconstruit, soit utiliser la fonction este comme point de départ.

Système de gestion du serveur

Une autre option consiste à utiliser un système comme Landscape, qui présente les caractéristiques suivantes.

  • Vous pouvez gérer tous vos serveurs à partir d'une interface web ou en utilisant l'API fournie.
  • Vous pouvez définir des règles de mise à jour
  • Vous pouvez pousser de nouveaux paquets vers des serveurs ou des ensembles de serveurs.
  • Vous pouvez exécuter scripts sur les serveurs gérés.
  • Vous pouvez faire en sorte que des courriels soient envoyés automatiquement et que des paquets soient appliqués automatiquement lorsque des failles de sécurité affectent vos serveurs.
  • Vous pouvez vérifier l'état et les informations du serveur

Il est gratuit pour un maximum de 10 serveurs, les instructions d'installation sont les suivantes aquí

Edita:

Après avoir vérifié le source il semble qu'il ne soit pas possible de définir des en-têtes personnalisés à ce stade, seuls les en-têtes suivants semblent pouvoir être définis :

  • Host => Nom d'hôte du serveur
  • Cache-Control => Utilisé pour la mise en cache.
  • Accept => Le type de réponse à envoyer
  • Gamme => Utilisé pour demander une quantité donnée de données.
  • If-Modified-Since => Utilisé pour obtenir uniquement les données mises à jour.
  • Proxy-Authorization => Utilisé pour l'ouverture de la connexion du proxy
  • Autorisation => Utilisé pour l'authentification du nom d'utilisateur et du mot de passe.
  • User-Agent => Indique quel logiciel est utilisé.

Si vous le souhaitez vraiment, vous pouvez toujours cacher votre charge utile d'authentification dans l'en-tête User-Agent, mais cela ne revient pas à ajouter un nouvel en-tête comme demandé.

1voto

davidls Points 171

Je ne suis pas sûr de l'utilisation de JWT, mais vous pouvez certainement ajouter une authentification basée sur le certificat du client, ce qui pourrait vous aider à sécuriser vos paquets, si c'est votre principale préoccupation.

apt-get install apt-transport-https

et obtenir la configuration

Acquire::https::packagedomain.name.com::Verify-Peer "false";
Acquire::https::packagedomain.name.com::Verify-Host "false";
Acquire::https::packagedomain.name.com::CaInfo "/certs/ca.pem";
Acquire::https::packagedomain.name.com::SslCert "/path/clientcert.pem";
Acquire::https::packagedomain.name.com::SslKey  "/path/clientkey.pem";

du côté de nginx, activez les directives suivantes

         "ssl_client_certificate",
         "ssl_verify_client",

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X