SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
sshGate
  PATRICK GUIRAN
pguiran@linagora.com




                        WWW.LINAGORA.COM
Sommaire
       I.  PROBLÉMATIQUE DES ACCÈS


       II.  PRÉSENTATION DE SSHGATE


       III. FONCTIONNEMENT INTERNE




11-07-11
                             PAGE 2 / 35
Sommaire
       I.  PROBLÉMATIQUE DES ACCÈS


       II.  PRÉSENTATION DE SSHGATE


       III. FONCTIONNEMENT INTERNE




11-07-11
                             PAGE 3 / 35
I.  Problématique des accès
  Différents types d’accès


       §  Accès par mot de passe
            •    Utilisation d’un annuaire LDAP
            •    Effet « post-it »
            •    Partagé entre administrateurs
            •    …ou possédé par un seul administrateur (spof)

       §  Accès par clé ssh
            •  A qui est la clé?
            •  Ajout des clés du « copain »   (solvable)


       §  Accès à l’ensemble des serveurs
            •  Même les plus critiques (mail, base de données)
            •  …Souvent de manière inconditionnelle

11-07-11
                                                        PAGE 4 / 35
I.  Problématique des accès
  Gestion des accès



       §  Arrivé / Départ d'un collaborateur ?

       §  Qui a accès au serveur ? (simple)

       §  A quel serveur a accès cet administrateurs ? (compliqué)
            •  « Simple » lorsque l'administrateur a accès à tous les serveurs J
            •  Bon administrateur : « Mais si c'est simple ! »
                user_sshkey=$( cat user-sshkey.pub )

                for serveur in $( cat list­server.txt ) ; do

                  ssh $serveur 'cat ~/.ssh/authorized_keys2?' 

                      | grep ${user_sshkey} >/dev/null 

                  [ $? ­eq 0 ] && echo ”${serveur}”

                done#


       §  Qui gère les accès?


11-07-11
                                                                           PAGE 5 / 35
I.  Problématique des accès
  Besoins de LINAGORA



       §  Must have
            ü  Utilisation de ssh
            ü  Authentification par clé ssh
            ü  Que les clés des utilisateurs ne soient pas sur les serveurs
            ü  Gestion des accès centralisée (ACL)


       §  Nice to have
            ü  Enregistrement de l'activité des utilisateurs
            ü  Enregistrement des sessions des utilisateurs
            ü  Notification des actions d'administration




11-07-11
                                                                      PAGE 6 / 35
I.  Problématique des accès
  Recherche d’une solution


            q  Wallix AdminBastion
                •  Solution française, propriétaire, ssh/telnet/rdp

            q  Observe-it
                •  Solution américaine, propriétaire, ssh/telnet/rdp

            q  sshProxy
                •  Projet Open-Source (GPLv2), python, client lourd
                •  inactif depuis 2008(?), impossible à télécharger sur le site officiel

            q  AdminProxy
                •  Projet Open-Source, commandé par l'État Français
                •  Projet sur 2 ans. Fin prévu en 09/2010
                •  Où sont les sources ? L




11-07-11
                                                                            PAGE 7 / 35
I.  Problématique des accès
  Résultat des recherches



       §  Aucune solution ne convient
            •  Trop chère
            •  Trop intrusif
            •  Non disponible



       ➫  Développement de sshGate !
            •  En version libre et open-source
            •  Utilisable rapidement
            •  Simple




11-07-11
                                        PAGE 8 / 35
I.  Problématique des accès
  Contraintes & défis


       §  Se reposer sur les outils existants : OpenSSH, putty
            •  Aucune installation sur les serveurs administrés
            •  Aucune installation nécessaire sur les postes clients

       §  Multiplate-forme
            •  Le serveur sshGate
            •  Les serveurs administrés
            •  Les postes clients

       §  Pas de patchs sur le serveur sshGate (patch sshd)

       §  Léger, peu de dépendances logicielles (pas de BDD)


11-07-11
                                                              PAGE 9 / 35
Sommaire
       I.  PROBLÉMATIQUE DES ACCÈS


       II.  PRÉSENTATION DE SSHGATE


       III. FONCTIONNEMENT INTERNE




11-07-11
                             PAGE 10 / 35
II.  Présentation de sshGate
  Vue globale




11-07-11
                        PAGE 11 / 35
II.  Présentation de sshGate
  Fonctionnalités


       ü  Sessions SSH & Transfert de fichiers via SCP

       ü  Gestion centralisée des accès (par utilisateur et groupe)

       ü  Gestion des alias pour les serveurs administrés

       ü  Support multi-login par serveur administré

       ü  Configuration SSH globale, et spécifique par serveurs et login

       ü  Enregistrement de l'activité des utilisateurs
            •    Qui fait « quoi » sur quelle machine ?

       ü  Enregistrement des sessions SSH
            •    Que s’est-il passé durant une session ?

       ü  Interface d'administration en mode « CLI »


11-07-11
                                                                   PAGE 12 / 35
