{"id":31240,"date":"2019-10-31T21:40:13","date_gmt":"2019-10-31T18:40:13","guid":{"rendered":"https:\/\/prohoster.info\/blog\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij\/"},"modified":"2019-10-31T21:40:13","modified_gmt":"2019-10-31T18:40:13","slug":"linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij","title":{"rendered":"Linux Quest. F\u00e9licitations aux gagnants et pr\u00e9sentation des solutions des d\u00e9fis","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Linux Quest. F\u00e9licitations aux gagnants et pr\u00e9sentation des solutions des d\u00e9fis\" src=\"\/wp-content\/uploads\/2019\/04\/a8c28d0ba562680119475609a56136d6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLe 25 mars, nous avons ouvert les inscriptions pour <noindex><a rel=\"nofollow\" href=\"https:\/\/linux.mail.ru\">Linux Quest<\/a><\/noindex>, un jeu pour les passionn\u00e9s et les connaisseurs du syst\u00e8me d'exploitation Linux. Quelques statistiques : 1117 personnes se sont inscrites au jeu, parmi lesquelles 317 ont trouv\u00e9 au moins une cl\u00e9, 241 ont r\u00e9ussi la premi\u00e8re \u00e9tape, 123 la seconde et 70 ont pass\u00e9 la troisi\u00e8me \u00e9tape. Aujourd'hui, notre jeu est arriv\u00e9 \u00e0 son terme, et nous f\u00e9licitons nos gagnants ! <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li><b>La premi\u00e8re place a \u00e9t\u00e9 remport\u00e9e par Alexandre Teldikov.<\/b><br \/>\nAlexandre a d\u00e9clar\u00e9 qu'il \u00e9tait un administrateur syst\u00e8me typique. Il vit \u00e0 Volgograd et administre divers syst\u00e8mes Unix-like depuis pr\u00e8s de vingt ans. Il a eu l'opportunit\u00e9 de travailler dans des fournisseurs d'acc\u00e8s Internet, une banque, et un int\u00e9grateur syst\u00e8me. Actuellement, il travaille \u00e0 distance pour une petite entreprise, s'occupant de l'infrastructure cloud pour un gros client \u00e9tranger. Il aime lire et \u00e9couter de la musique. Concernant le jeu, Alexandre a dit qu'il l'a globalement appr\u00e9ci\u00e9 et qu'il aimait ce genre de d\u00e9fis. Lors d'un entretien dans une entreprise, il a rencontr\u00e9 des probl\u00e8mes similaires \u00e0 ceux de Hackerrank, ce qui a \u00e9t\u00e9 int\u00e9ressant.<\/li>\n<li><b>La seconde place revient \u00e0 Roman Suslov.<\/b><br \/>\nRoman est de Moscou. Il a 37 ans. Il travaille en tant qu'ing\u00e9nieur Linux\/Unix dans l'entreprise \u00ab Infostystems Jet \u00bb. Dans le cadre de son travail, il doit s'occuper de l'administration et du d\u00e9pannage des syst\u00e8mes Linux\/Unix + SAN. Ses centres d'int\u00e9r\u00eat sont vari\u00e9s : syst\u00e8mes Linux, programmation, reverse engineering, s\u00e9curit\u00e9 de l'information, Arduino. \u00c0 propos du jeu, Roman a soulign\u00e9 qu'il l'a globalement appr\u00e9ci\u00e9. \u00ab J'ai un peu exerc\u00e9 mes neurones et me suis \u00e9loign\u00e9 de la monotonie de la vie quotidienne. \ud83d\ude42 J'aimerais avoir plus de t\u00e2ches, car je n'ai pas eu le temps d'entrer dans le vif du sujet avant que le jeu ne se termine. \u00bb<\/li>\n<li><b>La troisi\u00e8me place est pour alex3d.<\/b><br \/>\nAlex vit \u00e0 Moscou et travaille dans le d\u00e9veloppement de logiciels. \u00ab Merci pour le concours, c'\u00e9tait int\u00e9ressant de tester mon skill google-fu. \u00bb<\/li>\n<\/ul>\n<p>\nAussi dans le classement des 10 meilleurs joueurs :<\/p>\n<ul>\n<li>Yevgeniy Saldayev<\/li>\n<li>Markel Mokhnachevskiy<\/li>\n<li>Konstantin Konosov<\/li>\n<li>Pavel Sergeyev<\/li>\n<li>Vladimir Bovaev<\/li>\n<li>Ivan Bubnov<\/li>\n<li>Pavlo Klets<\/li>\n<\/ul>\n<p>\nNous comprenons qu'il existe de nombreuses solutions \u00e0 tous nos probl\u00e8mes, ci-dessous nous d\u00e9crivons quelques-unes des solutions possibles. <\/p>\n<h3>1. Premi\u00e8re \u00e9tape <\/h3>\n<p>\nNous l'avons appel\u00e9e \u00ab Est-tu vraiment administrateur ? \u00bb, car la t\u00e2che \u00e9tait assez simple : r\u00e9parer un service chaleureux et convivial.<\/p>\n<h4>1.1. Faits int\u00e9ressants :<\/h4>\n<p>\nDeux joueurs ont trouv\u00e9 la premi\u00e8re cl\u00e9 dans les 15 premi\u00e8res minutes du jeu, et au bout d'une heure, nous avions trois leaders qui avaient r\u00e9ussi la t\u00e2che. <\/p>\n<h4>1.2. T\u00e2che<\/h4>\n<p>\nVous avez rejoint une entreprise o\u00f9 il n'y avait pas de sp\u00e9cialiste comp\u00e9tent en technologies de l'information depuis longtemps. Avant de mettre de l'ordre, il faut r\u00e9soudre le probl\u00e8me urgent qui bloque le fonctionnement du bureau.<\/p>\n<p>La femme de m\u00e9nage a accroch\u00e9 le c\u00e2ble d'alimentation du rack serveur avec son balai. L'alimentation a \u00e9t\u00e9 r\u00e9tablie, mais un site web tr\u00e8s important ne fonctionne toujours pas. Ce site est crucial car l'entreprise n'est pas tr\u00e8s pr\u00e9occup\u00e9e par la s\u00e9curit\u00e9 de l'information, et sur la page d'accueil, on peut trouver en clair le mot de passe admin de l'ordinateur du PDG.<\/p>\n<p>R\u00e9cemment, le mot de passe a \u00e9t\u00e9 chang\u00e9, et tout le monde a oubli\u00e9 le nouveau. Le directeur ne peut pas travailler. Des rumeurs circulent disant que cette machine contenait \u00e9galement des cl\u00e9s qui pourraient nous aider \u00e0 d\u00e9chiffrer la sauvegarde des documents comptables.<\/p>\n<p>Tout le monde attend une r\u00e9solution rapide de la situation !<\/p>\n<h4>1.3. Solution<\/h4>\n<p>\n1. Tout d'abord, il faut changer le mot de passe root sur la machine virtuelle pour pouvoir y acc\u00e9der. Lorsque nous d\u00e9marrons, nous remarquons que c'est un serveur Ubuntu 16.04.<\/p>\n<p>Pour r\u00e9initialiser le mot de passe root, nous red\u00e9marrons la machine. Lors du d\u00e9marrage, au moment o\u00f9 le menu grub appara\u00eet, nous passons en mode \u00e9dition du choix Ubuntu avec la touche \u00ab e \u00bb. Nous modifions la ligne linux et ajoutons \u00e0 la fin <code>init=\\\/bin\\\/bash<\/code>. Nous chargeons avec Ctrl+x, et obtenons un shell. Nous remontons la racine avec rw, et changeons le mot de passe :<\/p>\n<pre><code class=\"bash\">$ mount -o remount,rw \\\/dev\\\/mapper\\\/ubuntu--vg-root\n$ passwd<\/code><\/pre>\n<p>\nN'oublions pas le sync, et red\u00e9marrons.<\/p>\n<p>2. Dans les conditions, il est dit que notre serveur web ne fonctionne pas, voyons :<\/p>\n<pre><code class=\"bash\">$ curl localhost\nNot Found\nThe requested URL \\\/ was not found on this server.\nApache\\\/2.4.18 <\/code><\/pre>\n<p>\nDonc, en fait, Apache est lanc\u00e9 mais renvoie un code 404. Regardons la config :<\/p>\n<pre><code class=\"bash\">$ vim \\\/etc\\\/apache2\\\/sites-enabled\\\/000-default.conf<\/code><\/pre>\n<p>\nIci se trouve la cl\u00e9 \u2014 StevenPaulSteveJobs.<\/p>\n<p>V\u00e9rifions le chemin <code>\/usr\/share\/WordPress<\/code> \u2014 il n'y en a pas, mais il y a <code>\/usr\/share\/wordpress<\/code>. Nous modifions la config et red\u00e9marrons Apache.<\/p>\n<pre><code class=\"bash\">$ systemctl restart apache2<\/code><\/pre>\n<p>\n3. Essayons \u00e0 nouveau, et obtenons l'erreur :<\/p>\n<pre><code class=\"bash\">Warning: mysqli_real_connect(): (HY000\\\/2002): Connection refused in \\\/usr\\\/share\\\/wordpress\\\/wp-includes\\\/wp-db.php on line 1488<\/code><\/pre>\n<p>\nLa base de donn\u00e9es n'est pas lanc\u00e9e ?<\/p>\n<pre><code class=\"bash\">$ systemctl status mysql\nActive: active (running)<\/code><\/pre>\n<p>\nQuel est le probl\u00e8me ? Il faut enqu\u00eater. Pour cela, il faut acc\u00e9der \u00e0 MySQL, comme d\u00e9crit dans <noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/resetting-permissions.html\">documentation<\/a><\/noindex>. Un des points de la documentation nous recommande de sp\u00e9cifier l'option <code>skip-grant-tables<\/code> dans <code>\/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code>. Ici se trouve aussi une cl\u00e9 \u2014 AugustaAdaKingByron.<\/p>\n<p>Nous corrigeons les droits pour l'utilisateur <code>'wp'@'localhost'<\/code>. Nous lan\u00e7ons MySQL, le rendons accessible sur le r\u00e9seau en commentant dans la config l'option <code>skip-networking<\/code>.<\/p>\n<p>4. Apr\u00e8s avoir effectu\u00e9 ces \u00e9tapes, le serveur web d\u00e9marre, mais le site ne fonctionne toujours pas, car <\/p>\n<pre><code class=\"bash\">Avertissement : require_once(\/\/usr\/share\/wordpress\/wp-content\/themes\/twentysixteen\/footer.php) : \u00e9chec de l'ouverture du flux : Permission refus\u00e9e dans \/usr\/share\/wordpress\/wp-includes\/template.php \u00e0 la ligne 562<\/code><\/pre>\n<p>\nNous corrigeons les droits sur le fichier.<\/p>\n<pre><code class=\"bash\">$ chmod 644 \/usr\/share\/wordpress\/wp-content\/themes\/twentysixteen\/footer.php\n<\/code><\/pre>\n<p>\nNous actualisons la page, visitons le site et trouvons la cl\u00e9 \u2014 BjarneStroustrup ! Nous avons trouv\u00e9 toutes les trois cl\u00e9s, notre directeur peut travailler, nous avons d\u00e9chiffr\u00e9 les fichiers de la comptabilit\u00e9. Tout le monde est heureux, et tu as beaucoup de travail devant toi pour \u00e9tablir l'infrastructure, les sauvegardes et la s\u00e9curit\u00e9 de l'entreprise. <\/p>\n<h3>2. Deuxi\u00e8me \u00e9tape<\/h3>\n<p>\nIl fallait r\u00e9soudre le probl\u00e8me de collecte d'analytique. Tout le monde aime l'analytique \u2014 qui va d'o\u00f9 et en quelles quantit\u00e9s. Nous avons imagin\u00e9 un cas, mais avec lequel tous les ing\u00e9nieurs peuvent d'une mani\u00e8re ou d'une autre \u00eatre confront\u00e9s dans leur vie.<\/p>\n<h4>2.1. Faits int\u00e9ressants<\/h4>\n<p>\nUn de nos joueurs a saisi la bonne cl\u00e9 dans les 10 premi\u00e8res minutes de jeu, et dans la premi\u00e8re heure, nous avons eu un leader qui a r\u00e9ussi la mission.<\/p>\n<h4>2.2. Mission<\/h4>\n<p>\nTu es arriv\u00e9 au travail dans l'entreprise, des gestionnaires sont venus vers toi et ont demand\u00e9 de trouver \u00e0 qui \u00e9taient envoy\u00e9s les e-mails d'Afrique. Il faut construire un top 21 des adresses des destinataires. Les premi\u00e8res lettres des adresses des destinataires \u2014 c'est la cl\u00e9. Un b\u00e9mol : le serveur de messagerie \u00e0 travers lequel les e-mails ont \u00e9t\u00e9 envoy\u00e9s ne se charge pas. Tout le monde attend une solution rapide \u00e0 ce probl\u00e8me !<\/p>\n<h4>2.3. Solution<\/h4>\n<p>\n1. Le serveur ne se charge pas \u00e0 cause d'une partition swap inexistante dans fstab, lors du d\u00e9marrage, le syst\u00e8me essaie de la monter et plante. Comment d\u00e9marrer ?<\/p>\n<p>T\u00e9l\u00e9chargeons l'image, nous avons t\u00e9l\u00e9charg\u00e9 CentOS 7, d\u00e9marrez avec Live CD\/DVD (D\u00e9pannage -&gt; Secours), montons le syst\u00e8me, corrigeons <code>\/etc\/fstab<\/code>Nous trouvons tout de suite la premi\u00e8re cl\u00e9 \u2014 GottfriedWilhelm11646Leibniz !<\/p>\n<p>Cr\u00e9ons un swap :<\/p>\n<pre><code class=\"bash\">$ lvcreate -n swap centos -L 256M\n$ sync &amp;&amp; reboot<\/code><\/pre>\n<p>\n2. Comme toujours, pas de mot de passe, il faut changer le mot de passe root sur la machine virtuelle. Nous avons d\u00e9j\u00e0 fait cela dans la premi\u00e8re t\u00e2che. Nous changeons et acc\u00e9dons avec succ\u00e8s au serveur, mais il red\u00e9marre imm\u00e9diatement. Le serveur red\u00e9marre si rapidement que nous n'avons m\u00eame pas le temps de consulter tous les journaux attentivement. Comment comprendre ce qui se passe ?<\/p>\n<p>Nous red\u00e9marrons avec le livecd, examinons attentivement les journaux du syst\u00e8me et au cas o\u00f9, nous jetons un \u0153il sur cron, \u00e9tant donn\u00e9 cette p\u00e9riodicit\u00e9. Nous y trouvons le probl\u00e8me et la deuxi\u00e8me cl\u00e9 \u2014 Alan1912MathisonTuring !<\/p>\n<p>Il faut <code>\/etc\/crontab<\/code> supprimer ou commenter la ligne <code>echo b &gt; \/proc\/sysrq-trigger<\/code>.<\/p>\n<p>3. Une fois que le serveur a d\u00e9marr\u00e9, vous pouvez ex\u00e9cuter la t\u00e2che des gestionnaires : \u00ab Quelles sont les adresses de l'Afrique ? \u00bb Cette information est g\u00e9n\u00e9ralement accessible au public. Vous pouvez la trouver sur Internet en cherchant des expressions telles que \u00ab adresse IP Afrique \u00bb, \u00ab base de donn\u00e9es geoip \u00bb. Pour r\u00e9soudre cette t\u00e2che, vous pouvez utiliser des bases de donn\u00e9es de distribution d'adresses accessibles librement (geoip). En guise de r\u00e9f\u00e9rence, nous avons utilis\u00e9 une base de donn\u00e9es. <noindex><a rel=\"nofollow\" href=\"https:\/\/dev.maxmind.com\/geoip\/geoip2\/geolite2\/\">MaxMind GeoLite2<\/a><\/noindex>, disponible sous la licence Creative Commons Attribution-ShareAlike 4.0.<\/p>\n<p>Essayons de r\u00e9soudre notre t\u00e2che en utilisant uniquement les utilitaires syst\u00e8mes Linux, mais en r\u00e9alit\u00e9, elle peut \u00eatre r\u00e9solue de nombreuses fa\u00e7ons : avec des utilitaires de filtrage de texte et \u00e0 l'aide de scripts dans divers langages de programmation.<\/p>\n<p>Pour commencer, obtenons simplement les paires \u00ab IP de l'exp\u00e9diteur \u2014 destinataire \u00bb \u00e0 partir du journal des mails. <code>\/var\/log\/maillog<\/code> (nous allons construire un tableau des e-mails des destinataires \u2014 IP de l'exp\u00e9diteur). Cela peut \u00eatre fait avec la commande suivante :<\/p>\n<pre><code class=\"bash\">$ cat \/var\/log\/maillog | fgrep -e ' connect from' -e 'status=sent' | sed 's\/[][]\/ \/g' | awk '\/connect from\/ {ip=$11} \/status=sent\/ {print $10\" \"ip}' &gt; log1.txt<\/code><\/pre>\n<p>\nEt avant de continuer avec la construction de la base de donn\u00e9es des adresses de l'Afrique, jetons un \u0153il aux principales adresses IP des exp\u00e9diteurs.<\/p>\n<pre><code class=\"bash\">$ cat log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n 40\n5206 L2JhbjAbM67GA99jg@mail.ru\n4165 iHKTBkegOQa6fIALq@mail.ru\n3739 nHkcBl7BdgXxijSYD7@mail.ru\n3405 SMAzPJAzbl9vp4hAXo@mail.ru\n3346 xILz6d7P@mail.ru\n<\/code><\/pre>\n<p>\nParmi tous, les trois premiers destinataires se distinguent clairement par le nombre de courriels. Si nous recherchons les adresses IP des exp\u00e9diteurs ayant envoy\u00e9 des courriels aux adresses de ce top 3, nous pouvons noter une nette domination de certains r\u00e9seaux :<\/p>\n<pre><code class=\"bash\">$ cat log1.txt | fgrep 'L2JhbjAbM67GA99jg@mail.ru' | cut -d' ' -f2 | sort | cut -d'.' -f1 | uniq -c | sort -r | head\n831 105\n806 41\n782 197\n664 196\n542 154\n503 102\n266 156\n165 45\n150 160\n108 165<\/code><\/pre>\n<p>\nLa majorit\u00e9 des r\u00e9seaux 105\/8, 41\/8, 196\/8, 197\/8 est attribu\u00e9e \u00e0 AFRINIC \u2014 l'un des cinq registres Internet r\u00e9gionaux charg\u00e9s de la distribution des ressources Internet. AFRINIC g\u00e8re l'espace d'adressage en Afrique. Le r\u00e9seau 41\/8 appartient enti\u00e8rement \u00e0 AFRINIC.<\/p>\n<pre><code class=\"bash\">https:\/\/www.nic.ru\/whois\/?searchWord=105.0.0.0\nhttps:\/\/www.nic.ru\/whois\/?searchWord=41.0.0.0\n<\/code><\/pre>\n<p>\nAinsi, la r\u00e9ponse \u00e0 la t\u00e2che se trouve, en fait, dans le journal lui-m\u00eame.<\/p>\n<pre><code class=\"bash\">$ cat log1.txt | fgrep -e '105.' -e '41.' -e '196.' -e '197.' -e '154.' -e '102.' | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21\n4209 L2JhbjAbM67GA99jg@mail.ru\n3313 iHKTBkegOQa6fIALq@mail.ru\n2704 nHkcBl7BdgXxijSYD7@mail.ru\n2215 uvRbp1O@mail.ru\n1774 sPmMsmmFiV@mail.ru\n1448 BtG3aHgQgCKuze2AKuRH@mail.ru\n1233 eQpuuQ2uQdbwRL3@mail.ru\n958 nJT5dpaBZ@mail.ru\n862 ef4WbQiB@mail.ru\n762 dQCqKL6eVminFfH7wLA@mail.ru\n632 ifq6Rd1HxuCQOdO9@mail.ru\n539 cFwm2ssypMmx1sA7@mail.ru\n531 twtTnr4G@mail.ru\n431 TSrczgYASrR11Hs3qCi@mail.ru\n380 o3r3exc3OL@mail.ru\n357 rzmjr2VAHK@mail.ru\n348 vnPr6YjJ3ndw@mail.ru\n312 anOjFXrwOtLP2Rl1Vcz6@mail.ru\n289 dvny5zHmRW8fiT@mail.ru\n282 sgg9jPxFDYvzw8Kr@mail.ru\n274 tKSevzA7GntJ@mail.ru<\/code><\/pre>\n<p>\n\u00c0 ce stade, nous obtenons la cha\u00eene \u00abLinuxBenedictTorvadst\u00bb.<\/p>\n<p>Cl\u00e9 correcte : \u00abLinusBenedictTorvalds\u00bb.<\/p>\n<p>La cha\u00eene obtenue contient une erreur par rapport \u00e0 la cl\u00e9 correcte dans les trois derniers caract\u00e8res. Cela est d\u00fb au fait que les r\u00e9seaux que nous avons choisis ne sont pas enti\u00e8rement attribu\u00e9s aux pays d'Afrique et \u00e0 la fa\u00e7on dont les e-mails sont distribu\u00e9s par adresses IP dans notre journal.<\/p>\n<p>Avec suffisamment de pr\u00e9cision sur les plus grands r\u00e9seaux attribu\u00e9s aux pays d'Afrique, une r\u00e9ponse exacte peut \u00eatre obtenue :<\/p>\n<pre><code class=\"bash\">$ cat log1.txt | fgrep -e' '105.{30..255}. -e' '41. -e' '196.{64..47}. -e' '196.{248..132}. -e' '197.{160..31}. -e' '154.{127..255}. -e' '102.{70..255}. -e' '156.{155..255}. | awk '{print $1}' | sort | uniq -c | sort -r | head -n 21\n3350 L2JhbjAbM67GA99jg@mail.ru\n2662 iHKTBkegOQa6fIALq@mail.ru\n2105 nHkcBl7BdgXxijSYD7@mail.ru\n1724 uvRbp1O@mail.ru\n1376 sPmMsmmFiV@mail.ru\n1092 BtG3aHgQgCKuze2AKuRH@mail.ru\n849 eQpuuQ2uQdbwRL3@mail.ru\n712 nJT5dpaBZ@mail.ru\n584 ef4WbQiB@mail.ru\n463 dQCqKL6eVminFfH7wLA@mail.ru\n365 ifq6Rd1HxuCQOdO9@mail.ru\n269 cFwm2ssypMmx1sA7@mail.ru\n225 twtTnr4G@mail.ru\n168 TSrczgYASrR11Hs3qCi@mail.ru\n142 o3r3exc3OL@mail.ru\n111 rzmjr2VAHK@mail.ru\n 96 vnPr6YjJ3ndw@mail.ru\n 78 anOjFXrwOtLP2Rl1Vcz6@mail.ru\n 56 lHzWiB7ExvRtSbAcU9@mail.ru\n 56 dvny5zHmRW8fiT@mail.ru\n 40 sgg9jPxFDYvzw8Kr@mail.ru<\/code><\/pre>\n<p>\nLe probl\u00e8me peut \u00e9galement \u00eatre r\u00e9solu par un autre moyen.<br \/>\nT\u00e9l\u00e9chargez MaxMind, d\u00e9compressez-le, et les trois commandes suivantes r\u00e9solvent \u00e9galement notre probl\u00e8me.<\/p>\n<pre><code class=\"bash\">$ cat GeoLite2-Country-Locations-ru.csv | grep \"Afrique\" | cut -d',' -f1 &gt; africaIds.txt\n$ grep -Ff africaIds.txt GeoLite2-Country-Blocks-IPv4.csv | cut -d',' -f1 &gt; africaNetworks.txt\n$ grepcidr -f africaNetworks.txt log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n21\n<\/code><\/pre>\n<p>\nD'une mani\u00e8re ou d'une autre, nous avons finalement compt\u00e9 les statistiques, et les responsables ont obtenu les donn\u00e9es n\u00e9cessaires pour travailler ! <\/p>\n<h3>3. Troisi\u00e8me \u00e9tape<\/h3>\n<p>\nLa troisi\u00e8me \u00e9tape est quelque peu similaire \u00e0 la premi\u00e8re \u2014 il faut \u00e9galement r\u00e9parer le service chaleureux et convivial, mais tout est plus compliqu\u00e9 que dans la premi\u00e8re t\u00e2che.<\/p>\n<h4>3.1. Faits int\u00e9ressants<\/h4>\n<p>\nAu cours des 15 premi\u00e8res minutes, trois joueurs ont trouv\u00e9 la premi\u00e8re cl\u00e9, et 2 heures et 20 minutes apr\u00e8s le d\u00e9but de l'\u00e9tape, notre vainqueur a r\u00e9ussi \u00e0 accomplir la t\u00e2che.<\/p>\n<h4>3.2. T\u00e2che<\/h4>\n<p>\nVous avez commenc\u00e9 \u00e0 travailler dans une entreprise o\u00f9 tous les documents de l'entreprise sont stock\u00e9s sur un serveur Wiki interne. L'ann\u00e9e derni\u00e8re, un ing\u00e9nieur a command\u00e9 3 nouveaux disques pour le serveur en plus d'un existant, arguant que pour la redondance du syst\u00e8me, il fallait installer les disques en certains ensembles. Malheureusement, quelques semaines apr\u00e8s leur installation, l'ing\u00e9nieur est parti en vacances en Inde et n'est jamais revenu.<\/p>\n<p>Pendant plusieurs ann\u00e9es, le serveur a fonctionn\u00e9 sans interruption, mais il y a quelques jours, le r\u00e9seau de l'entreprise a \u00e9t\u00e9 pirat\u00e9. Selon les instructions, le personnel de s\u00e9curit\u00e9 a extrait les disques du serveur et vous les a envoy\u00e9s. Pendant le transport, l'un des disques a \u00e9t\u00e9 perdu de fa\u00e7on irr\u00e9versible.<\/p>\n<p>Il est n\u00e9cessaire de restaurer le fonctionnement de la Wiki, en priorit\u00e9 le contenu des pages Wiki. Un certain morceau de texte, qui se trouvait sur l'une des pages de cette Wiki, est le mot de passe du serveur 1C et est urgent pour le d\u00e9bloquer.<\/p>\n<p>De plus, il y avait quelque part sur les pages de la Wiki ou ailleurs des mots de passe pour le serveur de logs et le serveur de vid\u00e9osurveillance, qui doivent \u00e9galement \u00eatre r\u00e9cup\u00e9r\u00e9s, car sans eux, l'enqu\u00eate sur l'incident est impossible. Ils attendent toujours une r\u00e9solution rapide de la question !<\/p>\n<h4>3.3. Solution<\/h4>\n<p>\n1. Nous essayons de d\u00e9marrer alternativement avec les disques que nous avons et recevons le m\u00eame message partout :<\/p>\n<pre><code class=\"bash\">Aucun support d'amor\u00e7age trouv\u00e9 ! Syst\u00e8me arr\u00eat\u00e9 \n<\/code><\/pre>\n<p>\nNous devons d\u00e9marrer d'un support. Encore une fois, le d\u00e9marrage depuis un Live CD\/DVD (D\u00e9pannage -&gt; Sauvetage) nous sauve. Lors du d\u00e9marrage, nous essayons de trouver la partition de d\u00e9marrage, mais nous ne la trouvons pas et tombons dans le shell. Nous essayons d'\u00e9tudier ce qu'il en est des disques. Il est connu qu'il y en a trois. Les outils pour cela sont plus nombreux dans la version 7 de CentOS, o\u00f9 il y a les commandes <code>blkid<\/code> ou <code>lsblk<\/code>, qui nous montrent toutes les informations sur les disques. <\/p>\n<p>Comment et que faisons-nous :<\/p>\n<pre><code class=\"bash\">$ ls \/dev\/sd*<\/code><\/pre>\n<p>\nIl est imm\u00e9diatement \u00e9vident que <\/p>\n<pre><code class=\"bash\">\/dev\/sdb1 - ext4\n\/dev\/sdb2 - \u0447\u0430\u0441\u0442\u044c lvm\n\/dev\/sda1 \u0438 \/dev\/sdc1 - \u0447\u0430\u0441\u0442\u0438 \u0440\u0435\u0439\u0434\u0430\n\/dev\/sda2 \u0438 \/dev\/sdc2 - \u043f\u0440\u043e \u043d\u0438\u0445 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442<\/code><\/pre>\n<p>\nNous montons sdb1, et il est clair que c'est la partition de d\u00e9marrage de CentOS 6.<\/p>\n<pre><code class=\"bash\">$ mkdir \/mnt\/sdb1 &amp;&amp; mount \/dev\/sdb1 \/mnt\/sdb1<\/code><\/pre>\n<p>\n\u00c9videmment, nous allons dans la partition grub et y trouvons la premi\u00e8re cl\u00e9 \u2014 James191955Gosling dans un fichier inhabituel.<\/p>\n<p>2. Nous \u00e9tudions pvs et lvs, car nous travaillons avec LVM. Nous voyons qu'il devrait y avoir 2 volumes physiques, l'un d'eux est introuvable et se plaint d'un uid perdu. Nous voyons qu'il devrait y avoir 2 volumes logiques : root et swap, tandis que root est partiellement perdu (attribut P pour le volume). Il n'est pas possible de le monter, ce qui est dommage ! Il nous est tr\u00e8s n\u00e9cessaire.<\/p>\n<p>Il y a encore 2 disques, nous regardons ces derniers, les assemblons et les montons :<\/p>\n<pre><code class=\"bash\">$ mdadm --examine --verbose --scan\n$ mdadm --assemble --verbose --scan\n$ mkdir \/mnt\/md127 &amp;&amp; mount \/dev\/md127 \/mnt\/md127 <\/code><\/pre>\n<p>\nNous regardons, il est clair que c'est la partition de d\u00e9marrage de CentOS 6 et un doublon de ce qui est d\u00e9j\u00e0 pr\u00e9sent sur <code>\/dev\/sdb1<\/code>, et ici \u00e0 nouveau la m\u00eame cl\u00e9 \u2014 DennisBMacAlistairCRitchie !<br \/>\nVoyons comment il est assembl\u00e9 <code>\/dev\/md127<\/code>.<\/p>\n<pre><code class=\"bash\">$ mdadm --detail \/dev\/md127\n<\/code><\/pre>\n<p>\nNous voyons qu'il aurait d\u00fb \u00eatre assembl\u00e9 \u00e0 partir de 4 disques, il a \u00e9t\u00e9 assembl\u00e9 \u00e0 partir de deux <code>\/dev\/sda1<\/code> et <code>\/dev\/sdc1<\/code>, ils auraient d\u00fb \u00eatre les num\u00e9ros 2 et 4 dans le syst\u00e8me. Nous supposons que nous pouvons \u00e9galement assembler un tableau \u00e0 partir de <code>\/dev\/sda2<\/code> et <code>\/dev\/sdc2<\/code> . Il est incompr\u00e9hensible pourquoi il n'y a pas de m\u00e9tadonn\u00e9es sur eux, mais cela est de la responsabilit\u00e9 de l'administrateur qui est quelque part \u00e0 Goa. Nous supposons qu'il devrait y avoir un RAID10 ici, bien qu'il y ait des options. Nous assemblons : <\/p>\n<pre><code class=\"bash\">$ mdadm --create --verbose \/dev\/md0 --assume-clean --level=10 --raid-devices=4 missing \/dev\/sda2 missing \/dev\/sdc2\n<\/code><\/pre>\n<p>\nNous regardons blkid, pvs, lvs. Nous d\u00e9couvrons que nous avons assembl\u00e9 le volume physique qui nous manquait auparavant.<\/p>\n<p>Le lvroot a \u00e9t\u00e9 r\u00e9par\u00e9, nous le montons, mais d'abord nous activons le VG :<\/p>\n<pre><code class=\"bash\">$ vgchange -a y\n$ mkdir \/mnt\/lvroot &amp;&amp; mount \/dev\/mapper\/vg_c6m1-lv_root \/mnt\/lvroot \n<\/code><\/pre>\n<p>\nEt tout y est, y compris la cl\u00e9 dans le r\u00e9pertoire personnel root \u2014 \/root\/sweet.<\/p>\n<p>3. Essayons tout de m\u00eame de faire revivre notre serveur afin qu'il d\u00e9marre correctement. Tous les volumes logiques de notre <code>\/dev\/md0<\/code> (o\u00f9 nous avons tout trouv\u00e9) sont transf\u00e9r\u00e9s dans <code>\/dev\/sdb2<\/code>, o\u00f9 le serveur fonctionnait \u00e0 l'origine.<\/p>\n<pre><code class=\"bash\">$ pvmove \/dev\/md0 \/dev\/sdb2\n$ vgreduce vg_c6m1 \/dev\/md0<\/code><\/pre>\n<p>\nNous \u00e9teignons le serveur, retirons les disques 1 et 3, laissons le deuxi\u00e8me, et d\u00e9marrons avec un Live CD\/DVD en mode Rescue. Nous trouvons la partition de d\u00e9marrage et restaurons le chargeur de d\u00e9marrage dans grub :<\/p>\n<pre><code class=\"bash\">root (hd0,0)\nsetup (hd0)\n<\/code><\/pre>\n<p>\nNous retirons le disque de d\u00e9marrage et d\u00e9marrons avec succ\u00e8s, mais le site ne fonctionne pas.<\/p>\n<p>4. Il y a deux options pour d\u00e9marrer le site : configurer Apache \u00e0 partir de z\u00e9ro ou utiliser nginx d\u00e9j\u00e0 configur\u00e9 avec php-fpm :<\/p>\n<pre><code class=\"bash\">$ \/etc\/init.d\/nginx start\n$ \/etc\/init.d\/php-fpm start\n<\/code><\/pre>\n<p>\nEnfin, il faut d\u00e9marrer MySQL :<\/p>\n<pre><code class=\"bash\">$ \/etc\/init.d\/mysqld start<\/code><\/pre>\n<p>\nIl ne d\u00e9marre pas, et le myst\u00e8re se cache dans <code>\/var\/log\/mysql<\/code>. Une fois que vous aurez r\u00e9solu le probl\u00e8me avec MySQL, le site fonctionnera, et sur la page d'accueil, il y aura une cl\u00e9 \u2014 RichardGCCMatthewGNUStallman ! Maintenant nous avons acc\u00e8s \u00e0 1C et les employ\u00e9s pourront recevoir leur salaire. Et comme d'habitude, il y a beaucoup de travail \u00e0 faire pour \u00e9tablir l'infrastructure et la s\u00e9curit\u00e9 dans l'entreprise.<\/p>\n<p>Nous pouvons \u00e9galement partager \u00e0 nouveau la liste de livres qui ont aid\u00e9 nous et nos participants \u00e0 nous pr\u00e9parer pour le jeu : <noindex><a rel=\"nofollow\" href=\"https:\/\/linux.mail.ru\/books\">linux.mail.ru\/books<\/a><\/noindex>.<\/p>\n<p>Merci d'avoir \u00e9t\u00e9 avec nous ! Suivez les annonces des prochains jeux !<br \/>\n<br \/>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/447222\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>25 \u043c\u0430\u0440\u0442\u0430 \u043c\u044b \u043e\u0442\u043a\u0440\u044b\u043b\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e \u043d\u0430 Linux Quest, \u044d\u0442\u043e \u0418\u0433\u0440\u0430 \u0434\u043b\u044f \u043b\u044e\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0437\u043d\u0430\u0442\u043e\u043a\u043e\u0432 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Linux. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0438: \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u0438\u0433\u0440\u0443 1117 \u0447\u0435\u043b\u043e\u0432\u0435\u043a, \u0438\u0437 \u043d\u0438\u0445 317 \u2014 \u043d\u0430\u0448\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043e\u0434\u0438\u043d \u043a\u043b\u044e\u0447, 241 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0441 \u0437\u0430\u0434\u0430\u043d\u0438\u0435\u043c \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u044d\u0442\u0430\u043f\u0430, 123 \u2014 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0438 70 \u043f\u0440\u043e\u0448\u043b\u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u044d\u0442\u0430\u043f. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430\u0448\u0430 \u0438\u0433\u0440\u0430 \u043f\u043e\u0434\u043e\u0448\u043b\u0430 \u043a \u043a\u043e\u043d\u0446\u0443, \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23206,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31240","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Linux Quest. \u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u0439 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:40:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:40:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Linux Quest. F\u00e9licitations aux gagnants et nous racontons les solutions des t\u00e2ches | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Linux Quest. \u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0431\u0435\u0434\u0438\u0442\u0435\u043b\u0435\u0439 \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u0439 | ProHoster","og:url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:40:13+00:00","article:modified_time":"2019-10-31T18:40:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31240","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 05:12:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:20:31","updated":"2026-01-21 05:12:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/31240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=31240"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/31240\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/23206"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=31240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=31240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=31240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}