Pour éditer le wiki, il faut demander un compte à un Lapin !

Difference between revisions of "Howto:Administration systeme"

From Le L∞p's Wiki
Jump to: navigation, search
m (fix Deb template inclusion)
m (correction typos)
 
(9 intermediate revisions by 2 users not shown)
Line 4: Line 4:
 
== En vrac ==
 
== En vrac ==
  
 +
; Il faut avoir une clé GPG et une clé SSH pour participer : GPG sert à chiffrer les trousseaux de mots de passe, la clé SSH sert à se connecter aux machines.
 
; On utilise <code>sudo</code>, et jamais <code>su -</code> : Pour savoir ce qui a été fait, par qui et quand, c'est plus pratique de faire un <code>fgrep sudo /var/log/auth</code> que de devoir parser {{fichier|/root/.bash_history}}.
 
; On utilise <code>sudo</code>, et jamais <code>su -</code> : Pour savoir ce qui a été fait, par qui et quand, c'est plus pratique de faire un <code>fgrep sudo /var/log/auth</code> que de devoir parser {{fichier|/root/.bash_history}}.
 
; On n'utilise jamais le port 22 pour le SSH : Il ne s'agit pas de sécurité par l’obscurité, c'est juste que les scanbots chinois font trop de bruit. Par défaut, on utilise le port 222.
 
; On n'utilise jamais le port 22 pour le SSH : Il ne s'agit pas de sécurité par l’obscurité, c'est juste que les scanbots chinois font trop de bruit. Par défaut, on utilise le port 222.
 +
; On utilise un [[proxy]] pour les gestionnaires de paquets : Ça rend les mises à jour plus rapides.
  
 
== LeLoopFHS ==
 
== LeLoopFHS ==
Line 28: Line 30:
 
       (/etc/logrotate.d/nginx)
 
       (/etc/logrotate.d/nginx)
  
Astuce pour le vim user : grâce à <code>ft=changelog</code>, il suffit de taper <code><Leader>o</code> <small>(par défaut : <code>\o</code>)</small> pour ouvrir une nouvelle entrée de Changelog, comme il faut là où il faut. La coloration syntaxique en facilite la lecture. L'adresse mail est configurée dans {{fichier|.vimrc}} :
+
{{voir|[[Howto:Remplir le Changelog]] pour les détails et la configuration de son éditeur.}}
 
+
  let g:changelog_username = 'ToM  <tom@leloop.org>'
+
  
 
=== Services ===
 
=== Services ===
Line 50: Line 50:
 
* {{fichier|/home/leloop}}
 
* {{fichier|/home/leloop}}
 
* {{fichier|/home/common}}
 
* {{fichier|/home/common}}
 +
 +
== Accès aux machines ==
 +
 +
=== Administrateurs ===
 +
 +
Partout où c'est possible, on utilise des comptes nominatifs et on s'authentifie via des clés SSH (et on met les comptes des admins globaux dans Puppet).
 +
 +
Pour les [[Switching|trucs]] qui nécéssitent un mot de passe partagé, on met le nom d'utiliateur et le mode de passe dans le [[password-store]].
 +
 +
=== Comptes publics ===
 +
 +
Pour tout compte "public" dont le mot de passe est connu/partagé, il convient de désactiver la connexion SSH par mot de passe, et/ou de désactiver la connexion à distance. On ne veut pas filer de shell gratos à la planète entière.
 +
 +
Par exemple, dans {{fichier|/etc/ssh/sshd_config}} :
 +
  Match User leloop
 +
      PasswordAuthentication no
 +
 +
Quand on attrape quelqu'un qui laisse un compte public <code>leloop/leloop</code> dans le groupe <code>sudo</code>, on le fouette devant tout le monde [[Rencontre hebdomadaire|le mercredi]]. Cul nu.
 +
 +
== Configuration centralisée ==
 +
 +