II.  Présentation de sshGate
  Caractéristiques


       §  Licence GPLv2+
       §  Développé en Shell Script (sh, dash, bash, zsh)

       §  Multiplate-forme :
            •  Serveur : Linux, Solaris, *BSD
            •  Client : Linux, MacOS, Windows/Putty


       §  Historique :
            •  Naissance du projet : Août 2010
            •  Première mise en production : Septembre 2010


       §  Version actuelle (interne) :
            •  En production : 0.1.192
            •  Trunk : 0.2.71 (passage en production imminente)
            •  Release 1.0 prévu pour fin juillet 2011


11-07-11
                                                         PAGE 13 / 35
II.  Présentation de sshGate
  Utilisation de sshGate par LINAGORA



       §  Quelques chiffres
            •    61 utilisateurs
            •    10 groupes d’utilisateurs
            •    161 machines administrées
            •    214 nom d'alias de machines administrées


       §  Accès
            •  96 accès par groupe
            •  103 accès par utilisateur


       §  Sur les 6 derniers mois
            •  2063 transferts de fichiers
            •  16568 sessions SSH



11-07-11
                                                   PAGE 14 / 35
II.  Présentation de sshGate
  Bugs connus & Fonctionnalités demandées



       §  DOS : remplissage des logs
            •  Surveillance de l'évolution de la taille des logs
            •  Déconnexion des sessions abusives


       §  Saturation du nombre de fd ouvert
            •  Limiter le nombre de connexion par utilisateur
            •  Killer les sessions « idle » trop longue


       §  Possibilités de « cacher » certaines commandes
             user@host $ read ­s var #         ## rm ­rf * #
             user@host $ eval "${var}"         ## AIE#


             Ce n’est pas un bug.
             sshGate n’enregistre pas les touches tapées et ne le fera jamais !


11-07-11
                                                                         PAGE 15 / 35
II.  Présentation de sshGate
  Roadmap



                                   Correction du DDOS +
                                   limitation des sessions




      Juillet        Août                 Sept                             À Venir
                                                       •     Packaging fedora, arch, Solaris
                                   Support de telnet
                                                       •     Interface web d'administration
                                                       •     Support des certificats
                         Packaging debian              •     Authentification des utilisateurs par LDAP

                Exposition de certaines
                commandes




11-07-11
                                                                                          PAGE 16 / 35
Sommaire
       I.  PROBLÉMATIQUE DES ACCÈS


       II.  PRÉSENTATION DE SSHGATE


       III. FONCTIONNEMENT INTERNE




11-07-11
                             PAGE 17 / 35
III.  Fonctionnement interne
  Fonctionnement d’une session




11-07-11
                        PAGE 18 / 35
III.  Fonctionnement interne
  Déroulement d’une ouverture de session


       §  Connexion de l'utilisateur
            •  Vérification de la présence de sa clé
            •  Exécution du Bridge et passage du login + SSH_ORIGINAL_COMMAND

       §  Vérification de l'existant de l'utilisateur dans sshGate

       §  Parsing du SSH_ORIGINAL_COMMAND
            •  Extraction du nom de la machine administrée cible
            •  Extraction de la commande à effectuer (si présence)
            •  Si aucun nom de machine cible n'est fournis, passage en mode interactif

       §  Si machine administrée cible existe
            •  Lancement de l'action demandé (ssh ou scp)
            •  Avec vérification de l'authenticité de la machine cible (known_hosts)




11-07-11
                                                                              PAGE 19 / 35
III.  Fonctionnement interne
  Architecture logicielle




11-07-11
                        PAGE 20 / 35
III.  Fonctionnement interne
  Administration - Modèle de données




11-07-11
                              PAGE 21 / 35
III.  Fonctionnement interne
  CLI d’administration




11-07-11
                        PAGE 22 / 35
III.  Fonctionnement interne
  Bibliothèque ScriptHelper



       §  Ensemble de bibliothèques
            •  Permettant d'écrire plus rapidement les Scripts Shell
            •  Se voulant le plus POSIX possible


       §  Quelques bibliothèques
            •    exec.lib.sh : exécution avec log et vérification
            •    ask.lib.sh : poser des questions
            •    cli.lib.sh : permet de construire une CLI rapidement
            •    mutex.lib.sh / lock.lib.sh : gestion des verrous
            •    record.lib.sh : enregistrement de terminal
            •    ...



11-07-11
                                                               PAGE 23 / 35
III.  Fonctionnement interne
  Utilisation de ask.lib.sh



  ASK SSHGATE_TARGETS_DEFAULT_SSH_LOGIN 
       "What the default user account to use when connecting to target host ?" 
       "${SSHGATE_TARGETS_DEFAULT_SSH_LOGIN}"

  CONF_SAVE SSHGATE_TARGETS_DEFAULT_SSH_LOGIN

  ASK  ­­yesno SSHGATE_MAIL_SEND 
       "Activate mail notification system [Yes] ?" 
       "Y"
  [ "${SSHGATE_MAIL_SEND}" = 'N' ] && SSHGATE_MAIL_SEND='false'
  if   [ "${SSHGATE_MAIL_SEND}" = 'Y' ]; then
       SSHGATE_MAIL_SEND='true'
       ASK SSHGATE_MAIL_TO 
            "Who will receive mail notification (comma separated mails) ?" 
            "${SSHGATE_MAIL_TO}"
       [ ­z "${SSHGATE_MAIL_TO}" ] && SSHGATE_MAIl_SEND='false'
  else
       SSHGATE_MAIL_SEND='false'
  fi
  CONF_SAVE SSHGATE_MAIL_SEND
  CONF_SAVE SSHGATE_MAIL_TO




