index.html 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705
  1. <!DOCTYPE html>
  2. <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
  3. <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
  4. <head>
  5. <meta charset="utf-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <link rel="shortcut icon" href="../img/favicon.ico">
  9. <title>Premières étapes de sécurisation du serveur - Les Tutoriels du Yojik</title>
  10. <link rel="stylesheet" href="../css/theme.css" />
  11. <link rel="stylesheet" href="../css/theme_extra.css" />
  12. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css" />
  13. <script>
  14. // Current page data
  15. var mkdocs_page_name = "Premi\u00e8res \u00e9tapes de s\u00e9curisation du serveur";
  16. var mkdocs_page_input_path = "5-Premi\u00e8re-Etape-S\u00e9curisation.md";
  17. var mkdocs_page_url = null;
  18. </script>
  19. <script src="../js/jquery-2.1.1.min.js" defer></script>
  20. <script src="../js/modernizr-2.8.3.min.js" defer></script>
  21. <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
  22. <script>hljs.initHighlightingOnLoad();</script>
  23. </head>
  24. <body class="wy-body-for-nav" role="document">
  25. <div class="wy-grid-for-nav">
  26. <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
  27. <div class="wy-side-scroll">
  28. <div class="wy-side-nav-search">
  29. <a href=".." class="icon icon-home"> Les Tutoriels du Yojik</a>
  30. <div role="search">
  31. <form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
  32. <input type="text" name="q" placeholder="Search docs" title="Type search term here" />
  33. </form>
  34. </div>
  35. </div>
  36. <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
  37. <p class="caption"><span class="caption-text">Installation d'un serveur sécurisé, version Debian/Buster (en cours d'écriture)</span></p>
  38. <ul class="current">
  39. <li class="toctree-l1"><a class="reference internal" href="..">Présentation</a>
  40. </li>
  41. <li class="toctree-l1"><a class="reference internal" href="../2-Installation-de-base/">Installation de base</a>
  42. </li>
  43. <li class="toctree-l1"><a class="reference internal" href="../3-ovh/">Démarrage sur serveur OVH</a>
  44. </li>
  45. <li class="toctree-l1"><a class="reference internal" href="../4-Plan/">Plan d'ensemble</a>
  46. </li>
  47. <li class="toctree-l1 current"><a class="reference internal current" href="./">Premières étapes de sécurisation du serveur</a>
  48. <ul class="current">
  49. <li class="toctree-l2"><a class="reference internal" href="#preambule">Préambule</a>
  50. <ul>
  51. <li class="toctree-l3"><a class="reference internal" href="#recuperation-de-lip-du-serveur-a-la-maison">Récupération de l'IP du serveur "à la maison"</a>
  52. </li>
  53. <li class="toctree-l3"><a class="reference internal" href="#recuperation-de-lip-de-votre-dedie-ou-vps">Récupération de l'ip de votre "dédié" ou "VPS"</a>
  54. </li>
  55. <li class="toctree-l3"><a class="reference internal" href="#preparation-du-poste-de-travail">Préparation du poste de travail</a>
  56. <ul>
  57. <li class="toctree-l4"><a class="reference internal" href="#ssh">SSH</a>
  58. </li>
  59. <li class="toctree-l4"><a class="reference internal" href="#ansible">Ansible</a>
  60. </li>
  61. </ul>
  62. </li>
  63. <li class="toctree-l3"><a class="reference internal" href="#preparation-de-notre-serveur">Préparation de notre serveur</a>
  64. </li>
  65. <li class="toctree-l3"><a class="reference internal" href="#methode-manuelle">Méthode manuelle</a>
  66. </li>
  67. <li class="toctree-l3"><a class="reference internal" href="#methode-avec-ansible">Méthode avec ansible</a>
  68. </li>
  69. </ul>
  70. </li>
  71. <li class="toctree-l2"><a class="reference internal" href="#securisation-de-ssh">Sécurisation de ssh</a>
  72. <ul>
  73. <li class="toctree-l3"><a class="reference internal" href="#operations-a-effectuer-sur-le-poste-principal">Opérations à effectuer sur le poste principal</a>
  74. </li>
  75. <li class="toctree-l3"><a class="reference internal" href="#operations-a-effectuer-sur-le-serveur-en-mode-super-utilisateur">Opérations à effectuer sur le serveur en mode super-utilisateur.</a>
  76. </li>
  77. <li class="toctree-l3"><a class="reference internal" href="#test-de-connexion">Test de connexion</a>
  78. </li>
  79. <li class="toctree-l3"><a class="reference internal" href="#securisation-plus-pousse-de-ssh">Sécurisation plus poussé de SSH</a>
  80. </li>
  81. </ul>
  82. </li>
  83. </ul>
  84. </li>
  85. </ul>
  86. </div>
  87. </div>
  88. </nav>
  89. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
  90. <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
  91. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  92. <a href="..">Les Tutoriels du Yojik</a>
  93. </nav>
  94. <div class="wy-nav-content">
  95. <div class="rst-content">
  96. <div role="navigation" aria-label="breadcrumbs navigation">
  97. <ul class="wy-breadcrumbs">
  98. <li><a href="..">Docs</a> &raquo;</li>
  99. <li>Installation d'un serveur sécurisé, version Debian/Buster (en cours d'écriture) &raquo;</li>
  100. <li>Premières étapes de sécurisation du serveur</li>
  101. <li class="wy-breadcrumbs-aside">
  102. </li>
  103. </ul>
  104. <hr/>
  105. </div>
  106. <div role="main">
  107. <div class="section">
  108. <h1 id="premieres-etapes-de-securisation-du-serveur">Premières étapes de sécurisation du serveur</h1>
  109. <h2 id="preambule">Préambule</h2>
  110. <p>Voilà la liste des étapes que je fais habituellement à la main et qu'il est toujours possible de faire à la main. J'ai décidé dans ce tutoriel d'utiliser <strong>ansible</strong> pour pouvoir automatiser ensuite la création de serveurs, plus rapide en cas de crash de disque dur ou compromission. (et aussi pour apprendre de nouvelles techniques ...)</p>
  111. <h3 id="recuperation-de-lip-du-serveur-a-la-maison">Récupération de l'IP du serveur "à la maison"</h3>
  112. <p>Il nous faut connaître l'adresse IP de notre serveur qui est allouée dynamiquement par le serveur <strong>dhcp</strong> de notre box (freebox).</p>
  113. <p>Sur le poste client à partir duquel nous nous connectons par <strong>ssh</strong> sur le serveur, nous allons lancer une commande qui va scruter notre réseau local et faire apparaître les IPs des machines du réseau. Bien sûr, cela ne fonctionne que si le serveur est "at home". Ne lancez pas un scan de tout l'internet! :D</p>
  114. <pre><code>root@aldebaran:~# nmap -sP 192.168.111.0/24 | grep "Nmap scan"
  115. Nmap scan report for 192.168.111.20
  116. Nmap scan report for 192.168.111.49
  117. Nmap scan report for switch.yojik.net (192.168.111.140)
  118. Nmap scan report for goulya.yojik.net (192.168.111.151)
  119. Nmap scan report for 192.168.111.153
  120. Nmap scan report for atom.yojik.net (192.168.111.160)
  121. Nmap scan report for freebox.yojik.net (192.168.111.254)
  122. Nmap scan report for aldebaran.yojik.net (192.168.111.150)
  123. root@aldebaran:~#
  124. </code></pre>
  125. <p>Vous voyez là toutes les machines allumées sur mon réseau local. Celle qui nous intéresse est la suivante:</p>
  126. <pre><code>**192.168.111.49**
  127. </code></pre>
  128. <p>Vous pouvez utiliser les options suivantes de <strong>nmap</strong> qui vous donnera des inbformations supplémentaires à même de vous permettre de trouver votre serveur:</p>
  129. <pre><code>eric@aldebaran:/mnt/Raid/eric/Devs/Travail/Installation serveur/Tutorial/Tuto-Buster$ sudo nmap -sn 192.168.111.0/24
  130. Starting Nmap 7.91 ( https://nmap.org ) at 2021-01-15 16:05 CET
  131. Nmap scan report for 192.168.111.13
  132. Host is up (0.19s latency).
  133. MAC Address: 54:35:30:1D:5A:C4 (Hon Hai Precision Ind.)
  134. Nmap scan report for 192.168.111.20
  135. Host is up (0.22s latency).
  136. MAC Address: 90:78:B2:A1:31:E7 (Xiaomi Communications)
  137. Nmap scan report for 192.168.111.25
  138. Host is up (0.25s latency).
  139. MAC Address: D8:12:65:5B:DD:90 (Chongqing Fugui Electronics)
  140. Nmap scan report for 192.168.111.34
  141. Host is up (0.27s latency).
  142. MAC Address: 00:73:8D:92:7E:B6 (Shenzhen Tinno Mobile Technology)
  143. Nmap scan report for 192.168.111.48
  144. Host is up (0.22s latency).
  145. MAC Address: 70:EE:50:6B:7B:3A (Netatmo)
  146. Nmap scan report for 192.168.111.49
  147. Host is up (0.00025s latency).
  148. MAC Address: 38:EA:A7:A6:CF:93 (Hewlett Packard)
  149. Nmap scan report for switch.yojik.net (192.168.111.140)
  150. Host is up (0.14s latency).
  151. MAC Address: 98:DA:C4:37:BF:F9 (Tp-link Technologies)
  152. Nmap scan report for goulya.yojik.net (192.168.111.151)
  153. Host is up (0.00014s latency).
  154. MAC Address: D0:50:99:A5:69:C5 (ASRock Incorporation)
  155. Nmap scan report for atom.yojik.net (192.168.111.160)
  156. Host is up (0.00030s latency).
  157. MAC Address: 00:23:54:C6:0A:07 (Asustek Computer)
  158. Nmap scan report for mynas2.yojik.net (192.168.111.211)
  159. Host is up (0.00021s latency).
  160. MAC Address: 00:11:32:08:D8:E1 (Synology Incorporated)
  161. Nmap scan report for freebox.yojik.net (192.168.111.254)
  162. Host is up (0.0015s latency).
  163. MAC Address: 68:A3:78:65:7B:5C (Freebox SAS)
  164. Nmap scan report for aldebaran.yojik.net (192.168.111.150)
  165. Host is up.
  166. Nmap done: 256 IP addresses (12 hosts up) scanned in 4.87 seconds
  167. </code></pre>
  168. <p>Là, on voit la tétrachiée de machines sur le réseau, entre téléphones mobiles, imprimantes wifi, station météo, lampes connectées etc .. Mon serveur est de marque <strong>HP</strong> ce qui permet de retrouver son ip dans la liste.</p>
  169. <h3 id="recuperation-de-lip-de-votre-dedie-ou-vps">Récupération de l'ip de votre "dédié" ou "VPS"</h3>
  170. <p>Vos serveurs dédiés ou vps utilisent une adresse IP (ou plusieurs) automatiquement attribuées et consultables sur la console d'administration du fournisseur (OVH chez moi)</p>
  171. <h3 id="preparation-du-poste-de-travail">Préparation du poste de travail</h3>
  172. <p>Sur notre poste de travail, nous allons préparer la configuration de <strong>SSH</strong> et de <strong>Ansible</strong>.</p>
  173. <h4 id="ssh">SSH</h4>
  174. <p>Il y a 2 parties à configurer sur le poste de travail:</p>
  175. <ul>
  176. <li>
  177. <p>/etc/ssh/ (permet de sécuriser les accès à notre poste de travail: facultatif, mais la qualité du serveur ssh de notre poste de travail est équivalente à celle des serveurs bruts de fonderie)</p>
  178. </li>
  179. <li>
  180. <p>~/.ssh/ (préparation des répertoires et des clefs)</p>
  181. </li>
  182. </ul>
  183. <p>Nous allons utiliser les recommandations de Mozilla: <a href="https://infosec.mozilla.org/guidelines/openssh">Mozilla recommendations</a> ainsi que des tutoriaux comme ceux-ci:</p>
  184. <ul>
  185. <li><a href="https://www.tronyxworld.be/2020/hardening_ssh/">Sécuriser OpenSSH</a></li>
  186. <li><a href="https://blog.syntik.fr/comment-tester-securiser-serveur-ssh/">SSH - Comment tester et sécuriser son serveur ?</a></li>
  187. <li><a href="https://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/">OpenSSH Config File Examples</a></li>
  188. </ul>
  189. <h4 id="ansible">Ansible</h4>
  190. <ul>
  191. <li>
  192. <p>Installation de ansible</p>
  193. <p>Nous allons suivre la documentation du site web de ansible: <a href="https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-debian">Installation de ansible</a></p>
  194. <p>Ajouter la ligne suivante à /etc/apt/sources.list: (avec un éditeur de votre choix)</p>
  195. <pre><code>deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main
  196. </code></pre>
  197. <p>Et lancer les commandes suivantes:</p>
  198. <pre><code>$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
  199. $ sudo apt update
  200. $ sudo apt install ansible
  201. </code></pre>
  202. <p>Lancez la commande suivante pour tester votre installation:</p>
  203. <pre><code> eric@aldebaran:/mnt/Raid/eric/Devs/Travail/Installation serveur/Tutorial/Tuto-Buster$ ansible --version
  204. ansible 2.9.16
  205. config file = /etc/ansible/ansible.cfg
  206. configured module search path = ['/home/eric/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  207. ansible python module location = /usr/lib/python3/dist-packages/ansible
  208. executable location = /usr/bin/ansible
  209. python version = 3.9.1+ (default, Jan 10 2021, 15:42:50) [GCC 10.2.1 20201224]
  210. eric@aldebaran:/mnt/Raid/eric/Devs/Travail/Installation serveur/Tutorial/Tuto-Buster$
  211. </code></pre>
  212. </li>
  213. <li>
  214. <p>Création de notre structure de répertoires</p>
  215. <p>Nous allons créer un répertoire dans notre home qui contiendra nos ""playbook"". J'ai vu qu'il existait un programme appelé <strong>ansible-galaxy</strong> qui permet de gérer la structure de ce répertoire et de charger des roles tout prêts à partir du hub.</p>
  216. <p>Entrez la commande suivante:</p>
  217. <pre><code>eric@aldebaran:~$ ansible-galaxy init aijan
  218. - Role aijan was created successfully
  219. eric@aldebaran:~$
  220. </code></pre>
  221. <p>La structure de répertoires crée:</p>
  222. <pre><code>eric@aldebaran:~$ tree aijan
  223. aijan
  224. ├── defaults
  225. │   └── main.yml
  226. ├── handlers
  227. │   └── main.yml
  228. ├── meta
  229. │   └── main.yml
  230. ├── README.md
  231. ├── tasks
  232. │   └── main.yml
  233. ├── tests
  234. │   ├── inventory
  235. │   └── test.yml
  236. └── vars
  237. └── main.yml
  238. 6 directories, 8 files
  239. eric@aldebaran:~$
  240. </code></pre>
  241. </li>
  242. </ul>
  243. <h3 id="preparation-de-notre-serveur">Préparation de notre serveur</h3>
  244. <p>Nous allons commencer à installer quelques logiciels de base, en fait ceux que j'utilise sur toutes mes machines. Bien sûr, vous pouvez faire d'autres choix, comme installer emacs comme éditeur et un autre navigateur de fichiers en mode texte. Installez simplement les outils qui vous conviennent. La méthode à suivre sera identique quelque soient les logiciels.</p>
  245. <h3 id="methode-manuelle">Méthode manuelle</h3>
  246. <p>Nous allons commencer par exécuter toutes les étapes manuellement; il sera plus facile ensuite de les automatiser.</p>
  247. <p>Pour mon usage personnel, j'installe systématiquement <strong>mc</strong>, un programme de gestion de fichiers en mode texte qui permet de se déplacer facilement dans les répertoires, d'éditer, de déplacer les fichiers etc. et <strong>vim</strong> comme éditeur de fichiers de configuration</p>
  248. <p>Notez l'utilisation de <strong>sudo</strong>: les taches d'administration seront faite sous l'utilisateur <strong>ericadmin</strong> avec l'aide de <strong>sudo</strong> pour l'élévation des privilèges.</p>
  249. <pre><code>sudo apt install mc
  250. </code></pre>
  251. <p>J'installe aussi <strong>vim</strong>, pour remplacer l'éditeur <strong>vi</strong> ou <strong>nano</strong> installé par défaut par Debian.</p>
  252. <pre><code>sudo apt install vim
  253. </code></pre>
  254. <p>Dans le tutoriel précédent, j'utilisais <strong>netstat</strong> comme outillage réseau. Il a été remplacé par <strong>ss</strong> dont nous verrons le fonctionnement plus tard. Il est disponible automatiquement apèrs installation.</p>
  255. <p>Ajoute des dépots contrib et non-free:</p>
  256. <pre><code>sudo vim /etc/apt/sources.list
  257. </code></pre>
  258. <p>Pour obtenir ceci:</p>
  259. <pre><code>deb http://deb.debian.org/debian/ buster main contrib non-free
  260. deb-src http://deb.debian.org/debian/ buster main contrib non-free
  261. deb http://security.debian.org/debian-security buster/updates main contrib non-free
  262. deb-src http://security.debian.org/debian-security buster/updates main contrib non-free
  263. # buster-updates, previously known as 'volatile'
  264. deb http://deb.debian.org/debian/ buster-updates main contrib non-free
  265. deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free
  266. # buster-backports
  267. deb http://deb.debian.org/debian buster-backports main contrib non-free
  268. deb http://deb.debian.org/debian/ buster-proposed-updates contrib non-free main
  269. deb-src http://deb.debian.org/debian buster-backports main
  270. </code></pre>
  271. <p>Mise à jour des dépôts de paquets, et mise à jour du système:</p>
  272. <pre><code>sudo apt update &amp;&amp; sudo apt upgrade
  273. </code></pre>
  274. <h3 id="methode-avec-ansible">Méthode avec ansible</h3>
  275. <p>Nous allons donc réaliser exactement la même chose, mais avec <strong>ansible</strong>:</p>
  276. <ol>
  277. <li>
  278. <p>Renseignement des variables utilisées dans les playbooks.</p>
  279. <p>Ces variables seront enregistrées dans le fichier <strong>~/aijan/vars/main.yml</strong></p>
  280. </li>
  281. <li>
  282. <p>Playbook de modification de <strong>/etc/apt/sources.list</strong> et mise à jour du catalogue de paquets</p>
  283. <p>Pour cela nous utiliserons un playbook "tout prêt".</p>
  284. <p>Installation:</p>
  285. <pre><code>eric@aldebaran:~/aijan$ ansible-galaxy install oefenweb.apt
  286. Starting galaxy role install process
  287. - downloading role 'apt', owned by oefenweb
  288. - downloading role from https://github.com/Oefenweb/ansible-apt/archive/v2.4.6.tar.gz
  289. - extracting oefenweb.apt to /home/eric/.ansible/roles/oefenweb.apt
  290. - oefenweb.apt (v2.4.6) was installed successfully
  291. eric@aldebaran:~/aijan$
  292. </code></pre>
  293. <p>La documentation est contenue dans le fichier README.md situé dans le répertoire <strong>~/.ansible/roles/oefenweb.apt</strong>. Le principe sera le même pour les autres playbooks que nous installerons et qui seront dans le répertoire <strong>roles</strong> comme ci-dessus.</p>
  294. <p>Le playbook que nous appellerons: mise-a-jour-apt.yml sera enregistré dans le répertoire <strong>tasks</strong>.</p>
  295. <ul>
  296. <li>test manuel</li>
  297. <li>enregistrement et test</li>
  298. </ul>
  299. </li>
  300. <li>
  301. <p>Playbook d'installation de <strong>vim</strong> et <strong>mc</strong></p>
  302. <p>Le playbook sera appelé: install-vim-mc.yml et sera placé également dans le répertoire <strong>tasks</strong>.</p>
  303. <ul>
  304. <li>test manuel</li>
  305. <li>enregistrement et test</li>
  306. </ul>
  307. </li>
  308. </ol>
  309. <p>Voilà, nous avons toutes les données nécessaires pour lancer <strong>ansible</strong></p>
  310. <ul>
  311. <li>Test de connexion en ligne de commande:</li>
  312. </ul>
  313. <p>J'ai créé un répertoire Ansible sur mon poste de travail et dedans j'ai créé un fichier <strong>inventaire</strong> appelé <strong>hosts</strong> dont le contenu est le suivant:</p>
  314. <pre><code> eric@aldebaran:~/Ansible$ cat hosts
  315. [aijan]
  316. 192.168.111.48
  317. </code></pre>
  318. <p>Il ne contient que 2 lignes: la première est "le petit nom" de mon serveur, mais vous pouvez lui donner n'importe quel nom de votre choix, et la ligne suivante indique l'adresse IPV4; nous aurions aussi pu mettre le <strong>FQDN</strong> comme <strong>aijan.yojik.net</strong>. J'ai utilisé l'adresse numérique car elle n'est que temporaire: nous allons lui donner une adresse fixe en IPV4 et IPV6 plus tard. Nous pourrons utiliser l'adresse <strong>FQDN</strong> une fois que l'adresse sera fixée et que la résolution de noms (DNS) sera active.</p>
  319. <pre><code> eric@aldebaran:~/Ansible$
  320. eric@aldebaran:~/Ansible$ansible -i ./hosts --ask-pass --ssh-extra-args='-o "PubkeyAuthentication=no"' all -m ping -u ericadmin
  321. SSH password:
  322. 192.168.111.48 | SUCCESS =&gt; {
  323. "changed": false,
  324. "ping": "pong"
  325. }
  326. eric@aldebaran:~/Ansible$
  327. </code></pre>
  328. <p>Nous voyons le succès de notre tentative de connexion: <strong>ansible</strong> marche ;)</p>
  329. <ul>
  330. <li>Essai d'installation d'un paquet en ligne de commande (commandes "ad-hoc"):</li>
  331. </ul>
  332. <p>Nous allons installer <strong>mc</strong> avec <strong>ansible</strong>. Voici la copie d'écran de la ligne de commande utilisée: (j'ai laissé toute la sortie de <strong>ansible</strong> pour que vous puissiez comparer.)</p>
  333. <pre><code> eric@aldebaran:~/Ansible$ ansible -i ./hosts aijan -b --become-method=sudo -m apt -a 'name=mc state=present' -u ericadmin --ask-pass --ssh-extra-args='-o "PubkeyAuthentication=no"' --ask-become-pass
  334. SSH password:
  335. SUDO password[defaults to SSH password]:
  336. [DEPRECATION WARNING]: State 'installed' is deprecated. Using state 'present' instead.. This feature will be removed in version 2.9. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
  337. 192.168.111.48 | CHANGED =&gt; {
  338. "cache_update_time": 1592657315,
  339. "cache_updated": false,
  340. "changed": true,
  341. "stderr": "",
  342. "stderr_lines": [],
  343. "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following additional packages will be installed:\n libglib2.0-0 libglib2.0-data libgpm2 mc-data shared-mime-info unzip\n xdg-user-dirs\nSuggested packages:\n gpm arj catdvi | texlive-binaries dbview djvulibre-bin epub-utils\n genisoimage gv imagemagick libaspell-dev links | w3m | lynx odt2txt\n poppler-utils python-boto python-tz xpdf | pdf-viewer zip\nThe following NEW packages will be installed:\n libglib2.0-0 libglib2.0-data libgpm2 mc mc-data shared-mime-info unzip\n xdg-user-dirs\n0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.\nNeed to get 5201 kB of archives.\nAfter this operation, 26.0 MB of additional disk space will be used.\nGet:1 http://deb.debian.org/debian buster/main amd64 libglib2.0-0 amd64 2.58.3-2+deb10u2 [1258 kB]\nGet:2 http://deb.debian.org/debian buster/main amd64 libglib2.0-data all 2.58.3-2+deb10u2 [1110 kB]\nGet:3 http://deb.debian.org/debian buster/main amd64 libgpm2 amd64 1.20.7-5 [35.1 kB]\nGet:4 http://deb.debian.org/debian buster/main amd64 mc-data all 3:4.8.22-1 [1292 kB]\nGet:5 http://deb.debian.org/debian buster/main amd64 mc amd64 3:4.8.22-1 [516 kB]\nGet:6 http://deb.debian.org/debian buster/main amd64 shared-mime-info amd64 1.10-1 [766 kB]\nGet:7 http://deb.debian.org/debian buster/main amd64 unzip amd64 6.0-23+deb10u1 [172 kB]\nGet:8 http://deb.debian.org/debian buster/main amd64 xdg-user-dirs amd64 0.17-2 [53.8 kB]\nFetched 5201 kB in 0s (16.3 MB/s)\nSelecting previously unselected package libglib2.0-0:amd64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 28088 files and directories currently installed.)\r\nPreparing to unpack .../0-libglib2.0-0_2.58.3-2+deb10u2_amd64.deb ...\r\nUnpacking libglib2.0-0:amd64 (2.58.3-2+deb10u2) ...\r\nSelecting previously unselected package libglib2.0-data.\r\nPreparing to unpack .../1-libglib2.0-data_2.58.3-2+deb10u2_all.deb ...\r\nUnpacking libglib2.0-data (2.58.3-2+deb10u2) ...\r\nSelecting previously unselected package libgpm2:amd64.\r\nPreparing to unpack .../2-libgpm2_1.20.7-5_amd64.deb ...\r\nUnpacking libgpm2:amd64 (1.20.7-5) ...\r\nSelecting previously unselected package mc-data.\r\nPreparing to unpack .../3-mc-data_3%3a4.8.22-1_all.deb ...\r\nUnpacking mc-data (3:4.8.22-1) ...\r\nSelecting previously unselected package mc.\r\nPreparing to unpack .../4-mc_3%3a4.8.22-1_amd64.deb ...\r\nUnpacking mc (3:4.8.22-1) ...\r\nSelecting previously unselected package shared-mime-info.\r\nPreparing to unpack .../5-shared-mime-info_1.10-1_amd64.deb ...\r\nUnpacking shared-mime-info (1.10-1) ...\r\nSelecting previously unselected package unzip.\r\nPreparing to unpack .../6-unzip_6.0-23+deb10u1_amd64.deb ...\r\nUnpacking unzip (6.0-23+deb10u1) ...\r\nSelecting previously unselected package xdg-user-dirs.\r\nPreparing to unpack .../7-xdg-user-dirs_0.17-2_amd64.deb ...\r\nUnpacking xdg-user-dirs (0.17-2) ...\r\nSetting up libgpm2:amd64 (1.20.7-5) ...\r\nSetting up xdg-user-dirs (0.17-2) ...\r\nSetting up libglib2.0-0:amd64 (2.58.3-2+deb10u2) ...\r\nNo schema files found: doing nothing.\r\nSetting up unzip (6.0-23+deb10u1) ...\r\nSetting up libglib2.0-data (2.58.3-2+deb10u2) ...\r\nSetting up shared-mime-info (1.10-1) ...\r\nSetting up mc-data (3:4.8.22-1) ...\r\nSetting up mc (3:4.8.22-1) ...\r\nupdate-alternatives: using /usr/bin/mcview to provide /usr/bin/view (view) in auto mode\r\nProcessing triggers for man-db (2.8.5-2) ...\r\nProcessing triggers for mime-support (3.62) ...\r\nProcessing triggers for libc-bin (2.28-10) ...\r\n",
  344. "stdout_lines": [
  345. "Reading package lists...",
  346. "Building dependency tree...",
  347. "Reading state information...",
  348. "The following additional packages will be installed:",
  349. " libglib2.0-0 libglib2.0-data libgpm2 mc-data shared-mime-info unzip",
  350. " xdg-user-dirs",
  351. "Suggested packages:",
  352. " gpm arj catdvi | texlive-binaries dbview djvulibre-bin epub-utils",
  353. " genisoimage gv imagemagick libaspell-dev links | w3m | lynx odt2txt",
  354. " poppler-utils python-boto python-tz xpdf | pdf-viewer zip",
  355. "The following NEW packages will be installed:",
  356. " libglib2.0-0 libglib2.0-data libgpm2 mc mc-data shared-mime-info unzip",
  357. " xdg-user-dirs",
  358. "0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.",
  359. "Need to get 5201 kB of archives.",
  360. "After this operation, 26.0 MB of additional disk space will be used.",
  361. "Get:1 http://deb.debian.org/debian buster/main amd64 libglib2.0-0 amd64 2.58.3-2+deb10u2 [1258 kB]",
  362. "Get:2 http://deb.debian.org/debian buster/main amd64 libglib2.0-data all 2.58.3-2+deb10u2 [1110 kB]",
  363. "Get:3 http://deb.debian.org/debian buster/main amd64 libgpm2 amd64 1.20.7-5 [35.1 kB]",
  364. "Get:4 http://deb.debian.org/debian buster/main amd64 mc-data all 3:4.8.22-1 [1292 kB]",
  365. "Get:5 http://deb.debian.org/debian buster/main amd64 mc amd64 3:4.8.22-1 [516 kB]",
  366. "Get:6 http://deb.debian.org/debian buster/main amd64 shared-mime-info amd64 1.10-1 [766 kB]",
  367. "Get:7 http://deb.debian.org/debian buster/main amd64 unzip amd64 6.0-23+deb10u1 [172 kB]",
  368. "Get:8 http://deb.debian.org/debian buster/main amd64 xdg-user-dirs amd64 0.17-2 [53.8 kB]",
  369. "Fetched 5201 kB in 0s (16.3 MB/s)",
  370. "Selecting previously unselected package libglib2.0-0:amd64.",
  371. "(Reading database ... ",
  372. "(Reading database ... 5%",
  373. "(Reading database ... 10%",
  374. "(Reading database ... 15%",
  375. "(Reading database ... 20%",
  376. "(Reading database ... 25%",
  377. "(Reading database ... 30%",
  378. "(Reading database ... 35%",
  379. "(Reading database ... 40%",
  380. "(Reading database ... 45%",
  381. "(Reading database ... 50%",
  382. "(Reading database ... 55%",
  383. "(Reading database ... 60%",
  384. "(Reading database ... 65%",
  385. "(Reading database ... 70%",
  386. "(Reading database ... 75%",
  387. "(Reading database ... 80%",
  388. "(Reading database ... 85%",
  389. "(Reading database ... 90%",
  390. "(Reading database ... 95%",
  391. "(Reading database ... 100%",
  392. "(Reading database ... 28088 files and directories currently installed.)",
  393. "Preparing to unpack .../0-libglib2.0-0_2.58.3-2+deb10u2_amd64.deb ...",
  394. "Unpacking libglib2.0-0:amd64 (2.58.3-2+deb10u2) ...",
  395. "Selecting previously unselected package libglib2.0-data.",
  396. "Preparing to unpack .../1-libglib2.0-data_2.58.3-2+deb10u2_all.deb ...",
  397. "Unpacking libglib2.0-data (2.58.3-2+deb10u2) ...",
  398. "Selecting previously unselected package libgpm2:amd64.",
  399. "Preparing to unpack .../2-libgpm2_1.20.7-5_amd64.deb ...",
  400. "Unpacking libgpm2:amd64 (1.20.7-5) ...",
  401. "Selecting previously unselected package mc-data.",
  402. "Preparing to unpack .../3-mc-data_3%3a4.8.22-1_all.deb ...",
  403. "Unpacking mc-data (3:4.8.22-1) ...",
  404. "Selecting previously unselected package mc.",
  405. "Preparing to unpack .../4-mc_3%3a4.8.22-1_amd64.deb ...",
  406. "Unpacking mc (3:4.8.22-1) ...",
  407. "Selecting previously unselected package shared-mime-info.",
  408. "Preparing to unpack .../5-shared-mime-info_1.10-1_amd64.deb ...",
  409. "Unpacking shared-mime-info (1.10-1) ...",
  410. "Selecting previously unselected package unzip.",
  411. "Preparing to unpack .../6-unzip_6.0-23+deb10u1_amd64.deb ...",
  412. "Unpacking unzip (6.0-23+deb10u1) ...",
  413. "Selecting previously unselected package xdg-user-dirs.",
  414. "Preparing to unpack .../7-xdg-user-dirs_0.17-2_amd64.deb ...",
  415. "Unpacking xdg-user-dirs (0.17-2) ...",
  416. "Setting up libgpm2:amd64 (1.20.7-5) ...",
  417. "Setting up xdg-user-dirs (0.17-2) ...",
  418. "Setting up libglib2.0-0:amd64 (2.58.3-2+deb10u2) ...",
  419. "No schema files found: doing nothing.",
  420. "Setting up unzip (6.0-23+deb10u1) ...",
  421. "Setting up libglib2.0-data (2.58.3-2+deb10u2) ...",
  422. "Setting up shared-mime-info (1.10-1) ...",
  423. "Setting up mc-data (3:4.8.22-1) ...",
  424. "Setting up mc (3:4.8.22-1) ...",
  425. "update-alternatives: using /usr/bin/mcview to provide /usr/bin/view (view) in auto mode",
  426. "Processing triggers for man-db (2.8.5-2) ...",
  427. "Processing triggers for mime-support (3.62) ...",
  428. "Processing triggers for libc-bin (2.28-10) ..."
  429. ]
  430. }
  431. Voici le réusltat de la ligne de commande relancée (où l'on voit l'action de **ansible** qui ne relance pas l'installation: il vérifie que **mc** est déjà installé (clef "changed" -&gt; false).)
  432. eric@aldebaran:~/Ansible$ ansible -i ./hosts aijan -b --become-method=sudo -m apt -a 'name=mc state=present' -u ericadmin --ask-pass --ssh-extra-args='-o "PubkeyAuthentication=no"' --ask-become-pass
  433. SSH password:
  434. SUDO password[defaults to SSH password]:
  435. 192.168.111.48 | SUCCESS =&gt; {
  436. "cache_update_time": 1592657315,
  437. "cache_updated": false,
  438. "changed": false
  439. }
  440. eric@aldebaran:~/Ansible$
  441. </code></pre>
  442. <ul>
  443. <li>
  444. <p>Utilisation des <strong>playbooks</strong> de <strong>ansible</strong>:</p>
  445. <p>Lancer les commandes en ligne de commandes n'est pas très pratique: ansible permet l'utilisation de fichiers appelés <strong>playbooks</strong> au format <strong>yaml</strong> qui décrivent toutes les actions à effectuer. Il suffit de <strong>jouer</strong> ces playbooks pour lancer toutes les commandes qui s'y trouvent.</p>
  446. <p>Il est également possible d'organiser les playbooks en <strong>roles</strong>, et donc, de créer des playbooks plus courts et lisibles. Continuons à voir les étapes suivantes avant de créer les <strong>playbooks</strong> correspondants.</p>
  447. </li>
  448. </ul>
  449. <h2 id="securisation-de-ssh">Sécurisation de ssh</h2>
  450. <p>Voir le lien suivant: <a href="http://www.guillaume-leduc.fr/">Le blog de Guillaume</a>. Nous ajouterons une deuxième étape de sécurisation avec "OTP", "one time password". Il y aura donc l'authentification par clef de <strong>SSH</strong>, avec sa phrase de passe, plus un mot de passe à usage unique généré par l'application <strong>OTP</strong> installée sur un autre poste, smartphone ou tablette.</p>
  451. <p>Nous allons aussi appliquer les recommandations de Mozilla concernant les algorithmes à utiliser. Voir ici: <a href="https://infosec.mozilla.org/guidelines/openssh">Mozilla SSH recommandations</a></p>
  452. <h3 id="operations-a-effectuer-sur-le-poste-principal">Opérations à effectuer sur le poste principal</h3>
  453. <p>Nous générons notre paire de clefs pour l'authentification par clefs sur votre poste principal (si vous n'avez pas encore de jeu de clefs). Opération à effectuer sur votre poste principal. Comme nous gérons nous-mêmes nos postes et serveurs, nous allons utiliser des algorithmes modernes pour générer les clefs SSH: <a href="https://tutox.fr/2020/04/16/generer-des-cles-ssh-qui-tiennent-la-route/">article sur Tutox</a>.</p>
  454. <p>Au lieu d'utiliser la même clef SSH sur tous nos serveurs, nous allons générer une clef distincte pour chaque serveur et rajouter la configuration spécifique à chaque serveur (adresse, port de connexion,n utilisateur etc ...dans le fichier de configuration du client SSH. J'envisage aussi l'utilisation de certificats SSH qui évitent de copier ses clefs publiques SSH sur tous les serveurs.</p>
  455. <p>Nous allons implémenter tout ça de manière incrémentale, pour savoir ce que nous faisons, et pouvoir rectifier si quelque chose foire :( .</p>
  456. <p>Voilà donc la structure de notre gestion des clefs SSH:</p>
  457. <pre><code>ssh-keygen
  458. </code></pre>
  459. <p>Il vous faut copier maintenant la clef sur le serveur:</p>
  460. <pre><code>ssh-copy-id -i ~/.ssh/id_rsa.pub ericadmin@192.168.111.23
  461. </code></pre>
  462. <p>ou</p>
  463. <pre><code>ssh-copy-id ericadmin@192.168.111.23
  464. </code></pre>
  465. <p>N'oubliez pas de mettre vos identifiants propres, bien sûr.</p>
  466. <p>On teste comme le recommande ssh:</p>
  467. <pre><code>eric@aldebaran:~$ ssh 'ericadmin@91.121.72.10'
  468. Linux adara 4.9.103-xxxx-std-ipv6-64 #222672 SMP Mon Jun 4 15:16:03 UTC 2018 x86_64
  469. Debian GNU/Linux 9 (stretch)
  470. Linux adara.yojik.eu 4.9.103-xxxx-std-ipv6-64 #222672 SMP Mon Jun 4 15:16:03 UTC 2018 x86_64 GNU/Linux
  471. Server : 141519
  472. IPv4 : 91.121.72.10
  473. IPv6 : 2001:41d0:1:7d0a::1
  474. Hostname : adara.yojik.eu
  475. Last login: Sun Jun 24 15:08:32 2018 from 82.64.48.5
  476. </code></pre>
  477. <p>Et on teste qu'on peut passer super-utilisateur à partir de ce compte.</p>
  478. <pre><code>ericadmin@adara:~$ su
  479. Mot de passe :
  480. root@adara:/home/ericadmin#
  481. </code></pre>
  482. <h3 id="operations-a-effectuer-sur-le-serveur-en-mode-super-utilisateur">Opérations à effectuer sur le <strong>serveur</strong> en mode super-utilisateur.</h3>
  483. <p>La configuration se fait dans le fichier <strong>/etc/ssh/sshd_config</strong>, fichier qu'il va falloir éditer avec <strong>vim</strong> pas exemple.</p>
  484. <p>Nous allons d'abord en faire une copie de sauvegarde:</p>
  485. <pre><code>cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
  486. vim /etc/ssh/sshd_config
  487. </code></pre>
  488. <p>Nous n'allons autoriser que la connexion d'un <strong>user</strong> d'administration (pas de connexion de <strong>root</strong> par exemple), activer l'<strong>authentification par clefs</strong>, et supprimer l'authentification par <strong>login/mot de passe</strong> (en mode ssh). Vous pourrez toujours vous connecter avec le couple login/mot de passe si vous avez un accès physique à votre serveur.</p>
  489. <p>Nous garderons le port standard d'écoute (rien à changer dans le fichier), mais j'ai ajouté une note sur le changement de port (suggéré par Laurent). Je ne suis pas convaincu que le changement de port puisse diminuer la surface d'attaque du serveur, mais pourquoi pas, c'est un changement mineur:</p>
  490. <pre><code>Port 22
  491. </code></pre>
  492. <p>Nous interdisons la connexion par <strong>root</strong>:</p>
  493. <pre><code>PermitRootLogin no
  494. </code></pre>
  495. <p>Activation de l'authentification par clef (rien à changer dans le fichier):</p>
  496. <pre><code>PubkeyAuthentication yes
  497. </code></pre>
  498. <p>Nous ajoutons une liste d'utilisateurs autorisés à se connecter.</p>
  499. <pre><code>AllowUsers ericadmin
  500. </code></pre>
  501. <p>A la place de <strong>ericadmin</strong> mettez bien sûr le nom de l'utilisateur que vous avez entré pendant la phase d'installation.</p>
  502. <p>Nous pouvons limiter le nombre de tentatives de connexion:</p>
  503. <pre><code>MaxAuthTries 1
  504. </code></pre>
  505. <p>Interdiction de la connexion par couple login/mot de passe:</p>
  506. <pre><code>PasswordAuthentication no
  507. </code></pre>
  508. <p>Désactivation de PAM</p>
  509. <pre><code>UsePAM no
  510. </code></pre>
  511. <p>Sauvegarde du fichier de configuration. (commande escape, suivie de ZZ pour vim)</p>
  512. <p>Redémarrage du service <strong>ssh</strong></p>
  513. <pre><code>systemctl restart sshd
  514. </code></pre>
  515. <h3 id="test-de-connexion">Test de connexion</h3>
  516. <p>Sur votre ordinateur principal, dans un terminal, tapez:</p>
  517. <pre><code>ssh ericadmin@192.168.111.23
  518. </code></pre>
  519. <p>Vous devez être connectés (logués) sur le serveur.</p>
  520. <p>Essayez avec l'utilisateur root:</p>
  521. <pre><code>ssh root@192.168.111.23
  522. </code></pre>
  523. <p>Cela doit échouer.</p>
  524. <pre><code>eric@aldebaran:~$ ssh 'ericadmin@192.168.111.23'
  525. Last login: Sun Dec 17 16:37:40 2017 from 192.168.111.150
  526. ericadmin@atom:~$
  527. </code></pre>
  528. <p>Voilà pour la première phase.</p>
  529. <p><em>Note</em>: Il est possible de changer le port d'écoute de <strong>SSH</strong> en changeant celui-ci dans le fichier de configuration **/etc/ssh/sshd_config:</p>
  530. <p>Faites la modification suivante:</p>
  531. <pre><code>vim /etc/ssh/sshd_config
  532. Port 2222
  533. </code></pre>
  534. <p>Et relancez sshd:</p>
  535. <pre><code>service sshd restart
  536. </code></pre>
  537. <p>Pour se connecter, utilsez la commande suivante:</p>
  538. <pre><code>ssh -p 2222 ericadmin@192.168.111.23
  539. </code></pre>
  540. <h3 id="securisation-plus-pousse-de-ssh">Sécurisation plus poussé de SSH</h3>
  541. <p>Les récentes attaques sur les méthodes de chiffrage imposent l'utilisation de clef de chiffrement plus évoluées. Les anciennes ont des failles.</p>
  542. <p>Le site de <strong>Mozilla</strong> nous permet d'ajuster nos configurations et d'utiliser les meilleures méthodes de chiffrement actuelles.</p>
  543. <h1 id="deuxieme-phase">Deuxième phase</h1>
  544. <h2 id="securisation-des-mots-de-passe">Sécurisation des mots de passe</h2>
  545. <p>J'utilise un générateur de mots de passe pour le compte <strong>root</strong> et le compte <strong>ericadmin</strong>.
  546. Il y a pléthore de générateurs de mots de passe, certains à base d'utilitaires tout prêts, d'autres créés à l'aide commande unix standards.</p>
  547. <p>Les 3 générateurs <strong>tout prêts</strong> les plus cités dans la documentation sont:</p>
  548. <ul>
  549. <li>PWGEN</li>
  550. <li>MAKPASSWD</li>
  551. <li>PASSWORDMAKER</li>
  552. </ul>
  553. <p>Pour l'installation, utilisez les commandes suivantes:</p>
  554. <ul>
  555. <li>apt install pwgen</li>
  556. <li>apt install makepasswd</li>
  557. <li>apt install passwordmaker-cli</li>
  558. </ul>
  559. <h3 id="exemples-dutilisation-de-ces-programmes">Exemples d'utilisation de ces programmes:</h3>
  560. <p>Utilisation de <strong>pwgen</strong>:</p>
  561. <p>Pour obtenir de l'aide à l'utilisation de cet utilitaire, tapez: <strong>pwgen --help</strong>. Vous pouvez faire varier le niveau de sécurité ainsi que le nombre de mots de passe générés et la longueur des mots de passe.</p>
  562. <pre><code>eric@aldebaran:~$ pwgen
  563. oow1Osho teM3chai Aim5shee Sheme1yo aiR6aem1 Vooxeiv0 Iabeenu1 kae7Xie5
  564. oacei4aV Ohb8ceib zo0shu6F Dob2chie Roo5eeLa fee5Nooh Phi0suim OMeigh2w
  565. nah2Ool5 Saix6lie EeNaem5u ooVoh3ki IN5aeF9p CuHu8Aib vaim2Jia chah0Ier
  566. ShieC6ze Teex4tie mei6ou7I Ath6aiFe uw4quoHa lad8Quee ohQuai9Y Sho5Eem6
  567. aoCaol3W ooGah9th bix6Aic9 thee1Coo lie0ahTe eiz0iiSh cieYu8Ie Ealu3chi
  568. vaeYee6c ahje9aeJ Sheenee7 eesh1Iez Odaa6kah aico6Jah aphahP4U aYePh1ev
  569. phohNie8 Chuut3ie eeb9ieDa ohp9AhGi efae5ooV Shiere5c ahV8riek Seegohv1
  570. Eetohy1a Lievoh0k jox3uf6K chai3Woo iecoh0Iu ieGh9tuz UMeex2ah Eathaur8
  571. Ood2oeho paeSah0p jaihoo1U eemoi9Ee ile1So4z OongeiN6 aaY9iuch ew3Iemoo
  572. Iech0Eey OoMie0ah OhBei1ae Ohsh4aik jah0faiT ioW7oz6t yee1Uphu ies4eeNa
  573. pooP8eeg iePoh4ya fooL3uqu ieGiej1X Ein7eifu ool7Olae eub5ooSe eyo8EiNu
  574. ach9ohWo Foog9Oev aej9geiH Thahg6Di eegei4Ai eN7quu3b waiK2ieg foThe7zi
  575. fu2Phoug iYaeg4if iLu6eeFi Aeshoo0i uxoGh6no id1TeRei diob7Pha vokuuN7h
  576. Chokei8J Iemee8ah eingei0E ubieh2Ch daiyu3EB QueiQu6H Jib0uwee wi9Xoodu
  577. eeL3osh2 Eo3Ae1ch bieWui2a ro6chiCo engu0ooF Eebeu2jo ee7Eey8t EiSeen5i
  578. ohNgai6i Iutaez4a xah1yeeG eGhi5Ouz vaiYu6ee fae0AeP5 jee0Ib2I OS3xuwae
  579. Eefohp1u eegiK6ae ohyuom7V Eij8eeNi Ou0ec7ye Eethoh4e eeHi2ugh ichoLae3
  580. UT8oopoo oox6Ohx9 ohbaL2hu oht9kaiR Ieho8Ou1 Ten6saet cae7Iexi daDuas9e
  581. ShiexaT7 Lei6etii ea4aoH8y ja8Zai8g phaeG6Hi sheNg8ee Oow5phae aa7gohPi
  582. nahS8Eeg ba6Roh9j ooRo6epo pheNoam1 johF7ii9 vuZ4Latu xai5og6H aeS8hu2I
  583. eric@aldebaran:~$
  584. </code></pre>
  585. <p>Vous pouvez prendre le mot de passe que vous voulez dans le tableau généré.
  586. Pour un seul mot de passe:</p>
  587. <pre><code>eric@aldebaran:~$ pwgen -1
  588. Eerai4Sh
  589. </code></pre>
  590. <p>Pour un mot de passe mieux sécurisé:</p>
  591. <pre><code>eric@aldebaran:~$ pwgen -1 -s
  592. tx2CqGyf
  593. </code></pre>
  594. <p>Encore plus sécurisé avec l'option -y:</p>
  595. <pre><code>eric@aldebaran:~$ pwgen -1 -s -y
  596. a+01K!U~
  597. </code></pre>
  598. <p>Utilisation de <strong>makepasswd</strong>:</p>
  599. <p>Tapez: <strong>makepasswd --help</strong> pour de l'aide à l'utilisation des paramètres.</p>
  600. <pre><code>makepasswd --count 5 --minchars 10
  601. </code></pre>
  602. <h3 id="securisation-du-mot-de-passe-super-utilisateur-root">Sécurisation du mot de passe super-utilisateur (root)</h3>
  603. <p>Utilisez un des utilitaires ci-dessus. Attention à la longueur minimale!</p>
  604. <p>Sous le user “admin”, tapez: <strong>passwd</strong> pour changer le mot de passe admin.</p>
  605. <h3 id="securisation-du-mot-de-passe-administrateur">Sécurisation du mot de passe administrateur</h3>
  606. <p>Utilisez un des utilitaires ci-dessus. Attention à la longueur minimale!
  607. Sous le user “root”, tapez: <strong>passwd</strong> pour changer le mot de passe root.</p>
  608. <h2 id="test-du-hostname">Test du hostname</h2>
  609. <p>La commande <strong>hostname</strong> nous indiquera le nom “court” de notre machine, et la commande <strong>hostname -f</strong> sa version longue avec le nom de domaine.</p>
  610. <pre><code>root@atom:/home/ericadmin# hostname
  611. atom
  612. root@atom:/home/ericadmin#
  613. root@atom:/home/ericadmin# hostname -f
  614. atom.yojik.net
  615. root@atom:/home/ericadmin#
  616. </code></pre>
  617. <p>Le résultat est bon.</p>
  618. </div>
  619. </div>
  620. <footer>
  621. <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
  622. <a href="../4-Plan/" class="btn btn-neutral" title="Plan d'ensemble"><span class="icon icon-circle-arrow-left"></span> Previous</a>
  623. </div>
  624. <hr/>
  625. <div role="contentinfo">
  626. <!-- Copyright etc -->
  627. </div>
  628. Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
  629. </footer>
  630. </div>
  631. </div>
  632. </section>
  633. </div>
  634. <div class="rst-versions" role="note" aria-label="versions">
  635. <span class="rst-current-version" data-toggle="rst-current-version">
  636. <span><a href="../4-Plan/" style="color: #fcfcfc;">&laquo; Previous</a></span>
  637. </span>
  638. </div>
  639. <script>var base_url = '..';</script>
  640. <script src="../js/theme.js" defer></script>
  641. <script src="../search/main.js" defer></script>
  642. <script defer>
  643. window.onload = function () {
  644. SphinxRtdTheme.Navigation.enable(true);
  645. };
  646. </script>
  647. </body>
  648. </html>