{"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\/ro\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij","title":{"rendered":"Linux Quest. Felicit\u0103ri c\u00e2\u0219tig\u0103torilor \u0219i explic\u0103m solu\u021biile la sarcini","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Linux Quest. Felicit\u0103ri c\u00e2\u0219tig\u0103torilor \u0219i explic\u0103m solu\u021biile la sarcini\" src=\"\/wp-content\/uploads\/2019\/04\/a8c28d0ba562680119475609a56136d6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPe 25 martie am deschis \u00eenregistrarea pentru <noindex><a rel=\"nofollow\" href=\"https:\/\/linux.mail.ru\">Linux Quest<\/a><\/noindex>, este un joc pentru pasiona\u021bii \u0219i cunosc\u0103torii sistemului de operare Linux. C\u00e2teva statistici: s-au \u00eenscris \u00een joc 1117 persoane, dintre care 317 au g\u0103sit m\u0103car o cheie, 241 au rezolvat cu succes prima etap\u0103, 123 \u2014 a doua \u0219i 70 au trecut de a treia etap\u0103. Ast\u0103zi, jocul nostru a ajuns la final, iar noi \u00eei felicit\u0103m pe c\u00e2\u0219tig\u0103tori! <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li><b>Locul \u00eent\u00e2i a fost ocupat de Alexandr Teldekov.<\/b><br \/>\nAlexandr a spus despre sine c\u0103 este un administrator tipic. Tr\u0103ie\u0219te \u00een Volgograd, gestioneaz\u0103 diferite sisteme Unix-like de aproximativ dou\u0103zeci de ani. A reu\u0219it s\u0103 lucreze la furnizori de internet, \u00een b\u0103nci, \u00een integratori de sisteme. Acum lucreaz\u0103 de la distan\u021b\u0103 pentru o mic\u0103 firm\u0103, ocup\u00e2ndu-se de infrastructura cloud pentru un client str\u0103in mare. \u00cei place s\u0103 citeasc\u0103, s\u0103 asculte muzic\u0103. Despre joc, Alexandr a spus c\u0103, \u00een general, i-a pl\u0103cut; \u00eei plac astfel de provoc\u0103ri. La un interviu \u00een una dintre companii, s-a ocupat de ceva similar cu Hackerrank, a fost interesant.<\/li>\n<li><b>Locul al doilea \u2014 Roman Suslov.<\/b><br \/>\nRoman este din Moscova. Are 37 de ani. Lucreaz\u0103 ca inginer Linux\/Unix la compania \"InfoSystems Jet\". La lucru se ocup\u0103 cu administrarea \u0219i depanarea sistemelor Linux\/Unix + SAN. Interesele lui sunt variate: sisteme Linux, programare, inginerie invers\u0103, securitate informa\u021bional\u0103, Arduino. Despre joc, Roman a men\u021bionat c\u0103, \u00een general, i-a pl\u0103cut. \u201eM-am antrenat pu\u021bin mental \u0219i m-am distrat de la rutina zilnic\u0103. \ud83d\ude42 Mi-ar pl\u0103cea s\u0103 fie mai multe sarcini, deoarece nu am reu\u0219it s\u0103 intru \u00een ritm \u00eenainte s\u0103 se termine jocul.\u201d<\/li>\n<li><b>Locul al treilea \u2014 alex3d.<\/b><br \/>\nAlex tr\u0103ie\u0219te \u00een Moscova, se ocup\u0103 cu dezvoltarea de software. \u201eMul\u021bumesc pentru concurs, a fost interesant s\u0103-mi testez abilit\u0103\u021bile de c\u0103utare.\u201d<\/li>\n<\/ul>\n<p>\nDe asemenea, \u00een clasamentul celor mai buni 10 juc\u0103tori:<\/p>\n<ul>\n<li>Yevgeniy Saldayev<\/li>\n<li>Markel Mochnachevskiy<\/li>\n<li>Konstantin Konosov<\/li>\n<li>Pavel Sergeev<\/li>\n<li>Vladimir Bovaev<\/li>\n<li>Ivan Bubnov<\/li>\n<li>Pavlo Klets<\/li>\n<\/ul>\n<p>\n\u00cen\u021belegem c\u0103 exist\u0103 multe variante de solu\u021bionare pentru toate sarcinile noastre; mai jos sunt descrise unele dintre posibilele solu\u021bii. <\/p>\n<h3>1. Prima etap\u0103 <\/h3>\n<p>\nAm numit-o \"E\u0219ti sigur c\u0103 e\u0219ti admin?\", deoarece sarcina a fost destul de simpl\u0103 \u2014 s\u0103 repare un serviciu c\u0103lduros \u0219i prietenos.<\/p>\n<h4>1.1. Fapte interesante:<\/h4>\n<p>\nDoi juc\u0103tori au g\u0103sit prima cheie \u00een primele 15 minute ale jocului, iar \u00een prima or\u0103 au ap\u0103rut trei lideri care au rezolvat sarcina. <\/p>\n<h4>1.2. Sarcina<\/h4>\n<p>\nAi \u00eenceput s\u0103 lucrezi \u00eentr-o companie unde nu a existat un specialist calificat \u00een tehnologia informa\u021biei pentru o perioad\u0103 \u00eendelungat\u0103. \u00cenainte de a \u00eencepe s\u0103 pui totul \u00een ordine, trebuie s\u0103 rezolvi o problem\u0103 urgent\u0103 care blocheaz\u0103 activitatea biroului.<\/p>\n<p>\u00cengrijitoarea a ag\u0103\u021bat cablul de alimentare al serverului cu mopul. Alimentarea a fost restabilit\u0103, dar un site web foarte important tot nu func\u021bioneaz\u0103. Site-ul este important pentru c\u0103 compania nu este foarte preocupat\u0103 de securitatea informa\u021biei, iar pe pagina principal\u0103 se g\u0103se\u0219te \u00een mod deschis parola de administrator pentru computerul directorului general.<\/p>\n<p>Recent, parola a fost schimbat\u0103, iar noua a fost uitat\u0103, directorul nu mai poate lucra. Se zvone\u0219te c\u0103 pe aceast\u0103 ma\u0219in\u0103 erau \u0219i chei care ne-ar putea ajuta la decriptarea backup-ului documentelor contabile.<\/p>\n<p>Toat\u0103 lumea a\u0219teapt\u0103 o solu\u021bie operativ\u0103!<\/p>\n<h4>1.3. Solu\u021bia<\/h4>\n<p>\n1. \u00cen primul r\u00e2nd, trebuie s\u0103 schimb\u0103m parola root pe ma\u0219ina virtual\u0103 pentru a ob\u021bine acces la ea. La pornire, observ\u0103m c\u0103 este Ubuntu 16.04 Server.<\/p>\n<p>Pentru a reseta parola root, repornim ma\u0219ina, iar \u00een momentul afi\u0219\u0103rii meniului grub, intr\u0103m \u00een editarea op\u021biunii Ubuntu ap\u0103s\u00e2nd tasta \u201ee\u201d. Edit\u0103m linia linux, ad\u0103ug\u00e2nd la sf\u00e2r\u0219it <code>init=\/bin\/bash<\/code>. \u00cenc\u0103rc\u0103m cu Ctrl+x, ob\u021bin\u00e2nd shell-ul. Ne rimont\u0103m r\u0103d\u0103cina cu rw, schimb\u0103m parola:<\/p>\n<pre><code class=\"bash\">$ mount -o remount,rw \/dev\/mapper\/ubuntu--vg-root\n$ passwd<\/code><\/pre>\n<p>\nNu uita de sync, repornim.<\/p>\n<p>2. \u00cen condi\u021bii se spune c\u0103 serverul web nu func\u021bioneaz\u0103, s\u0103 vedem:<\/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>\nDeci, de fapt, Apache este pornit, dar r\u0103spunde cu codul 404. S\u0103 ne uit\u0103m la configura\u021bie:<\/p>\n<pre><code class=\"bash\">$ vim \/etc\/apache2\/sites-enabled\/000-default.conf<\/code><\/pre>\n<p>\nAici se afl\u0103 cheia \u2014 StevenPaulSteveJobs.<\/p>\n<p>Verific\u0103m calea <code>\/usr\/share\/WordPress<\/code> \u2014 aceasta nu exist\u0103, dar exist\u0103 <code>\/usr\/share\/wordpress<\/code>. Corect\u0103m configura\u021bia \u0219i repornim Apache.<\/p>\n<pre><code class=\"bash\">$ systemctl restart apache2<\/code><\/pre>\n<p>\n3. \u00cencerc\u0103m din nou, primim eroarea:<\/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>\nBD nu este pornit\u0103?<\/p>\n<pre><code class=\"bash\">$ systemctl status mysql\nActive: active (running)<\/code><\/pre>\n<p>\nCe s-a \u00eent\u00e2mplat? Trebuie s\u0103 investig\u0103m. Pentru aceasta, trebuie s\u0103 ob\u021binem acces la MySQL, a\u0219a cum este descris \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/resetting-permissions.html\">documentation<\/a><\/noindex>. Unul dintre punctele din documenta\u021bie ne recomand\u0103 s\u0103 specific\u0103m op\u021biunea <code>skip-grant-tables<\/code> \u00een <code>\/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code>. Aici se g\u0103se\u0219te \u0219i cheia \u2014 AugustaAdaKingByron.<\/p>\n<p>Corect\u0103m permisiile utilizatorului <code>'wp'@'localhost'<\/code>. Pornim MySQL, facem s\u0103 fie accesibil \u00een re\u021bea, coment\u00e2nd \u00een configura\u021bie op\u021biunea <code>skip-networking<\/code>.<\/p>\n<p>4. Dup\u0103 ac\u021biunile efectuate, serverul web porne\u0219te, dar site-ul tot nu func\u021bioneaz\u0103, deoarece <\/p>\n<pre><code class=\"bash\">Avertizare: require_once(\/usr\/share\/wordpress\/wp-content\/themes\/twentysixteen\/footer.php): nu s-a putut deschide fluxul: Permisiune refuzat\u0103 \u00een \/usr\/share\/wordpress\/wp-includes\/template.php la linia 562<\/code><\/pre>\n<p>\nCorect\u0103m permisiunile fi\u0219ierului.<\/p>\n<pre><code class=\"bash\">$ chmod 644 \/usr\/share\/wordpress\/wp-content\/themes\/twentysixteen\/footer.php\n<\/code><\/pre>\n<p>\nRe\u00eemprosp\u0103t\u0103m pagina, intr\u0103m pe site \u0219i g\u0103sim cheia - BjarneStroustrup! Am g\u0103sit toate cele trei chei, directorul nostru poate lucra, am decriptat fi\u0219ierele contabile. Toat\u0103 lumea este fericit\u0103, iar tu ai mult de lucru pentru a organiza infrastructura, backup-urile \u0219i securitatea companiei. <\/p>\n<h3>2. A doua etap\u0103<\/h3>\n<p>\nTrebuia s\u0103 rezolv\u0103m o problem\u0103 legat\u0103 de colectarea analiticii. Toat\u0103 lumea iube\u0219te analitica - cine \u0219i de unde \u0219i \u00een ce cantit\u0103\u021bi vin. Am inventat un caz, dar cu care se pot confrunta to\u021bi inginerii \u00een via\u021b\u0103.<\/p>\n<h4>2.1. Fapte interesante<\/h4>\n<p>\nUnul dintre juc\u0103torii no\u0219tri a introdus cheia corect\u0103 \u00een primele 10 minute de joc, iar \u00een prima or\u0103 am avut un lider care a rezolvat sarcina.<\/p>\n<h4>2.2. Sarcina<\/h4>\n<p>\nAi \u00eenceput lucrul \u00een companie, managerii au venit la tine \u0219i te-au rugat s\u0103 g\u0103se\u0219ti cui au fost trimise e-mailurile din Africa. Trebuie s\u0103 construie\u0219ti un top 21 de adrese ale destinatarilor. Primele litere ale adreselor destinatarilor sunt cheia. O problem\u0103: serverul de e-mail prin care au fost trimise mesajele nu se \u00eencarc\u0103. Toat\u0103 lumea a\u0219teapt\u0103 o solu\u021bie rapid\u0103!<\/p>\n<h4>2.3. Solu\u021bia<\/h4>\n<p>\n1. Serverul nu se \u00eencarc\u0103 din cauza unei sectiuni swap inexistente \u00een fstab, atunci c\u00e2nd sistemul porne\u0219te, \u00eencearc\u0103 s\u0103 o monteze \u0219i cedeaz\u0103. Cum putem porni?<\/p>\n<p>Descarc\u0103 imaginea, am desc\u0103rcat CentOS 7, pornim de pe Live CD\/DVD (Troubleshooting -&gt; Rescue), mont\u0103m sistemul, corect\u0103m <code>\/etc\/fstab<\/code>. Aici g\u0103sim prima cheie - GottfriedWilhelm11646Leibniz!<\/p>\n<p>Cre\u0103m swap:<\/p>\n<pre><code class=\"bash\">$ lvcreate -n swap centos -L 256M\n$ sync &amp;&amp; reboot<\/code><\/pre>\n<p>\n2. Ca de obicei, nu exist\u0103 parol\u0103, trebuie s\u0103 schimb\u0103m parola root pe ma\u0219ina virtual\u0103. Am f\u0103cut deja asta \u00een prima sarcin\u0103. Schimb\u0103m \u0219i intr\u0103m cu succes pe server, dar acesta se reporne\u0219te imediat. Serverul se reporne\u0219te at\u00e2t de repede \u00eenc\u00e2t nu reu\u0219im s\u0103 verific\u0103m toate jurnalele cu aten\u021bie. Cum putem \u00een\u021belege ce se \u00eent\u00e2mpl\u0103?<\/p>\n<p>Din nou pornim de pe livecd, studiem cu aten\u021bie jurnalele sistemului \u0219i, pentru fiecare eventualitate, ne uit\u0103m \u0219i \u00een cron, av\u00e2nd \u00een vedere aceast\u0103 periodicitate. Acolo g\u0103sim problema \u0219i a doua cheie - Alan1912MathisonTuring!<\/p>\n<p>Trebuie s\u0103 <code>\/etc\/crontab<\/code> \u0219tergem sau s\u0103 coment\u0103m linia <code>echo b &gt; \/proc\/sysrq-trigger<\/code>.<\/p>\n<p>3. Dup\u0103 ce serverul s-a \u00eenc\u0103rcat, putem \u00eendeplini sarcina managerilor: \u201eCare sunt adresele Africii?\u201d Aceast\u0103 informa\u021bie este, \u00een general, accesibil\u0103 publicului. Opo\u021bi g\u0103si aceste informa\u021bii pe internet c\u0103ut\u00e2nd expresiile \u201eip address africa\u201d, \u201egeoip database\u201d. Pentru rezolvarea sarcinii, se pot folosi baze de date de distribu\u021bie a adreselor disponibile liber (geoip). Noi am folosit ca standard o baz\u0103 de date. <noindex><a rel=\"nofollow\" href=\"https:\/\/dev.maxmind.com\/geoip\/geoip2\/geolite2\/\">MaxMind GeoLite2<\/a><\/noindex>, disponibil\u0103 sub licen\u021ba Creative Commons Attribution-ShareAlike 4.0.<\/p>\n<p>Vom \u00eencerca s\u0103 rezolv\u0103m sarcina noastr\u0103 folosind doar utilitarele de sistem Linux, dar, \u00een general, poate fi abordat\u0103 \u00een multe moduri: folosind utilitare de filtrare a textului \u0219i scripturi \u00een diferite limbaje de programare.<\/p>\n<p>Pentru \u00eenceput, s\u0103 ob\u021binem pur \u0219i simplu perechile \u201eIP-expeditor \u2013 destinatar\u201d din jurnalul po\u0219tal. <code>\/var\/log\/maillog<\/code> (vom construi un tabel cu destinatarii de email \u2013 IP-ul expeditorului). Acest lucru se poate face cu urm\u0103toarea comand\u0103:<\/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>\n\u0218i \u00eenainte de a continua cu compunerea bazei de date a adreselor Africii, s\u0103 arunc\u0103m o privire asupra celor mai frecvente IP-uri ale expeditorilor.<\/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>\nDintre toate, se eviden\u021biaz\u0103 prin num\u0103rul de mesaje cele trei primii destinatari din top. Dac\u0103 verific\u0103m IP-urile expeditorilor care au trimis pe adresele din acest top-3, putem observa o predominan\u021b\u0103 clar\u0103 a anumitor re\u021bele:<\/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>\nMajoritatea re\u021belelor 105\/8, 41\/8, 196\/8, 197\/8 sunt alocate de AFRINIC \u2014 unul dintre cei cinci registratori locali de internet care efectueaz\u0103 distribu\u021bia resurselor de internet. AFRINIC aloc\u0103 spa\u021biul de adrese \u00een regiunea Africii. Iar 41\/8 apar\u021bine \u00een \u00eentregime de 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>\nAstfel, r\u0103spunsul la \u00eentrebare se afl\u0103, de fapt, \u00een jurnalul \u00een sine.<\/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\u00cen aceast\u0103 etap\u0103, ob\u021binem \u0219irul \u201eLinuxBenedictTorvadst\u201d.<\/p>\n<p>Cheia corect\u0103: \u201eLinusBenedictTorvalds\u201d.<\/p>\n<p>\u0218irul ob\u021binut con\u021bine o gre\u0219eal\u0103 \u00een raport cu cheia corect\u0103 \u00een ultimele 3 caractere. Acest lucru se datoreaz\u0103 faptului c\u0103 re\u021belele alese de noi nu sunt complet dedicate \u021b\u0103rilor din Africa \u0219i modului \u00een care sunt distribuite adresele de email pe IP-urile din logurile noastre.<\/p>\n<p>Prin clarificarea re\u021belelor mai mari, dedicate \u021b\u0103rilor din Africa, putem ob\u021bine un r\u0103spuns precis:<\/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>\nProblema poate fi solu\u021bionat\u0103 \u0219i prin alt\u0103 metod\u0103.<br \/>\nDesc\u0103rc\u0103m MaxMind, dezarhiv\u0103m \u0219i urm\u0103toarele trei comenzi rezolv\u0103 de asemenea problema noastr\u0103.<\/p>\n<pre><code class=\"bash\">$ cat GeoLite2-Country-Locations-ru.csv | grep \"Africa\" | 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>\n\u00centr-un fel sau altul, am calculat \u00een final statisticile, iar managerii au ob\u021binut datele necesare pentru munc\u0103! <\/p>\n<h3>3. Etapa a treia<\/h3>\n<p>\nEtapa a treia este oarecum similar\u0103 cu prima \u2014 trebuie s\u0103 repar\u0103m din nou serviciul cald \u0219i confortabil, dar totul este mai complicat dec\u00e2t \u00een prima sarcin\u0103.<\/p>\n<h4>3.1. Fapte interesante<\/h4>\n<p>\n\u00cen primele 15 minute, trei juc\u0103tori au g\u0103sit prima cheie, iar dup\u0103 2 ore \u0219i 20 de minute de la \u00eenceputul etapei, c\u00e2\u0219tig\u0103torul nostru a rezolvat sarcina.<\/p>\n<h4>3.2. Sarcina<\/h4>\n<p>\nAi \u00eenceput lucrul la o companie unde toate documentele companiei sunt stocate pe un server intern Wiki. Anul trecut, un inginer a comandat 3 discuri noi pentru server, pe l\u00e2ng\u0103 unul existent, argument\u00e2nd c\u0103 pentru redundan\u021ba sistemului trebuie s\u0103 fie instalate discuri \u00een unele matrice. Din p\u0103cate, dup\u0103 c\u00e2teva s\u0103pt\u0103m\u00e2ni de la instalare, inginerul a plecat \u00een vacan\u021b\u0103 \u00een India \u0219i nu s-a mai \u00eentors.<\/p>\n<p>C\u00e2\u021biva ani serverul a func\u021bionat f\u0103r\u0103 probleme, dar acum c\u00e2teva zile re\u021beaua companiei a fost spart\u0103. Conform instruc\u021biunilor, angaja\u021bii de securitate au scos discurile din server \u0219i \u021bi le-au trimis. \u00cen timpul transportului, un disc a fost pierdut irevocabil.<\/p>\n<p>Este necesar s\u0103 restabilim func\u021bionalitatea Wiki, \u00een primul r\u00e2nd, ne intereseaz\u0103 con\u021binutul paginilor wiki. O bucat\u0103 de text care era pe una dintre paginile acestei wiki este parola pentru serverul 1C \u0219i este urgent necesar\u0103 pentru deblocarea acestuia.<\/p>\n<p>\u00cen plus, undeva pe paginile wiki sau \u00een alt loc se aflau parolele pentru serverul de log-uri \u0219i serverul de supraveghere video, care, de asemenea, trebuie restabilite, f\u0103r\u0103 ele, investigarea incidentului este imposibil\u0103. A\u0219a cum este \u00eentotdeauna, a\u0219tept\u0103m o solu\u021bie operativ\u0103 la aceast\u0103 problem\u0103!<\/p>\n<h4>3.3. Solu\u021bie<\/h4>\n<p>\n1. \u00cencerc\u0103m s\u0103 ne \u00eenc\u0103rc\u0103m pe r\u00e2nd de pe acele discuri pe care le avem \u0219i \u00eencepem s\u0103 primim acela\u0219i mesaj:<\/p>\n<pre><code class=\"bash\">No bootable medium found! System halted \n<\/code><\/pre>\n<p>\nTrebuie s\u0103 ne \u00eenc\u0103rc\u0103m de undeva. Din nou, ne ajut\u0103 \u00eenc\u0103rcarea cu Live CD\/DVD (Troubleshooting -&gt; Rescue). La \u00eenc\u0103rcare, \u00eencerc\u0103m s\u0103 g\u0103sim parti\u021bia de boot, nu o g\u0103sim, ajungem \u00een shell. \u00cencerc\u0103m s\u0103 ne uit\u0103m ce \u0219i cum cu discurile. Se \u0219tie c\u0103 sunt trei. Instrumentele pentru asta sunt mai multe \u00een versiunea 7 a CentOS, unde sunt comenzi <code>blkid<\/code> sau <code>lsblk<\/code>, care ne arat\u0103 toate informa\u021biile despre discuri. <\/p>\n<p>Ce \u0219i cum facem:<\/p>\n<pre><code class=\"bash\">$ ls \/dev\/sd*<\/code><\/pre>\n<p>\nSe vede imediat c\u0103 <\/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>\nMont\u0103m sdb1, \u0219i se vede c\u0103 aceasta este parti\u021bia de boot CentOS 6.<\/p>\n<pre><code class=\"bash\">$ mkdir \/mnt\/sdb1 &amp;&amp; mount \/dev\/sdb1 \/mnt\/sdb1<\/code><\/pre>\n<p>\nEste evident c\u0103 mergem \u00een sec\u021biunea grub \u0219i g\u0103sim prima cheie \u2013 James191955Gosling \u00eentr-un fi\u0219ier neobi\u0219nuit.<\/p>\n<p>2. Studiam pvs \u0219i lvs, deoarece lucr\u0103m cu LVM. Vedem c\u0103 ar trebui s\u0103 fie 2 volume fizice, unul nu este g\u0103sit \u0219i semnaleaz\u0103 uid-ul pierdut. Vedem c\u0103 ar trebui s\u0103 fie 2 volume logice: root \u0219i swap, iar root este par\u021bial pierdut (atribut P la volum). Nu se poate monta, ceea ce este p\u0103cat! Ne este foarte necesar.<\/p>\n<p>Mai sunt \u00eenc\u0103 2 discuri, ne uit\u0103m la ele, le adun\u0103m \u0219i le mont\u0103m:<\/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>\nNe uit\u0103m, se vede c\u0103 aceasta este parti\u021bia de boot CentOS 6 \u0219i un duplicat al a ceea ce exist\u0103 deja pe <code>\/dev\/sdb1<\/code>, \u0219i aici din nou aceea\u0219i cheie \u2013 DennisBMacAlistairCRitchie!<br \/>\nNe uit\u0103m cum a fost adunat <code>\/dev\/md127<\/code>.<\/p>\n<pre><code class=\"bash\">$ mdadm --detail \/dev\/md127\n<\/code><\/pre>\n<p>\nVedem c\u0103 ar fi trebuit s\u0103 fie adunat din 4 discuri, s-a adunat din dou\u0103 <code>\/dev\/sda1<\/code> \u0219i <code>\/dev\/sdc1<\/code>, acestea ar fi trebuit s\u0103 fie numerele 2 \u0219i 4 \u00een sistem. Presupunem c\u0103. <code>\/dev\/sda2<\/code> \u0219i <code>\/dev\/sdc2<\/code> se poate aduna \u0219i din acestora. Nu este clar de ce nu au metadata, dar aceasta este problema adminului, care este undeva \u00een Goa. Presupunem c\u0103 ar trebui s\u0103 fie RAID10, de\u0219i exist\u0103 variante. Adun\u0103m: <\/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>\nNe uit\u0103m la blkid, pvs, lvs. Descoperim c\u0103 am adunat volumul fizic de care ne lipsea anterior.<\/p>\n<p>Imediat repar\u0103m lvroot, mont\u0103m-l, dar mai \u00eent\u00e2i activ\u0103m VG-ul:<\/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>\n\u0218i acolo este totul, inclusiv cheia \u00een directorul home al root-ului \u2014 \/root\/sweet.<\/p>\n<p>3. \u00cencerc\u0103m totu\u0219i s\u0103 readucem serverul la via\u021b\u0103, astfel \u00eenc\u00e2t s\u0103 porneasc\u0103 normal. Toate volumele logice de pe <code>\/dev\/md0<\/code> (unde am g\u0103sit tot) le mut\u0103m \u00een <code>\/dev\/sdb2<\/code>, unde serverul a func\u021bionat ini\u021bial.<\/p>\n<pre><code class=\"bash\">$ pvmove \/dev\/md0 \/dev\/sdb2\n$ vgreduce vg_c6m1 \/dev\/md0<\/code><\/pre>\n<p>\nOprim serverul, scoatem disk-urile 1 \u0219i 3, l\u0103s\u0103m pe cel de-al doilea, boot-\u0103m de pe Live CD\/DVD \u00een Rescue. G\u0103sim parti\u021bia de boot, restaur\u0103m bootloader-ul \u00een grub:<\/p>\n<pre><code class=\"bash\">root (hd0,0)\nsetup (hd0)\n<\/code><\/pre>\n<p>\nScoatem discul de boot \u0219i ne boot-\u0103m cu succes, dar site-ul nu func\u021bioneaz\u0103.<\/p>\n<p>4. Exist\u0103 dou\u0103 variante pentru a porni site-ul: s\u0103 configur\u0103m de la zero Apache sau s\u0103 folosim nginx deja configurat cu 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>\n\u00cen cele din urm\u0103, trebuie s\u0103 pornim MySQL:<\/p>\n<pre><code class=\"bash\">$ \/etc\/init.d\/mysqld start<\/code><\/pre>\n<p>\nNu porne\u0219te \u0219i solu\u021bia se afl\u0103 \u00een <code>\/var\/log\/mysql<\/code>. Odat\u0103 ce rezolva\u021bi problema cu MySQL, site-ul va func\u021biona, iar pe pagina principal\u0103 va fi cheia \u2014 RichardGCCMatthewGNUStallman! Acum avem acces \u00een 1C, iar angaja\u021bii vor putea primi salariile. \u0218i tu ai din nou mult\u0103 munc\u0103 de f\u0103cut pentru a organiza infrastructura \u0219i securitatea companiei.<\/p>\n<p>De asemenea, putem \u00eemp\u0103rt\u0103\u0219i din nou lista c\u0103r\u021bilor care ne-au ajutat pe noi \u0219i pe participan\u021bii no\u0219tri s\u0103 se preg\u0103teasc\u0103 pentru joc: <noindex><a rel=\"nofollow\" href=\"https:\/\/linux.mail.ru\/books\">linux.mail.ru\/books<\/a><\/noindex>.<\/p>\n<p>Mul\u021bumim c\u0103 a\u021bi fost al\u0103turi de noi! R\u0103m\u00e2ne\u021bi la curent cu anun\u021burile jocurilor viitoare!<br \/>\n<br \/>Sursa: <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.1 - 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\/ro\/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.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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. Felicit\u0103ri c\u00e2\u0219tig\u0103torilor \u0219i v\u0103 povestim despre solu\u021biile problemelor | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/31240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=31240"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/31240\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/23206"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=31240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=31240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=31240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}