11-07-11
                                                                          PAGE 24 / 35
III.  Fonctionnement interne
  Utilisation de cli.lib.sh



  # chargement de ScriptHelper#
  . ./lib/cli.lib.sh#
  #
  # génération de l'aide et de son menu#
  CLI_REGISTER_HELP #'/tmp/sshgate-cli-help.txt' #
                    #SSHGATE_GET_HELP            #
                    #SSHGATE_DISPLAY_HELP        #
                    #SSHGATE_DISPLAY_HELP_FOR#
  #
  #
  CLI_REGISTER_MENU    'user'                           'User related commands'#
  CLI_REGISTER_COMMAND 'user list'                      'USERS_LIST'#
  CLI_REGISTER_COMMAND 'user list <pattern>'            'USERS_LIST 1'#
  CLI_REGISTER_COMMAND 'user add <user> mail <email>'   'USER_ADD 1 2'#
  CLI_REGISTER_COMMAND 'user del <user>'                'USER_DEL 1'#
  CLI_REGISTER_COMMAND 'user build auth_keys'           'USERS_AUTH_KEYS_BUILD'#
  #
  # ....#
  #
  # lancement de la CLI#
  CLI_RUN!




11-07-11
                                                                          PAGE 25 / 35
III.  Fonctionnement interne
  Industrialisation



       §  SshGate et ScriptHelper possèdent
            •  Construction d'une tarball de déploiement 
            •  Script de déploiement / installation 
            •  Des jeux de tests




                tauop@Tauopbox:~/taff/.../sshGate$ ./build.sh server !
                sshgate version ? 0.2 #
                sshGate build number ? 014 #
                Include ScriptHelper in package ? y#
                ­ Build sshgate­server package ... OK #
                tauop@Tauopbox:~/taff/.../sshGate$#




11-07-11
                                                                PAGE 26 / 35
III.  Fonctionnement interne
  Installation (1 / 2)

  tauop@Tauopbox:/tmp/sshGate-server-0.2-0.71$ sudo ./install.sh!
  #
      --- sshGate server installation ---#
               by Patrick Guiran#
  #
  #
  NOTICE: ScriptHelper will be installed as part of sshGate, not system-wide#
  If you want to install ScriptHelper system-wide, please visit http://github.com/
  Tauop/ScriptHelper#
  #
  Where do you want to locate sshGate [/opt/sshgate] ?#
  Which unix account to use for sshGate users [sshgate] ?#
  What the default user account to use when connecting to target host [root] ?#
  List of avariable languages: fr us#
  Default language for user messages [us] ? fr#
  Which editor to use [vim] ?#
  Activate mail notification system [Y] ?#
  Who will receive mail notification (comma separated mails) [sshgate@linagora.com] ?#
  Do users have to accept TOS when connecting for the first time [Y] ?#
  Allow remote command [Y] ?#
  Allow remote administration CLI [Y] ?#
  #
  #
  - Reload configuration ... OK#
  - Installing sshGate ... OK#
  - Generate default sshkey pair ... OK#
  - Setup files permissions ... OK#
  -  Install archive cron ... OK#

11-07-11
                                                                           PAGE 27 / 35
III.  Fonctionnement interne
  Installation (2 / 2)




  tauop@Tauopbox:/tmp/sshGate-server-0.2-0.71$ sudo ./install.sh!
  #
  ...#
  #
  You need to add the first user of sshGate, which will be sshGate administrator.#
  This user will allow you to manage other users, targets and accesses.#
  user login ? pguiran#
  user mail ? pguiran@linagora.com#
  #
  In order to administrate sshGate, just ssh this host with this user#
    If you have installed sshGate client -> sshg cli#
    with standard ssh client -> ssh -t sshgate@Tauopbox cli#
    from this terminal -> /opt/sshgate/bin/sshgate-cli -u sshgate#
  #
  NOTICE: You may add /opt/sshgate/bin in your PATH variable#
  #
  tauop@Tauopbox:/tmp/exmaple/sshGate-server-0.2-0.71$#




11-07-11
                                                                            PAGE 28 / 35
III.  Fonctionnement interne
  Tests


            root@gate:/opt/sshgate/bin/tests# ./test.sh all!
            - Loading sshGate core ... OK#
            - Setup sshGate data directory ... OK#
            - Generate temporary test file ... OK#
            - Generate temporary sshkey test file ... OK#
            - Create and setup temporary Unix account ... OK#
            - Reset temporary test file ... OK#
            - Reset sshGate data directories ... OK#
            - Generate user tests ... OK#
            - Launch user tests ... OK#
            - Reset temporary test file ... OK#
            - Reset sshGate data directories ... OK#
            - Generate target tests ... OK#
            - Launch target tests ... OK#
            - Reset temporary test file ... OK#
            - Reset sshGate data directories ... OK#
            - Generate usergroup tests ... OK#
            - Launch usergroup tests ... OK#
            - Reset temporary test file ... OK#
            - Reset sshGate data directories ... OK#
            - Generate access tests ... OK#
            - Launch access tests ... OK#
            - Remove tests data ... OK#
            root@gate:/opt/sshgate/bin/tests##



