musee:nouveau

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
musee:nouveau [04/01/2017 19:08] – ↷ Page déplacée de services:nouveau à musee:nouveau sbentzmusee:nouveau [26/01/2017 13:41] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. 147.94.39.123
Ligne 1: Ligne 1:
 +=====Création d'un nouveau service=====
  
 +<note warning>Heimdall & Grydur éteints donc c'est obsolète. Il y a juste la fin qui est intéressant : créer son petit logo/texte pour le motd</note>
 +
 +Bon, il y a normalement tout en place pour mettre en place facilement de nouveaux services.
 +Chaque service va dans une [[musee:jails:jail]]. Et on essaye de faire propre et épuré dans une jail. Pas besoin de vim ou bash (normalement).
 +
 +====Où ?====
 +Sur [[infrastructure:heimdall]] ou [[infrastructure:grydur]]. Ce sont des machines FreeBSD avec des gros disques ZFS. Donc faites pour servir !
 +
 +Vous pouvez aussi essayer d'utiliser [[infrastructure:frigg]], mais elle est nettement moins puissante et n'a pas de disques ZFS.
 +
 +====Attends, je pige rien====
 +[[https://www.freebsd.org/doc/handbook/jails.html|Lis ça]] et [[http://erdgeist.org/arts/software/ezjail/|ça]]
 +
 +====Envoie la sauce, I am ready!====
 +On respecte les conventions :
 +^ ^ heimdall ^ grydur ^
 +| IP pour les jails | ''10.3.15.50'' à ''10.3.15.99'' | ''10.3.15.100'' à ''10.3.15.149'' |
 +On ne choisit évidemment pas une IP qui a déjà été prise...
 +
 +Exemple sur heimdall :
 +<code>
 +root@heimdall ~ # jls # on vérifie qu'on va pas faire n'importe quoi          
 +   JID  IP Address      Hostname                      Path
 +      10.3.15.50      samba                         /jail/samba
 +      10.3.15.56      pxe                           /jail/pxe
 +      10.3.15.59      graphite                      /jail/graphite
 +      10.3.15.60      grafana                       /jail/grafana
 +      10.3.15.58      duplicity                     /jail/duplicity
 +      10.3.15.57      ck-mirror                     /jail/ck-mirror
 +      10.3.15.53      bounce                        /jail/bounce
 +      10.3.15.54      ldap                          /jail/ldap
 +# # l'interface réseau pour heimdall est bge0
 +# # SAUF ACCORD EXPLICITE DU CRI, pour grydur, c'est em0; si tu mets bge0, tu vas TOUT niquer sur le réseau ext.ec-m.fr
 +root@server# ezjail-admin create ma_nouvelle_jail_avec_un_nom_explicite_et_court 'mon_interface_réseau|10.3.15.XY'
 +root@server# ezjail-admin start ma_nouvelle_jail_avec_un_nom_explicite_et_court
 +# # blah blah...
 +</code>
 +
 +Et sur Grydur :
 +<code>
 +root@grydur ~ (git)-[master] # jls
 +   JID  IP Address      Hostname                      Path
 +      10.3.15.105     terraria                      /jail/terraria
 +      10.3.15.100     phytv                         /jail/phytv
 +      10.3.15.106     owncloud                      /jail/owncloud
 +      10.3.15.108     openra                        /jail/openra
 +      10.3.15.104     nagios                        /jail/nagios
 +      10.3.15.107     mysql                         /jail/mysql
 +      10.3.15.103     minecraft                     /jail/minecraft
 +      10.3.15.101     jenkins                       /jail/jenkins
 +      10.3.15.102     gitlab                        /jail/gitlab
 +</code>
 +
 +Voilà, une jail. Toute propre, tout bien :)
 +
 +====OK, j'ai une jail, now what?====
 +===Avant toute chose===
 +On prend un instantané((qu'il est moche ce mot français...)) ZFS :
 +<code>
 +root@serveur# zfs snapshot jail/ma_jail@"$(date +%Y-%m-%d)"
 +</code>
 +
 +===PKG managment===
 +<note warning>
 +Interdiction d'utiliser ''pkg'' directement dans la jail
 +</note>
 +
 +==MAJ==
 +Bah il y a une FreeBSD dedans. Donc on en prend soin. Une idée, c'est par exemple de la mettre à jour.
 +<code>
 +root@serveur# pkg -j ma_jail upgrade
 +root@serveur# ezjail-admin restart ma_jail
 +</code>
 +Et on s'assure n'avoir rien pété... on regarde le nagios, par exemple. S'il y a une application web sur la machine, on s'assure qu'elle fonctionne encore, etc.
 +
 +==Installation de choses==
 +On upgrade, d'abord. Puis ensuite :
 +<code>
 +root@serveur# pkg -j ma_jail install mon_paquet
 +</code>
 +
 +=====C'est bien mignon, mais là, j'ai pas encore mis les pieds dans ma jail !=====
 +<note important>Si tu as déjà eu le prompt ''root@ma_jail#'', je propose que tu te suicides ou au moins que tu arrêtes le sysadmin</note>
 +
 +<code>
 +root@serveur# ezjail-admin console ma_jail
 +# # MOTD...
 +root@ma_jail#
 +</code>
 +
 +Voilà, tu as ta jail. Tu peux jouer avec comme avec un serveur normal à l'exception de **ne pas utiliser ''pkg'' dedans**
 +
 +====On configure et on fait tourner son service...====
 +Tu te débrouilles, c'est maintenant qu'intervient ta matière grise.
 +
 +<note warning>
 +Si un service étrange tourne en tant qu'un utilisateur que **tu** as créé de toutes pièces (genre le user openra dans la jail openra). Il est impératif de mettre son shell à ''/sbin/nologin'' pour éviter qu'une faille dans le logiciel ne permette à un pirate de mettre les pieds dans la jail.
 +</note>
 +
 +====Tests====
 +Avant de continuer et de le mettre en wide-open sur le réseau, on teste le service depuis [[musee:infrastructure:sif]] (Genre au pif, check_tcp).
 +
 +On écrit les tests (sur sif) pour la nouvelle jail qui sera ajoutée aux machines :
 +<file nagios /usr/local/etc/nagios/objects/ginfo/hosts.cfg>
 +define host{
 +        use                     freebsd-jail   ; oui, j'insiste pour que vous utilisiez ça
 +        host_name               ma_jail
 +        alias                   Ma super jail de la mort
 +        parents                 grydur         ; ou heimdall...
 +        address                 10.3.15.XYZ    ; avec la bonne IP
 +        }
 +</file>
 +<file nagios /usr/local/etc/nagios/objects/ginfo/services.cfg>
 +define service{
 +        use                     24x7-service   ; y'a des chances que ce soit ça dont tu aies besoin
 +        host_name               ma_jail
 +        service_description     Mon super service du feu
 +        check_command           une_commande!nagios ; cf [[services:nagios]]
 +}
 +</file>
 +====Pare-Feu====
 +Avec tes petits neurones maintenant, tu décides qui a le droit d'accès vers ton service. Puis sur odin... bah on fait de la conf pf !
 +<file pf /etc/pf.conf>
 +# Machines 
 +# [...]
 +ma_jail=10.3.15.XY
 +mon_super_port=11111
 +# [...]
 +
 +# Mon super service du feu
 +pass in quick inet proto tcp from <local> to majailportmajailportmon_super_port
 +
 +# [...]
 +</file>
 +Tu peux aussi utiliser les tables existantes, au besoin... après avoir usé de tes neurones !
 +
 +====OK, et pour le lulz====
 +===Un zoli MOTD===
 +Générique : Dans ''/etc/motd'', mettez le texte "Ma_jail" en ascii art en fonte "graffiti" [[http://patorjk.com/software/taag/|ici]]
 +
 +Moins générique : Un truc plus original
 +== Exemples ==
 +<file motd /jail/gitlab/etc/motd>
 +FreeBSD 10.1-RELEASE-p6 (GENERIC) #0: Tue Feb 24 19:00:21 UTC 2015
 +  ________.__  __  .____          ___.    
 + /  _____/|__|/  |_|    |   _____ \_ |__  
 +/    ___|  \   __\    |   \__  \ | __ \ 
 +\    \_\  \  ||  | |    |___ / __ \| \_\ \
 + \______  /__||__| |_______ (____  /___  /
 +        \/                 \/    \/    \/
 +</file>
 +<file motd /jail/openra/etc/motd>
 +FreeBSD 10.1-RELEASE-p6 (GENERIC) #0: Tue Feb 24 19:00:21 UTC 2015
 +
 +                 !#########       #
 +               !########         ##!
 +            !########              ###
 +         !##########                  ####
 +       ######### #####                ######
 +        !###!      !####             ######
 +          !           #####            ######!
 +                        !####        #######
 +                           #####       #######
 +                             !####  #######!
 +                                ####!########
 +             ##                   ##########
 +           ,######         !#############
 +         ,#### ########################!####!
 +       ,####'     ##################!'    #####
 +     ,####'            #######              !####!
 +    ####'                                      #####
 +    ~##                                          ##~
 +              Welcome back, commander.
 +</file>