Vu le nombre de machines virtuelles actuellement présentes au Loop, [https://docs.puppetlabs.com/puppet/ Puppet] est utilisé pour déployer la configuration de base de toutes les machines (utilisation du miroir/proxy local pour les machines, accès des administrateurs, paquets devant être présent sur toutes les machines, etc).
 +
 +
Le code Puppet est disponible dans le repository [https://git.leloop.org/leloopsysadmin/leloopinfra LeLoopInfra] du [[Git|Gitlab]].
 +
 +
Le principe est de ne mettre dans la gestion de configuration centralisée que ce qui est parfaitement identique, et de permettre des configuration locales spécifiques à certaines machines en plus (via des fichiers .conf.d locaux).
  
 
== Notifications ==
 
== Notifications ==
Line 57: Line 83:
 
* Le Trac n'a pas eu le succès attendu, mais ça pourrait changer avec la récente multiplication des sudoers.
 
* Le Trac n'a pas eu le succès attendu, mais ça pourrait changer avec la récente multiplication des sudoers.
 
* Certains bots tels que [[lapool]] donnent en temps réel des infos sur ce qui se passe.
 
* Certains bots tels que [[lapool]] donnent en temps réel des infos sur ce qui se passe.
* Une combinaison de diff quotidien du Changelog, de rapports de {{deb|fcheck|fcheck}} et autres {{deb|logwatch|logwatch}}, envoyée par mail, est en cours de fignolage. Pour l'instant ça fait quand même pas mal de mails <small>(mais on se soigne)</small>.
+
* Une combinaison de diff quotidien du Changelog ({{deb|metche}}), de rapports de {{deb|fcheck}} et autres {{deb|logwatch}}, envoyée par mail, est en cours de fignolage. Pour l'instant ça fait quand même pas mal de mails <small>(mais on se soigne)</small>.
 +
 
 +
À noter que sur certains systèmes, {{deb|metche}} remplit {{fichier|/var/lib/metche}} assez rapidement<ref>https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=360371 : bugreport de {{deb|metche}} sur le DBTS.</ref><ref>https://labs.riseup.net/code/issues/2977 : bugreport de https://trac.transitionnetwork.org/trac/wiki/MetcheCleanScript sur le BTS upstream.</ref>. À défaut d'un bugfix ou d'une solution plus élégante, un script de nettoyage<ref>https://trac.transitionnetwork.org/trac/wiki/MetcheCleanScript : script de nettoyage de {{deb|metche}}</ref> pourrait être mis en place.
  
 
== Voir aussi ==
 
== Voir aussi ==
  
 
* Le brouillon de guide [[:Category:Kollectiv_admin|Kollectiv' Admin]]
 
* Le brouillon de guide [[:Category:Kollectiv_admin|Kollectiv' Admin]]
 +
 +
== Références ==
 +
 +
<references />
  
 
[[Category:Infrastructure]]
 
[[Category:Infrastructure]]
 
[[Category:Documentation]]
 
[[Category:Documentation]]

Latest revision as of 18:55, 27 June 2015

Warning construction blue.png Cette page est un brouillon en cours de rédaction.

Le Loop déploie quelques services, qu'il faut bien administrer collectivement. Cette page tente de recenser quelques pratiques établies avec le temps, forgées sur l'enclume du bon sens et façonnées par l’expérience. S'il manque des choses (et il en manque pas mal), c'est principalement sur ToM qu'il faut taper.

En vrac

Il faut avoir une clé GPG et une clé SSH pour participer 
GPG sert à chiffrer les trousseaux de mots de passe, la clé SSH sert à se connecter aux machines.
On utilise sudo, et jamais su - 
Pour savoir ce qui a été fait, par qui et quand, c'est plus pratique de faire un fgrep sudo /var/log/auth que de devoir parser /root/.bash_history.
On n'utilise jamais le port 22 pour le SSH 
Il ne s'agit pas de sécurité par l’obscurité, c'est juste que les scanbots chinois font trop de bruit. Par défaut, on utilise le port 222.
On utilise un proxy pour les gestionnaires de paquets 
Ça rend les mises à jour plus rapides.

LeLoopFHS

Quelques fichiers et dossiers se retrouvent sur toutes nos machines.

Changelog

Habituellement dans /root/Changelog, mais on peut aussi essayer les vieux /etc/Changelog ou chercher dans /etc/leloop/.

On y décrit chacune des opérations effectuées. Il ne s'agit pas de recopier la doc, mais d'indiquer quand, qui, quoi et à quel endroit. L’idée est qu'en cas de question, on devrait pouvoir trouver l'essentiel d'un simple grep KEYWORD Changelog.

Un exemple :

 2013-02-11  ToM  <tom@leloop.org>
 
     * www: sous-domaine dedie pour SpaceAPI
     (/etc/apache2/sites-available/spaceapi.leloop.org,
     /etc/apache2/sites-available/leloop.org,
     /var/log/apache2/spaceapi.leloop.org, /var/www/spaceapi.leloop.org)
     * logrotate: fix path for nginx, +weekly +dateext
     (/etc/logrotate.d/nginx)
Icone loupe.png Voir : Howto:Remplir le Changelog pour les détails et la configuration de son éditeur.

Services

On pourrait mettre /etc/services à jour, ou bien renseigner /root/Services :

 TFTP
 ====
 init: /etc/init.d/atftpd
 conf: /etc/default/atftpd
 fichiers: /srv/ftfp

À noter qu'il ne s'agit que d'un résumé de ce que le fichier Changelog nous dit déjà.

Autres

Des reliquats du bordel passé...

  • /home/leloop
  • /home/common

Accès aux machines

Administrateurs

Partout où c'est possible, on utilise des comptes nominatifs et on s'authentifie via des clés SSH (et on met les comptes des admins globaux dans Puppet).

Pour les trucs qui nécéssitent un mot de passe partagé, on met le nom d'utiliateur et le mode de passe dans le password-store.

Comptes publics

Pour tout compte "public" dont le mot de passe est connu/partagé, il convient de désactiver la connexion SSH par mot de passe, et/ou de désactiver la connexion à distance. On ne veut pas filer de shell gratos à la planète entière.

Par exemple, dans /etc/ssh/sshd_config :

 Match User leloop
     PasswordAuthentication no

Quand on attrape quelqu'un qui laisse un compte public leloop/leloop dans le groupe sudo, on le fouette devant tout le monde le mercredi. Cul nu.

Configuration centralisée

Vu le nombre de machines virtuelles actuellement présentes au Loop, Puppet est utilisé pour déployer la configuration de base de toutes les machines (utilisation du miroir/proxy local pour les machines, accès des administrateurs, paquets devant être présent sur toutes les machines, etc).

Le code Puppet est disponible dans le repository LeLoopInfra du Gitlab.

Le principe est de ne mettre dans la gestion de configuration centralisée que ce qui est parfaitement identique, et de permettre des configuration locales spécifiques à certaines machines en plus (via des fichiers .conf.d locaux).

Notifications

Pour que toutes les équipes d'admin soient au courant des opérations effectuées, plusieurs systèmes sont en phase d’étude ou de test (voire d'abandon).

  • Le Trac n'a pas eu le succès attendu, mais ça pourrait changer avec la récente multiplication des sudoers.
  • Certains bots tels que lapool donnent en temps réel des infos sur ce qui se passe.
  • Une combinaison de diff quotidien du Changelog (metche), de rapports de fcheck et autres logwatch, envoyée par mail, est en cours de fignolage. Pour l'instant ça fait quand même pas mal de mails (mais on se soigne).

À noter que sur certains systèmes, metche remplit /var/lib/metche assez rapidement[1][2]. À défaut d'un bugfix ou d'une solution plus élégante, un script de nettoyage[3] pourrait être mis en place.

Voir aussi

Références

  1. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=360371 : bugreport de metche sur le DBTS.
  2. https://labs.riseup.net/code/issues/2977 : bugreport de https://trac.transitionnetwork.org/trac/wiki/MetcheCleanScript sur le BTS upstream.
  3. https://trac.transitionnetwork.org/trac/wiki/MetcheCleanScript : script de nettoyage de metche