11-07-11
                                                       PAGE 29 / 35
IV.  Réutilisation de sshGate
  Recyclage du projet sshGate




11-07-11
                         PAGE 30 / 35
IV.  Réutilisation de sshGate
  Participer J




11-07-11
                         PAGE 31 / 35
IV.  Réutilisation de sshGate
  Participer J




11-07-11
                         PAGE 32 / 35
IV.  Réutilisation de sshGate
  Participer au développement


       ü  SshGate : http://www.github.com/Tauop/sshGate

       ü  ScriptHelper : http://www.github.com/Tauop/ScriptHelper

       ü  Venez nous voir sur IRC@Freenode #linagora 

       ü  Contact : pguiran@linagora.com




11-07-11
                                                             PAGE 33 / 35
Questions / Réponses




                 Questions ?




11-07-11
                       PAGE 34 / 35
Merci de votre attention

                                         Contact : 
                       LINAGORA – Siège social
                           80, rue Roque de Fillol
                                  92800 PUTEAUX
                                          FRANCE
                 Tél. : 0 810 251 251 (tarif local)
                       Fax : +33 (0)1 46 96 63 64
                         Mail : info@linagora.com
                        Web : www.linagora.com 

                       WWW.LINAGORA.COM

Más contenido relacionado

La actualidad más candente

Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017AFUP_Limoges
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...Romain Cambien
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIRomain Cambien
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertLook a box
 

La actualidad más candente (9)

Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017Retour AFUP du forumphp 2017
Retour AFUP du forumphp 2017
 
Git pratique
Git pratiqueGit pratique
Git pratique
 
PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...PHP Composer : Pourquoi ? Comment ? Et plus ...
PHP Composer : Pourquoi ? Comment ? Et plus ...
 
AFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open APIAFUP Aix/Marseille - 16 mai 2017 - Open API
AFUP Aix/Marseille - 16 mai 2017 - Open API
 
Apache Open SSL
Apache Open SSLApache Open SSL
Apache Open SSL
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Zabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvertZabbix, garder un oeil toujours ouvert
Zabbix, garder un oeil toujours ouvert
 

Destacado

La Banque Nationale de Données Maladies Rares
La Banque Nationale de Données Maladies RaresLa Banque Nationale de Données Maladies Rares
La Banque Nationale de Données Maladies Raresbndmr
 
Apéro RubyBdx - MongoDB - 8-11-2011
Apéro RubyBdx - MongoDB - 8-11-2011Apéro RubyBdx - MongoDB - 8-11-2011
Apéro RubyBdx - MongoDB - 8-11-2011pierrerenaudin
 
Présentation générale Banque Nationale de Données Maladies Rares, janvier 2014
Présentation générale Banque Nationale de Données Maladies Rares, janvier 2014Présentation générale Banque Nationale de Données Maladies Rares, janvier 2014
Présentation générale Banque Nationale de Données Maladies Rares, janvier 2014bndmr
 
Run MongoDB with Confidence Using MongoDB Management Service (MMS)
Run MongoDB with Confidence Using MongoDB Management Service (MMS)Run MongoDB with Confidence Using MongoDB Management Service (MMS)
Run MongoDB with Confidence Using MongoDB Management Service (MMS)MongoDB
 
LORD : un outil d'aide au codage des maladies - JFIM - 13 juin 2014
LORD : un outil d'aide au codage des maladies - JFIM - 13 juin 2014LORD : un outil d'aide au codage des maladies - JFIM - 13 juin 2014
LORD : un outil d'aide au codage des maladies - JFIM - 13 juin 2014bndmr
 
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...MongoDB
 
MongoDB Deployment Checklist
MongoDB Deployment ChecklistMongoDB Deployment Checklist
MongoDB Deployment ChecklistMongoDB
 
Automatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSAutomatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSMongoDB
 
Le monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataLe monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataClaude Falguiere
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBMongoDB
 
L\'authentification forte : Concept et Technologies
L\'authentification forte : Concept et TechnologiesL\'authentification forte : Concept et Technologies
L\'authentification forte : Concept et TechnologiesIbrahima FALL
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosAziz Rgd
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementMohamed hedi Abidi
 
initiation SSH_SecuriNets ISI Tunisie
initiation SSH_SecuriNets ISI Tunisieinitiation SSH_SecuriNets ISI Tunisie
initiation SSH_SecuriNets ISI TunisieDonia Hammami
 
Rapport de stage nagios
Rapport de stage nagiosRapport de stage nagios
Rapport de stage nagioshindif
 

Destacado (20)

La Banque Nationale de Données Maladies Rares
La Banque Nationale de Données Maladies RaresLa Banque Nationale de Données Maladies Rares
La Banque Nationale de Données Maladies Rares
 
Apéro RubyBdx - MongoDB - 8-11-2011
Apéro RubyBdx - MongoDB - 8-11-2011Apéro RubyBdx - MongoDB - 8-11-2011
Apéro RubyBdx - MongoDB - 8-11-2011
 
sshGate
sshGatesshGate
sshGate
 
