{"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\/it\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij","title":{"rendered":"Linux Quest. Congratulazioni ai vincitori e parliamo delle soluzioni proposte.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Linux Quest. Congratulazioni ai vincitori e parliamo delle soluzioni proposte.\" src=\"\/wp-content\/uploads\/2019\/04\/a8c28d0ba562680119475609a56136d6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl 25 marzo abbiamo aperto le registrazioni per <noindex><a rel=\"nofollow\" href=\"https:\/\/linux.mail.ru\">Linux Quest<\/a><\/noindex>, \u00e8 un gioco per appassionati e esperti del sistema operativo Linux. Alcune statistiche: si sono registrate 1117 persone per il gioco, di cui 317 hanno trovato almeno una chiave, 241 hanno completato con successo il primo compito, 123 il secondo e 70 hanno superato il terzo compito. Oggi il nostro gioco \u00e8 giunto al termine e congratuliamo i nostri vincitori! <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li><b>Il primo posto \u00e8 stato conquistato da Aleksandr Teldikov.<\/b><br \/>\nAleksandr ha detto di s\u00e9 che \u00e8 il tipico amministratore di sistema. Vive a Volgograd e gestisce vari sistemi Unix-like da circa vent'anni. Ha lavorato in provider di internet, banche, e integratori di sistemi. Attualmente lavora da remoto per una piccola azienda, occupandosi di infrastruttura cloud per un grande cliente straniero. Ama leggere e ascoltare musica. Riguardo al gioco, Aleksandr ha detto che nel complesso gli \u00e8 piaciuto, gli piacciono questo tipo di sfide. In una delle aziende, durante un colloquio, ha svolto qualcosa di simile a Hackerrank ed \u00e8 stato interessante.<\/li>\n<li><b>Il secondo posto va a Roman Suslov.<\/b><br \/>\nRoman \u00e8 di Mosca. Ha 37 anni. Lavora come ingegnere Linux\/Unix per la societ\u00e0 \"Informatica Jet\". Nella sua professione si occupa di amministrazione e risoluzione di problemi nei sistemi Linux\/Unix + SAN. Ha interessi molto vari: sistemi Linux, programmazione, reverse engineering, sicurezza informatica, Arduino. Riguardo al gioco, Roman ha notato che gli \u00e8 piaciuto nel complesso. \u00abHo un po' scaldato le mie sinapsi e mi sono distratto dalla grigia quotidianit\u00e0 del lavoro. \ud83d\ude42 Mi sarebbe piaciuto avere pi\u00f9 compiti, perch\u00e9 non ho fatto in tempo a entrare nel ritmo che il gioco era gi\u00e0 finito\u00bb.<\/li>\n<li><b>Il terzo \u00e8 alex3d.<\/b><br \/>\nAlex vive a Mosca e si occupa di sviluppo software. \u00abGrazie per il contest, \u00e8 stato interessante mettere alla prova la mia abilit\u00e0 con google-fu.\u00bb<\/li>\n<\/ul>\n<p>\nAllo stesso modo, nella classifica dei 10 migliori giocatori:<\/p>\n<ul>\n<li>Yevgeniy Saldayev<\/li>\n<li>Markel Mokhnachevskiy<\/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>\nComprendiamo che ci sono molte soluzioni per tutti i nostri compiti, qui di seguito sono descritte alcune possibili soluzioni. <\/p>\n<h3>1. Primo livello <\/h3>\n<p>\nLo abbiamo chiamato \u00abSei davvero un admin?\u00bb, poich\u00e9 il compito era piuttosto semplice: riparare un caldo e tradizionale servizio.<\/p>\n<h4>1.1. Fatti interessanti:<\/h4>\n<p>\nDue giocatori hanno trovato la prima chiave nei primi 15 minuti del gioco, e nel primo ora abbiamo avuto tre leader che hanno completato il compito. <\/p>\n<h4>1.2. Compito<\/h4>\n<p>\nSei entrato a lavorare in un'azienda dove a lungo non c'era uno specialista competente in tecnologie dell'informazione. Prima di iniziare a sistemare le cose, bisogna risolvere un problema urgente che blocca il lavoro dell'ufficio.<\/p>\n<p>La collaboratrice ha urtato il cavo di alimentazione del server con il moccio. L'alimentazione \u00e8 stata ripristinata, ma un sito web molto importante continua a non funzionare. Il sito \u00e8 di grande importanza perch\u00e9 l'azienda non \u00e8 molto attenta alla sicurezza informatica e sulla pagina principale \u00e8 possibile trovare pubblicamente la password dell'amministratore per il computer del direttore generale.<\/p>\n<p>Di recente hanno cambiato la password, ma nessuno si ricorda di quella nuova, il direttore non riesce a lavorare. Si vocifera che su quella macchina c'erano anche delle chiavi che potrebbero aiutarci nella decifratura del backup dei documenti contabili.<\/p>\n<p>Tutti aspettano una soluzione rapida al problema!<\/p>\n<h4>1.3. Soluzione<\/h4>\n<p>\n1. La prima cosa da fare \u00e8 cambiare la password root sulla macchina virtuale per poterci accedere. All'avvio notiamo che si tratta di Ubuntu 16.04 Server.<\/p>\n<p>Per reimpostare la password di root riavviamo la macchina, durante il caricamento, nel momento in cui appare il menu di grub, passiamo in modalit\u00e0 di modifica della voce Ubuntu premendo il tasto \u00abe\u00bb. Modifichiamo la riga linux, aggiungendo alla fine <code>init=\/bin\/bash<\/code>. Avviamo con Ctrl+x e otteniamo una bash. Rimontiamo la radice in modalit\u00e0 rw e cambiamo la password:<\/p>\n<pre><code class=\"bash\">$ mount -o remount,rw \/dev\/mapper\/ubuntu--vg-root\n$ passwd<\/code><\/pre>\n<p>\nNon dimentichiamo di fare sync e poi riavviamo.<\/p>\n<p>2. Nella situazione si dice che il nostro server web non funziona, controlliamo:<\/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>\nCio\u00e8, di fatto Apache \u00e8 avviato, ma risponde con codice 404. Controlliamo la configurazione:<\/p>\n<pre><code class=\"bash\">$ vim \/etc\/apache2\/sites-enabled\/000-default.conf<\/code><\/pre>\n<p>\nQui troviamo la chiave - StevenPaulSteveJobs.<\/p>\n<p>Controlliamo il percorso <code>\/usr\/share\/WordPress<\/code> \u2014 non esiste, ma c'\u00e8 <code>\/usr\/share\/wordpress<\/code>. Modifichiamo la configurazione e riavviamo Apache.<\/p>\n<pre><code class=\"bash\">$ systemctl restart apache2<\/code><\/pre>\n<p>\n3. Proviamo di nuovo, riceviamo l'errore:<\/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>\nIl database non \u00e8 avviato?<\/p>\n<pre><code class=\"bash\">$ systemctl status mysql\nActive: active (running)<\/code><\/pre>\n<p>\nQual \u00e8 il problema? Dobbiamo indagare. Per fare ci\u00f2, \u00e8 necessario accedere a MySQL, come descritto in <noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/resetting-permissions.html\">documentazione<\/a><\/noindex>. Uno dei punti della documentazione ci consiglia di specificare l'opzione <code>skip-grant-tables<\/code> in <code>\/etc\/mysql\/mysql.conf.d\/mysqld.cnf<\/code>. Qui si trova anche la chiave - AugustaAdaKingByron.<\/p>\n<p>Correggiamo i permessi per l'utente <code>'wp'@'localhost'<\/code>. Avviamo MySQL, rendendolo accessibile in rete, commentando l'opzione <code>skip-networking<\/code>.<\/p>\n<p>4. Dopo le operazioni svolte, il server web si avvia, ma il sito continua a non funzionare, poich\u00e9 <\/p>\n<pre><code class=\"bash\">Attenzione: require_once(\\\/usr\\\/share\\\/wordpress\\\/wp-content\\\/themes\\\/twentysixteen\\\/footer.php): apertura stream fallita: Permesso negato in \\\/usr\\\/share\\\/wordpress\\\/wp-includes\\\/template.php alla linea 562<\/code><\/pre>\n<p>\nCorreggiamo i permessi sul file.<\/p>\n<pre><code class=\"bash\">$ chmod 644 \\\/usr\\\/share\\\/wordpress\\\/wp-content\\\/themes\\\/twentysixteen\\\/footer.php\n<\/code><\/pre>\n<p>\nAggiorniamo la pagina, entriamo nel sito e troviamo la chiave \u2014 BjarneStroustrup! Abbiamo trovato tutte e tre le chiavi, il nostro direttore pu\u00f2 lavorare, abbiamo decrittato i file di contabilit\u00e0. Tutti sono felici, e tu hai molto lavoro da fare per sistemare l'infrastruttura, i backup e la sicurezza dell'azienda. <\/p>\n<h3>2. Seconda fase<\/h3>\n<p>\nEra necessario risolvere il problema della raccolta dell'analisi. L'analisi piace a tutti: chi, da dove e in quali quantit\u00e0 si muove. Abbiamo ideato un caso, ma con cui tutti gli ingegneri possono comunque imbattersi nella vita.<\/p>\n<h4>2.1. Fatti interessanti<\/h4>\n<p>\nUno dei nostri giocatori ha inserito la chiave corretta nei primi 10 minuti di gioco, e in un'ora abbiamo avuto un leader che ha completato il compito.<\/p>\n<h4>2.2. Compito<\/h4>\n<p>\nSei entrato a lavorare in azienda, ti sono venuti a trovare i manager e ti hanno chiesto di trovare a chi erano stati inviati i messaggi dall'Africa. Devi costruire una top-21 degli indirizzi dei destinatari. Le prime lettere degli indirizzi dei destinatari sono la chiave. Tuttavia, il server di posta attraverso cui sono stati inviati i messaggi non si carica. Tutti aspettano una soluzione operativa!<\/p>\n<h4>2.3. Soluzione<\/h4>\n<p>\n1. Il server non si carica a causa di una partizione swap inesistente in fstab; al caricamento, il sistema cerca di montarlo e si blocca. Come fare per avviarlo?<\/p>\n<p>Scarichiamo l'immagine, abbiamo scaricato CentOS 7, ci avviamo con Live CD\\\/DVD (Troubleshooting -&gt; Rescue), montiamo il sistema e modifichiamo <code>\/etc\/fstab<\/code>. Qui troviamo la prima chiave \u2014 GottfriedWilhelm11646Leibniz!<\/p>\n<p>Creiamo lo swap:<\/p>\n<pre><code class=\"bash\">$ lvcreate -n swap centos -L 256M\\n$ sync &amp;&amp; reboot<\/code><\/pre>\n<p>\n2. Come sempre non c'\u00e8 password, \u00e8 necessario cambiare la password di root sulla macchina virtuale. L'abbiamo gi\u00e0 fatto nel primo compito. Cambiamo e accediamo con successo al server, ma subito si riavvia. Il server si riavvia cos\u00ec velocemente che non riesco nemmeno a controllare attentamente tutti i log. Come capire cosa sta succedendo?<\/p>\n<p>Riavviamo di nuovo con livecd, esaminiamo attentamente i log di sistema e di tanto in tanto controlliamo il cron, dato il suo andamento periodico. L\u00ec troviamo il problema e la seconda chiave \u2014 Alan1912MathisonTuring!<\/p>\n<p>\u00c8 necessario <code>\/etc\/crontab<\/code> rimuovere o commentare la riga <code>echo b &gt; \\\/proc\\\/sysrq-trigger<\/code>.<\/p>\n<p>3. Dopo che il server si \u00e8 avviato, possiamo svolgere il compito dei manager: \u00abQuali sono gli indirizzi dell'Africa?\u00bb Queste informazioni sono generalmente accessibili al pubblico. Puoi trovare queste informazioni su Internet utilizzando frasi come \u00abip address africa\u00bb, \u00abgeoip database\u00bb. Per risolvere il compito, puoi utilizzare banche dati di distribuzione degli indirizzi liberamente disponibili (geoip). Noi abbiamo utilizzato come riferimento un database. <noindex><a rel=\"nofollow\" href=\"https:\/\/dev.maxmind.com\/geoip\/geoip2\/geolite2\/\">MaxMind GeoLite2<\/a><\/noindex>, disponibile sotto licenza Creative Commons Attribution-ShareAlike 4.0.<\/p>\n<p>Cerchiamo di risolvere il nostro problema utilizzando solo utilit\u00e0 di sistema Linux, ma in realt\u00e0 ci sono molti modi per farlo: utilizzando strumenti di filtraggio del testo e script in vari linguaggi di programmazione.<\/p>\n<p>Innanzitutto, otteniamo semplicemente coppie \u00abIP-del mittente \u2014 destinatario\u00bb dal registro delle email <code>\/var\/log\/maillog<\/code> (costruiremo una tabella degli email dei destinatari \u2014 IP del mittente). Possiamo farlo con il seguente comando:<\/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>\nE prima di continuare con la creazione della banca dati degli indirizzi dell'Africa, diamo un'occhiata ai migliori IP dei mittenti.<\/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>\nTra tutti spiccano per numero di email i primi tre destinatari della lista. Se facciamo un grep degli indirizzi IP dei mittenti che hanno inviato email agli indirizzi del top-3, possiamo notare un chiaro predominio di determinate reti:<\/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 maggior parte delle reti 105\/8, 41\/8, 196\/8, 197\/8 \u00e8 assegnata ad AFRINIC \u2014 uno dei cinque registri internet regionali che gestiscono la distribuzione delle risorse internet. AFRINIC assegna lo spazio degli indirizzi nel territorio africano. E 41\/8 appartiene completamente ad 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>\nPertanto, la risposta al compito \u00e8 presente nel log stesso.<\/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>\nIn questa fase, otteniamo la stringa \u00abLinuxBenedictTorvadst\u00bb.<\/p>\n<p>Chiave corretta: \u00abLinusBenedictTorvalds\u00bb.<\/p>\n<p>La stringa ottenuta contiene un errore rispetto alla chiave corretta nei 3 caratteri finali. Questo \u00e8 dovuto al fatto che le reti selezionate non sono completamente assegnate ai paesi africani e a come sono distribuiti gli indirizzi email negli IP registrati nei nostri log.<\/p>\n<p>Con un'adeguata analisi delle principali reti assegnate ai paesi africani, si pu\u00f2 ottenere una risposta precisa.:<\/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>\nIl compito pu\u00f2 anche essere risolto in un altro modo.<br \/>\nScarichiamo MaxMind, decomprimiamo e le seguenti tre comandi risolvono anche il nostro compito.<\/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>\nIn un modo o nell'altro, alla fine abbiamo calcolato le statistiche, e i manager hanno ricevuto i dati necessari per il loro lavoro! <\/p>\n<h3>3. Fase tre<\/h3>\n<p>\nLa terza fase \u00e8 in qualche modo simile alla prima: bisogna comunque riparare il servizio caldo e piacevole, ma \u00e8 pi\u00f9 complesso rispetto al primo compito.<\/p>\n<h4>3.1. Fatti interessanti<\/h4>\n<p>\nNei primi 15 minuti, tre giocatori hanno trovato la prima chiave; dopo 2 ore e 20 minuti dall'inizio della fase, il nostro vincitore ha completato il compito.<\/p>\n<h4>3.2. Compito<\/h4>\n<p>\nSei entrato a lavorare in un'azienda dove tutti i documenti sono conservati su un server interno Wiki. L'anno scorso, un ingegnere ha ordinato 3 nuovi dischi per il server oltre a uno esistente, motivando questa decisione con la necessit\u00e0 di installare i dischi in alcuni array per garantire la ridondanza del sistema. Sfortunatamente, dopo alcune settimane dalla loro installazione, l'ingegnere \u00e8 partito per una vacanza in India e non \u00e8 tornato.<\/p>\n<p>Il server ha funzionato senza problemi per diversi anni, ma alcuni giorni fa la rete dell'azienda \u00e8 stata violata. Secondo le istruzioni, il personale di sicurezza ha rimosso i dischi dal server e te li ha inviati. Durante il trasporto, un disco \u00e8 andato irrimediabilmente perso.<\/p>\n<p>\u00c8 necessario ripristinare il funzionamento di Wiki, in particolare sono interessato al contenuto delle pagine wiki. Un certo frammento di testo che era su una delle pagine di questo wiki \u00e8 la password del server 1C e serve urgentemente per sbloccarlo.<\/p>\n<p>Inoltre, da qualche parte nelle pagine wiki o in un altro luogo c'erano le password per il server dei log e il server di videosorveglianza, che \u00e8 anche auspicabile recuperare; senza di esse, l'indagine sull'incidente \u00e8 impossibile. Come sempre, ci si aspetta una soluzione operativa al problema!<\/p>\n<h4>3.3. Soluzione<\/h4>\n<p>\n1. Proviamo a avviare a turno dai dischi che abbiamo e ovunque riceviamo lo stesso messaggio:<\/p>\n<pre><code class=\"bash\">No bootable medium found! System halted \n<\/code><\/pre>\n<p>\nDeve esserci un modo per avviarsi. Ancora una volta, l'avvio da Live CD\/DVD (Troubleshooting -&gt; Rescue) ci salva. Durante l'avvio cerchiamo di trovare la partizione di avvio, non la troviamo e finiamo nello shell. Cerchiamo di capire cosa e come con i dischi. Si sa che ce ne sono tre. Gli strumenti per questo sono di pi\u00f9 nella settima versione di CentOS, dove ci sono i comandi <code>blkid<\/code> o <code>lsblk<\/code>, che ci mostrano tutte le informazioni sui dischi. <\/p>\n<p>Cosa e come facciamo:<\/p>\n<pre><code class=\"bash\">$ ls \/dev\/sd*<\/code><\/pre>\n<p>\n\u00c8 subito evidente che <\/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>\nMuntiamo sdb1, si vede che \u00e8 la partizione di avvio di CentOS 6.<\/p>\n<pre><code class=\"bash\">$ mkdir \/mnt\/sdb1 &amp;&amp; mount \/dev\/sdb1 \/mnt\/sdb1<\/code><\/pre>\n<p>\nOvviamente andiamo nella sezione grub e troviamo la prima chiave: James191955Gosling in un file insolito.<\/p>\n<p>2. Studiamo pvs e lvs, poich\u00e9 lavoriamo con LVM. Vediamo che dovrebbero esserci 2 volumi fisici, uno non \u00e8 trovato e si lamenta per uid perso. Vediamo che dovrebbero esserci 2 volumi logici: root e swap, mentre root \u00e8 parzialmente perso (attributo P per il volume). Non si riesce a montare, peccato! Ne abbiamo molto bisogno.<\/p>\n<p>Ci sono altri 2 dischi, li esaminiamo, raccogliamo e montiamo:<\/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>\nGuardiamo, si vede che \u00e8 la partizione di avvio di CentOS 6 e un duplicato di ci\u00f2 che \u00e8 gi\u00e0 presente su <code>\/dev\/sdb1<\/code>, e qui di nuovo la stessa chiave: DennisBMacAlistairCRitchie!<br \/>\nVediamo come \u00e8 assemblato <code>\/dev\/md127<\/code>.<\/p>\n<pre><code class=\"bash\">$ mdadm --detail \/dev\/md127\n<\/code><\/pre>\n<p>\nVediamo che dovrebbe essere assemblato da 4 dischi, \u00e8 stato assemblato da due <code>\/dev\/sda1<\/code> e <code>\/dev\/sdc1<\/code>, dovrebbero essere quelli numeri 2 e 4 nel sistema. Supponiamo che anche da <code>\/dev\/sda2<\/code> e <code>\/dev\/sdc2<\/code> sia possibile assemblare un array. Non \u00e8 chiaro perch\u00e9 non abbia metadata, ma questo \u00e8 un problema dell'amministratore, che si trova da qualche parte a Goa. Supponiamo che qui dovrebbe esserci RAID10, anche se ci sono opzioni. Assembliamo: <\/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>\nControlliamo blkid, pvs, lvs. Scopriamo che abbiamo assemblato il volume fisico che ci mancava prima.<\/p>\n<p>Subito ripristinato lvroot, lo montiamo, ma prima attiviamo 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>\nE c'\u00e8 tutto l\u00ec, incluso la chiave nella directory home di root \u2014 \/root\/sweet.<\/p>\n<p>3. Proviamo comunque a far ripartire il nostro server affinch\u00e9 possa avviarsi correttamente. Tutti i volumi logici del nostro <code>\/dev\/md0<\/code> (dove abbiamo trovato tutto) li spostiamo in <code>\/dev\/sdb2<\/code>, dove inizialmente funzionava tutto il server.<\/p>\n<pre><code class=\"bash\">$ pvmove \/dev\/md0 \/dev\/sdb2\n$ vgreduce vg_c6m1 \/dev\/md0<\/code><\/pre>\n<p>\nSpegnere il server, rimuovere i dischi 1 e 3, lasciare il secondo, avviarsi con Live CD\/DVD in Rescue. Troviamo la partizione di avvio, ripristiniamo il bootloader in grub:<\/p>\n<pre><code class=\"bash\">root (hd0,0)\nsetup (hd0)\n<\/code><\/pre>\n<p>\nTogliamo il disco di avvio e facciamo il boot con successo, ma il sito non funziona.<\/p>\n<p>4. Ci sono due opzioni per avviare il sito: configurare Apache da zero oppure utilizzare nginx gi\u00e0 configurato precedentemente con 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>\nInfine, bisogna avviare MySQL:<\/p>\n<pre><code class=\"bash\">$ \/etc\/init.d\/mysqld start<\/code><\/pre>\n<p>\nNon si avvia, e la chiave si trova in <code>\/var\/log\/mysql<\/code>. Non appena si risolve il problema con MySQL, il sito funzioner\u00e0, sulla pagina principale ci sar\u00e0 la chiave \u2014 RichardGCCMatthewGNUStallman! Ora abbiamo accesso a 1C, e i dipendenti potranno ricevere il salario. E tu hai come sempre molto lavoro da fare per sistemare l'infrastruttura e la sicurezza in azienda.<\/p>\n<p>Possiamo anche condividere di nuovo l'elenco dei libri che ci hanno aiutato noi e i nostri partecipanti a prepararci per il gioco: <noindex><a rel=\"nofollow\" href=\"https:\/\/linux.mail.ru\/books\">linux.mail.ru\/books<\/a><\/noindex>.<\/p>\n<p>Grazie per essere stati con noi! Seguite gli annunci dei prossimi giochi!<br \/>\n<br \/>Fonte: <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.1.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\/it\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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. Congratulazioni ai vincitori e raccontiamo le soluzioni dei compiti | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/linux-quest-pozdravlyaem-pobeditelej-i-rasskazyvaem-pro-resheniya-zadanij","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/31240","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=31240"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31240\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/23206"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=31240"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=31240"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=31240"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}