Présentation générale Banque Nationale de Données Maladies Rares, janvier 2014
Présentation générale Banque Nationale de Données Maladies Rares, janvier 2014Présentation générale Banque Nationale de Données Maladies Rares, janvier 2014
Présentation générale Banque Nationale de Données Maladies Rares, janvier 2014
 
Run MongoDB with Confidence Using MongoDB Management Service (MMS)
Run MongoDB with Confidence Using MongoDB Management Service (MMS)Run MongoDB with Confidence Using MongoDB Management Service (MMS)
Run MongoDB with Confidence Using MongoDB Management Service (MMS)
 
LORD : un outil d'aide au codage des maladies - JFIM - 13 juin 2014
LORD : un outil d'aide au codage des maladies - JFIM - 13 juin 2014LORD : un outil d'aide au codage des maladies - JFIM - 13 juin 2014
LORD : un outil d'aide au codage des maladies - JFIM - 13 juin 2014
 
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...
MongoDB IoT City Tour EINDHOVEN: Analysing the Internet of Things: Davy Nys, ...
 
CCNA-Scotty
CCNA-ScottyCCNA-Scotty
CCNA-Scotty
 
MongoDB Deployment Checklist
MongoDB Deployment ChecklistMongoDB Deployment Checklist
MongoDB Deployment Checklist
 
Automatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSAutomatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMS
 
Le monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big DataLe monitoring à l'heure de DevOps et Big Data
Le monitoring à l'heure de DevOps et Big Data
 
Atelier ssh
Atelier sshAtelier ssh
Atelier ssh
 
Supervision
SupervisionSupervision
Supervision
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
 
L\'authentification forte : Concept et Technologies
L\'authentification forte : Concept et TechnologiesL\'authentification forte : Concept et Technologies
L\'authentification forte : Concept et Technologies
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - Nagios
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
initiation SSH_SecuriNets ISI Tunisie
initiation SSH_SecuriNets ISI Tunisieinitiation SSH_SecuriNets ISI Tunisie
initiation SSH_SecuriNets ISI Tunisie
 
Rapport de stage nagios
Rapport de stage nagiosRapport de stage nagios
Rapport de stage nagios
 
cours Lunix
cours Lunixcours Lunix
cours Lunix
 

Similar a sshGate - RMLL 2011

SSH - Secure Shell
SSH - Secure ShellSSH - Secure Shell
SSH - Secure ShellSouhaib El
 
0240-formation-ssh-secure-shell.pdf
0240-formation-ssh-secure-shell.pdf0240-formation-ssh-secure-shell.pdf
0240-formation-ssh-secure-shell.pdfBellaj Badr
 
technologie web - part3
technologie web - part3technologie web - part3
technologie web - part3Benoît Simard
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenableLeTesteur
 
Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009LINAGORA
 
Configuration des services web sous centOS 5
Configuration des services web sous centOS 5Configuration des services web sous centOS 5
Configuration des services web sous centOS 5Sarah
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésMathieu Elie
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...Guillaume MOCQUET
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur webNoël
 
09 01 configuration du serveur samba
09 01 configuration du serveur samba09 01 configuration du serveur samba
09 01 configuration du serveur sambaNoël
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdfbadrfathallah2
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Pierre Ternon
 
Serveurs core et virtualisation
Serveurs core et virtualisationServeurs core et virtualisation
Serveurs core et virtualisationChristophe Laporte
 
workshop initiation ssh
workshop initiation sshworkshop initiation ssh
workshop initiation sshZakaria SMAHI
 

Similar a sshGate - RMLL 2011 (20)

SSH - Secure Shell
SSH - Secure ShellSSH - Secure Shell
SSH - Secure Shell
 
0240-formation-ssh-secure-shell.pdf
0240-formation-ssh-secure-shell.pdf0240-formation-ssh-secure-shell.pdf
0240-formation-ssh-secure-shell.pdf
 
technologie web - part3
technologie web - part3technologie web - part3
technologie web - part3
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Cours 70 410-1
Cours 70 410-1Cours 70 410-1
Cours 70 410-1
 
Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009Séminaire LinID LINAGORA - juin 2009
Séminaire LinID LINAGORA - juin 2009
 
Cours 70 410 - J2
Cours 70 410 - J2Cours 70 410 - J2
Cours 70 410 - J2
 
Réseau MiNET
Réseau MiNETRéseau MiNET
Réseau MiNET
 
Configuration des services web sous centOS 5
Configuration des services web sous centOS 5Configuration des services web sous centOS 5
Configuration des services web sous centOS 5
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautés
 
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
[Sildes] plateforme centralisée d’analyse des logs des frontaux http en temps...
 
08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web08 01 mise en place d'un serveur web
08 01 mise en place d'un serveur web
 
SDN OpenDaylight
SDN OpenDaylightSDN OpenDaylight
SDN OpenDaylight
 
Jenkins
JenkinsJenkins
Jenkins
 
09 01 configuration du serveur samba
09 01 configuration du serveur samba09 01 configuration du serveur samba
09 01 configuration du serveur samba
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
 
Linux_best_practices
Linux_best_practicesLinux_best_practices
Linux_best_practices
 
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
Gestion de projet Drupal : quelques outils indispensables - OWS - Drupalcamp ...
 
Serveurs core et virtualisation
Serveurs core et virtualisationServeurs core et virtualisation
Serveurs core et virtualisation
 
workshop initiation ssh
workshop initiation sshworkshop initiation ssh
workshop initiation ssh
 

sshGate - RMLL 2011

  • 1. sshGate PATRICK GUIRAN pguiran@linagora.com WWW.LINAGORA.COM
  • 2. Sommaire I.  PROBLÉMATIQUE DES ACCÈS II.  PRÉSENTATION DE SSHGATE III. FONCTIONNEMENT INTERNE 11-07-11 PAGE 2 / 35
  • 3. Sommaire I.  PROBLÉMATIQUE DES ACCÈS II.  PRÉSENTATION DE SSHGATE III. FONCTIONNEMENT INTERNE 11-07-11 PAGE 3 / 35
  • 4. I.  Problématique des accès Différents types d’accès §  Accès par mot de passe •  Utilisation d’un annuaire LDAP •  Effet « post-it » •  Partagé entre administrateurs •  …ou possédé par un seul administrateur (spof) §  Accès par clé ssh •  A qui est la clé? •  Ajout des clés du « copain » (solvable) §  Accès à l’ensemble des serveurs •  Même les plus critiques (mail, base de données) •  …Souvent de manière inconditionnelle 11-07-11 PAGE 4 / 35
  • 5. I.  Problématique des accès Gestion des accès §  Arrivé / Départ d'un collaborateur ? §  Qui a accès au serveur ? (simple) §  A quel serveur a accès cet administrateurs ? (compliqué) •  « Simple » lorsque l'administrateur a accès à tous les serveurs J •  Bon administrateur : « Mais si c'est simple ! » user_sshkey=$( cat user-sshkey.pub )
 for serveur in $( cat list­server.txt ) ; do
 ssh $serveur 'cat ~/.ssh/authorized_keys2?' 
 | grep ${user_sshkey} >/dev/null 
 [ $? ­eq 0 ] && echo ”${serveur}”
 done# §  Qui gère les accès? 11-07-11 PAGE 5 / 35
  • 6. I.  Problématique des accès Besoins de LINAGORA §  Must have ü  Utilisation de ssh ü  Authentification par clé ssh ü  Que les clés des utilisateurs ne soient pas sur les serveurs ü  Gestion des accès centralisée (ACL) §  Nice to have ü  Enregistrement de l'activité des utilisateurs ü  Enregistrement des sessions des utilisateurs ü  Notification des actions d'administration 11-07-11 PAGE 6 / 35
  • 7. I.  Problématique des accès Recherche d’une solution q  Wallix AdminBastion •  Solution française, propriétaire, ssh/telnet/rdp q  Observe-it •  Solution américaine, propriétaire, ssh/telnet/rdp q  sshProxy •  Projet Open-Source (GPLv2), python, client lourd •  inactif depuis 2008(?), impossible à télécharger sur le site officiel q  AdminProxy •  Projet Open-Source, commandé par l'État Français •  Projet sur 2 ans. Fin prévu en 09/2010 •  Où sont les sources ? L 11-07-11 PAGE 7 / 35
  • 8. I.  Problématique des accès Résultat des recherches §  Aucune solution ne convient •  Trop chère •  Trop intrusif •  Non disponible ➫  Développement de sshGate ! •  En version libre et open-source •  Utilisable rapidement •  Simple 11-07-11 PAGE 8 / 35
  • 9. I.  Problématique des accès Contraintes & défis §  Se reposer sur les outils existants : OpenSSH, putty •  Aucune installation sur les serveurs administrés •  Aucune installation nécessaire sur les postes clients §  Multiplate-forme •  Le serveur sshGate •  Les serveurs administrés •  Les postes clients §  Pas de patchs sur le serveur sshGate (patch sshd) §  Léger, peu de dépendances logicielles (pas de BDD) 11-07-11 PAGE 9 / 35
  • 10. Sommaire I.  PROBLÉMATIQUE DES ACCÈS II.  PRÉSENTATION DE SSHGATE III. FONCTIONNEMENT INTERNE 11-07-11 PAGE 10 / 35
  • 11. II.  Présentation de sshGate Vue globale 11-07-11 PAGE 11 / 35
  • 12. II.  Présentation de sshGate Fonctionnalités ü  Sessions SSH & Transfert de fichiers via SCP ü  Gestion centralisée des accès (par utilisateur et groupe) ü  Gestion des alias pour les serveurs administrés ü  Support multi-login par serveur administré ü  Configuration SSH globale, et spécifique par serveurs et login ü  Enregistrement de l'activité des utilisateurs •  Qui fait « quoi » sur quelle machine ? ü  Enregistrement des sessions SSH •  Que s’est-il passé durant une session ? ü  Interface d'administration en mode « CLI » 11-07-11 PAGE 12 / 35
  • 13. II.  Présentation de sshGate Caractéristiques §  Licence GPLv2+ §  Développé en Shell Script (sh, dash, bash, zsh) §  Multiplate-forme : •  Serveur : Linux, Solaris, *BSD •  Client : Linux, MacOS, Windows/Putty §  Historique : •  Naissance du projet : Août 2010 •  Première mise en production : Septembre 2010 §  Version actuelle (interne) : •  En production : 0.1.192 •  Trunk : 0.2.71 (passage en production imminente) •  Release 1.0 prévu pour fin juillet 2011 11-07-11 PAGE 13 / 35
  • 14. II.  Présentation de sshGate Utilisation de sshGate par LINAGORA §  Quelques chiffres •  61 utilisateurs •  10 groupes d’utilisateurs •  161 machines administrées •  214 nom d'alias de machines administrées §  Accès •  96 accès par groupe •  103 accès par utilisateur §  Sur les 6 derniers mois •  2063 transferts de fichiers •  16568 sessions SSH 11-07-11 PAGE 14 / 35
  • 15. II.  Présentation de sshGate Bugs connus & Fonctionnalités demandées §  DOS : remplissage des logs •  Surveillance de l'évolution de la taille des logs •  Déconnexion des sessions abusives §  Saturation du nombre de fd ouvert •  Limiter le nombre de connexion par utilisateur •  Killer les sessions « idle » trop longue §  Possibilités de « cacher » certaines commandes user@host $ read ­s var # ## rm ­rf * # user@host $ eval "${var}" ## AIE# Ce n’est pas un bug. sshGate n’enregistre pas les touches tapées et ne le fera jamais ! 11-07-11 PAGE 15 / 35
  • 16. II.  Présentation de sshGate Roadmap Correction du DDOS + limitation des sessions Juillet Août Sept À Venir •  Packaging fedora, arch, Solaris Support de telnet •  Interface web d'administration •  Support des certificats Packaging debian •  Authentification des utilisateurs par LDAP Exposition de certaines commandes 11-07-11 PAGE 16 / 35
  • 17. Sommaire I.  PROBLÉMATIQUE DES ACCÈS II.  PRÉSENTATION DE SSHGATE III. FONCTIONNEMENT INTERNE 11-07-11 PAGE 17 / 35
  • 18. III.  Fonctionnement interne Fonctionnement d’une session 11-07-11 PAGE 18 / 35
  • 19. III.  Fonctionnement interne Déroulement d’une ouverture de session §  Connexion de l'utilisateur •  Vérification de la présence de sa clé •  Exécution du Bridge et passage du login + SSH_ORIGINAL_COMMAND §  Vérification de l'existant de l'utilisateur dans sshGate §  Parsing du SSH_ORIGINAL_COMMAND •  Extraction du nom de la machine administrée cible •  Extraction de la commande à effectuer (si présence) •  Si aucun nom de machine cible n'est fournis, passage en mode interactif §  Si machine administrée cible existe •  Lancement de l'action demandé (ssh ou scp) •  Avec vérification de l'authenticité de la machine cible (known_hosts) 11-07-11 PAGE 19 / 35
  • 20. III.  Fonctionnement interne Architecture logicielle 11-07-11 PAGE 20 / 35
  • 21. III.  Fonctionnement interne Administration - Modèle de données 11-07-11 PAGE 21 / 35
  • 22. III.  Fonctionnement interne CLI d’administration 11-07-11 PAGE 22 / 35
  • 23. III.  Fonctionnement interne Bibliothèque ScriptHelper §  Ensemble de bibliothèques •  Permettant d'écrire plus rapidement les Scripts Shell •  Se voulant le plus POSIX possible §  Quelques bibliothèques •  exec.lib.sh : exécution avec log et vérification •  ask.lib.sh : poser des questions •  cli.lib.sh : permet de construire une CLI rapidement •  mutex.lib.sh / lock.lib.sh : gestion des verrous •  record.lib.sh : enregistrement de terminal •  ... 11-07-11 PAGE 23 / 35
  • 24. III.  Fonctionnement interne Utilisation de ask.lib.sh ASK SSHGATE_TARGETS_DEFAULT_SSH_LOGIN "What the default user account to use when connecting to target host ?" "${SSHGATE_TARGETS_DEFAULT_SSH_LOGIN}" CONF_SAVE SSHGATE_TARGETS_DEFAULT_SSH_LOGIN ASK ­­yesno SSHGATE_MAIL_SEND "Activate mail notification system [Yes] ?" "Y" [ "${SSHGATE_MAIL_SEND}" = 'N' ] && SSHGATE_MAIL_SEND='false' if [ "${SSHGATE_MAIL_SEND}" = 'Y' ]; then SSHGATE_MAIL_SEND='true' ASK SSHGATE_MAIL_TO "Who will receive mail notification (comma separated mails) ?" "${SSHGATE_MAIL_TO}" [ ­z "${SSHGATE_MAIL_TO}" ] && SSHGATE_MAIl_SEND='false' else SSHGATE_MAIL_SEND='false' fi CONF_SAVE SSHGATE_MAIL_SEND CONF_SAVE SSHGATE_MAIL_TO 11-07-11 PAGE 24 / 35
  • 25. III.  Fonctionnement interne Utilisation de cli.lib.sh # chargement de ScriptHelper# . ./lib/cli.lib.sh# # # génération de l'aide et de son menu# CLI_REGISTER_HELP #'/tmp/sshgate-cli-help.txt' #                   #SSHGATE_GET_HELP            #                   #SSHGATE_DISPLAY_HELP        #                   #SSHGATE_DISPLAY_HELP_FOR# # # CLI_REGISTER_MENU    'user'                           'User related commands'# CLI_REGISTER_COMMAND 'user list'                      'USERS_LIST'# CLI_REGISTER_COMMAND 'user list <pattern>'            'USERS_LIST 1'# CLI_REGISTER_COMMAND 'user add <user> mail <email>'   'USER_ADD 1 2'# CLI_REGISTER_COMMAND 'user del <user>'                'USER_DEL 1'# CLI_REGISTER_COMMAND 'user build auth_keys'           'USERS_AUTH_KEYS_BUILD'# # # ....# # # lancement de la CLI# CLI_RUN! 11-07-11 PAGE 25 / 35
  • 26. III.  Fonctionnement interne Industrialisation §  SshGate et ScriptHelper possèdent •  Construction d'une tarball de déploiement •  Script de déploiement / installation •  Des jeux de tests tauop@Tauopbox:~/taff/.../sshGate$ ./build.sh server ! sshgate version ? 0.2 # sshGate build number ? 014 # Include ScriptHelper in package ? y# ­ Build sshgate­server package ... OK # tauop@Tauopbox:~/taff/.../sshGate$# 11-07-11 PAGE 26 / 35
  • 27. III.  Fonctionnement interne Installation (1 / 2) tauop@Tauopbox:/tmp/sshGate-server-0.2-0.71$ sudo ./install.sh! # --- sshGate server installation ---# by Patrick Guiran# # # NOTICE: ScriptHelper will be installed as part of sshGate, not system-wide# If you want to install ScriptHelper system-wide, please visit http://github.com/ Tauop/ScriptHelper# # Where do you want to locate sshGate [/opt/sshgate] ?# Which unix account to use for sshGate users [sshgate] ?# What the default user account to use when connecting to target host [root] ?# List of avariable languages: fr us# Default language for user messages [us] ? fr# Which editor to use [vim] ?# Activate mail notification system [Y] ?# Who will receive mail notification (comma separated mails) [sshgate@linagora.com] ?# Do users have to accept TOS when connecting for the first time [Y] ?# Allow remote command [Y] ?# Allow remote administration CLI [Y] ?# # # - Reload configuration ... OK# - Installing sshGate ... OK# - Generate default sshkey pair ... OK# - Setup files permissions ... OK# -  Install archive cron ... OK# 11-07-11 PAGE 27 / 35
  • 28. III.  Fonctionnement interne Installation (2 / 2) tauop@Tauopbox:/tmp/sshGate-server-0.2-0.71$ sudo ./install.sh! # ...# # You need to add the first user of sshGate, which will be sshGate administrator.# This user will allow you to manage other users, targets and accesses.# user login ? pguiran# user mail ? pguiran@linagora.com# # In order to administrate sshGate, just ssh this host with this user# If you have installed sshGate client -> sshg cli# with standard ssh client -> ssh -t sshgate@Tauopbox cli# from this terminal -> /opt/sshgate/bin/sshgate-cli -u sshgate# # NOTICE: You may add /opt/sshgate/bin in your PATH variable# # tauop@Tauopbox:/tmp/exmaple/sshGate-server-0.2-0.71$# 11-07-11 PAGE 28 / 35
  • 29. III.  Fonctionnement interne Tests root@gate:/opt/sshgate/bin/tests# ./test.sh all! - Loading sshGate core ... OK# - Setup sshGate data directory ... OK# - Generate temporary test file ... OK# - Generate temporary sshkey test file ... OK# - Create and setup temporary Unix account ... OK# - Reset temporary test file ... OK# - Reset sshGate data directories ... OK# - Generate user tests ... OK# - Launch user tests ... OK# - Reset temporary test file ... OK# - Reset sshGate data directories ... OK# - Generate target tests ... OK# - Launch target tests ... OK# - Reset temporary test file ... OK# - Reset sshGate data directories ... OK# - Generate usergroup tests ... OK# - Launch usergroup tests ... OK# - Reset temporary test file ... OK# - Reset sshGate data directories ... OK# - Generate access tests ... OK# - Launch access tests ... OK# - Remove tests data ... OK# root@gate:/opt/sshgate/bin/tests## 11-07-11 PAGE 29 / 35
  • 30. IV.  Réutilisation de sshGate Recyclage du projet sshGate 11-07-11 PAGE 30 / 35
  • 31. IV.  Réutilisation de sshGate Participer J 11-07-11 PAGE 31 / 35
  • 32. IV.  Réutilisation de sshGate Participer J 11-07-11 PAGE 32 / 35
  • 33. IV.  Réutilisation de sshGate Participer au développement ü  SshGate : http://www.github.com/Tauop/sshGate ü  ScriptHelper : http://www.github.com/Tauop/ScriptHelper ü  Venez nous voir sur IRC@Freenode #linagora ü  Contact : pguiran@linagora.com 11-07-11 PAGE 33 / 35
  • 34. Questions / Réponses Questions ? 11-07-11 PAGE 34 / 35
  • 35. Merci de votre attention Contact : LINAGORA – Siège social 80, rue Roque de Fillol 92800 PUTEAUX FRANCE Tél. : 0 810 251 251 (tarif local) Fax : +33 (0)1 46 96 63 64 Mail : info@linagora.com Web : www.linagora.com WWW.LINAGORA.COM