Linux Quest. Gratulatioun un d'Gewënner a sot eis iwwert d'Léisunge vun den Aufgaben

Linux Quest. Gratulatioun un d'Gewënner a sot eis iwwert d'Léisunge vun den Aufgaben

De 25. Mäerz hu mir d'Umeldung opgemaach fir Linux Quest, Dëst ass e Spill fir Liebhaber an Experten vum Linux Betribssystem. E puer Statistiken: 1117 Leit hu sech fir d'Spill ugemellt, 317 vun hinnen hunn op d'mannst ee Schlëssel fonnt, 241 hunn d'Aufgab vun der éischter Etapp erfollegräich ofgeschloss, 123 - déi zweet an 70 hunn déi drëtt Stuf passéiert. Haut ass eist Spill op en Enn gaangen a mir gratuléieren eise Gewënner!

  • Den Alexander Teldekov huet déi éischt Plaz geholl.
    Alexander sot zu sech selwer, datt hien den typesch System Administrateur ass. Liewen zu Volgograd, huet verschidden Unix-ähnlech Systemer fir ongeféier zwanzeg Joer verwalt. Ech hunn et fäerdeg bruecht an Internet Ubidder, enger Bank an engem Systemintegrator ze schaffen. Elo schafft hien op afstand an enger klenger Firma, schafft un der Cloudinfrastruktur fir e groussen auslännesche Client. Liest gär a lauschtert Musek. Iwwer d'Spill, Alexander sot, datt hien d'Spill als Ganzt gär huet, hie gär sou Aufgaben. Wärend engem Interview bei enger vun de Firmen hunn ech eppes ähnlech wéi Hackerrank gemaach, et war interessant.
  • Zweet Plaz - Roman Suslov.
    E Roman vu Moskau. Hien ass 37 Joer al. Schafft als Linux/Unix Ingenieur bei Jet Infosystems. Op der Aarbecht muss ech Linux / Unix Systemer + SAN administréieren an troubleshoot. D'Interesse si variéiert: Linux Systemer, Programméiere, Reverse Engineering, Informatiounssécherheet, Arduino. Iwwer d'Spill huet de Roman bemierkt datt hien d'Spill allgemeng gär huet. „Ech hunn meng Gehir e bësse gestreckt an hunn eng Paus vum groe Alldag vun der Aarbecht gemaach. 🙂 Ech hätt gär méi Aufgaben, soss ier ech Zäit hat fir e Goût dovun ze kréien, war d'Spill schonn eriwwer.
  • Drëtten - alex3d.
    Alex lieft zu Moskau a schafft an der Softwareentwécklung. "Merci fir de Concours, et war interessant meng google-fu Fäegkeeten ze testen."

Och am Ranking vun den 10 beschte Spiller:

  • Yevgeniy Saldayev
  • Markel Mokhnachevsky
  • Konstantin Konosov
  • Pavel Sergeev
  • Vladimir Bovaev
  • Ivan Bubnov
  • Pavlo Kletz

Mir verstinn datt et vill Méiglechkeeten gi fir all eis Probleemer ze léisen; e puer vun de méigleche Léisunge ginn hei ënnen beschriwwen.

1. Éischt Etapp

Mir hunn et genannt "Sidd Dir wierklech en Administrateur?", well d'Aufgab ganz einfach war - e waarme Lampeservice ze fixéieren.

1.1. Interessant Fakten:

Zwee Spiller hunn den éischte Schlëssel an den éischte 15 Minutte vum Spill fonnt, an an der éischter Stonn hate mir dräi Leader déi d'Aufgab ofgeschloss hunn.

1.2. Übung

Dir sidd an enger Firma schaffe gaang, wou et laang Zäit kee kompetenten Informatiounstechnologie Spezialist war. Ier Dir ufänkt d'Saachen an Uerdnung ze setzen, musst Dir de brennende Problem léisen, deen d'Aarbecht vum Büro blockéiert.

D'Botzfra huet de Stroumkabel vum Serverkabinett mat enger Mop gefaangen. D'Kraaft gouf restauréiert, awer eng ganz wichteg Websäit funktionnéiert nach ëmmer net. D'Websäit ass wichteg, well d'Firma net ganz besuergt iwwer Informatiounssécherheet ass, an op der Haaptsäit fannt Dir d'Administratorpasswuert fir de Computer vum CEO am Kloertext.

Den aneren Dag gouf d'Passwuert geännert, awer jiddereen huet dat neit vergiess, den Direkter kann net schaffen. Et gi Rumeuren datt et méi Schlësselen op dëser Maschinn waren, déi eis hëllefe kënnen d'Backupkopie vun de Comptabilitéitsdokumenter z'entschlësselen.

Jiddereen erwaart eng séier Léisung vum Thema!

1.3. Léisung

1. Als éischt musst Dir d'Root Passwuert op der virtueller Maschinn änneren fir Zougang zu deem ze kréien. Beim Start bemierken mir datt dëst Ubuntu 16.04 Server ass.

Fir de Root-Passwuert zréckzesetzen, starten mir d'Maschinn nei, beim Luede, am Moment wou de Grub-Menü ugewise gëtt, gitt op d'Ubuntu-Element mam "e" Knäppchen z'änneren. Ännert d'Linux Linn, füügt se bis zum Schluss init=/bin/bash. Mir lueden iwwer Ctrl + x, mir kréien e Bash. Remount de Root mat rw, ännert d'Passwuert:

$ mount -o remount,rw /dev/mapper/ubuntu--vg-root
$ passwd

Vergiesst net iwwer Synchroniséierung, Restart.

2. D'Konditioun seet datt eise Webserver net funktionnéiert, kuckt:

$ curl localhost
Not Found
The requested URL / was not found on this server.
Apache/2.4.18 

Dat ass, tatsächlech, Apache leeft, awer reagéiert mam Code 404. Loosst eis d'Konfiguratioun kucken:

$ vim /etc/apache2/sites-enabled/000-default.conf

Et gëtt och e Schlëssel hei - StevenPaulSteveJobs.

Iwwerpréift de Wee /usr/share/WordPress - et gëtt keng sou eppes, awer et gëtt /usr/share/wordpress. Ännert d'Konfiguratioun an nei start Apache.

$ systemctl restart apache2

3. Probéiert nach eng Kéier, mir kréien de Feeler:

Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488

D'Datebank leeft net?

$ systemctl status mysql
Active: active (running)

Ëm wat geet et? Mir mussen et erausfannen. Fir dëst ze maachen, musst Dir Zougang zu MySQL kréien, wéi beschriwwen an Dokumentatioun. Ee vun den Dokumentatiounspunkte recommandéiert datt mir d'Optioun registréieren skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf. Et gëtt och e Schlëssel hei - AugustaAdaKingByron.

Benotzerrechter korrigéieren 'wp'@'localhost'. Mir starten MySQL, maachen et zougänglech iwwer dem Netz, kommentéieren d'Optioun an der Konfiguratioun skip-networking.

4. No dëse Schrëtt fänkt de Webserver un, awer de Site funktionnéiert nach ëmmer net well

Warning: require_once(/usr/share/wordpress/wp-content/themes/twentysixteen/footer.php): failed to open stream: Permission denied in /usr/share/wordpress/wp-includes/template.php on line 562

Mir änneren d'Rechter op de Fichier.

$ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php

Mir erfrëschen d'Säit, gitt op de Site a fanne de Schlëssel - BjarneStroustrup! Mir hunn all dräi Schlësselen fonnt, eisen Direkter ka schaffen, mir hunn d'Comptabilitéitsdateien entschlësselt. Jiddereen ass frou, an Dir hutt vill Aarbecht virun Iech fir Infrastruktur, Backups a Sécherheet an der Firma opzestellen.

2. Zweet Etapp

Et war néideg fir de Problem vun der Sammelanalyse ze léisen. Jiddereen huet Analyse gär - wien benotzt se, wou a wéi eng Quantitéiten. Mir sinn mat engem Fall komm, deen all Ingenieuren an enger oder anerer Form am Liewen begéine kënnen.

2.1. Interessant Fakten

Ee vun eise Spiller huet an den éischten 10 Minutte vum Spill de richtege Schlëssel aginn, an an der éischter Stonn hate mir e Leader deen d'Aufgab ofgeschloss huet.

2.2. Übung

Dir sidd an der Firma schaffe gaang, Manager sinn bei Iech komm an hunn Iech gefrot fir ze fannen, wien Bréiwer aus Afrika geschéckt goufen. Mir mussen déi Top 21 Empfängeradressen opbauen op Basis vun hinnen. Déi éischt Buschtawen vun den Empfänger Adressen sinn de Schlëssel. Eng Saach: de Mailserver, duerch deen d'Bréiwer geschéckt goufen, lued net. Jiddereen erwaart eng séier Léisung vum Thema!

2.3. Léisung

1. De Server boott net wéinst enger net-existenter Swap-Partition an fstab; beim Luede probéiert de System se ze montéieren a crasht. Wéi booten?

Luet d'Bild erof, mir hunn CentOS 7 erofgelueden, boot vun Live CD / DVD (Problembehandlung -> Rettung), montéiert de System, editéieren /etc/fstab. Mir fannen direkt den éischte Schlëssel - GottfriedWilhelm11646Leibniz!

Swap erstellen:

$ lvcreate -n swap centos -L 256M
$ sync && reboot

2. Wéi ëmmer gëtt et kee Passwuert, Dir musst de Root Passwuert op der virtueller Maschinn änneren. Mir hunn dat schonn an der éischter Aufgab gemaach. Mir änneren an erfollegräich an de Server aloggen, mä et geet direkt an Restart. De Server ass mat sou enger Geschwindegkeet iwwerlaascht datt Dir net emol Zäit hutt all d'Logbicher virsiichteg ze kucken. Wéi ze verstoen wat geschitt?

Mir booten nach eng Kéier vun der Livecd, studéiert d'Systemprotokoller virsiichteg a kuckt just am Fall an de Cron, well esou eng Periodizitéit. Do fanne mir de Problem an den zweete Schlëssel - Alan1912MathisonTuring!

Néideg an /etc/crontab läschen oder kommentéieren aus Linn echo b > /proc/sysrq-trigger.

3. No deem de Server gelueden ass, an Dir kënnt d'Aufgab vun de Manager fäerdeg maachen: "Wat sinn d'Adressen an Afrika?" Dës Informatioun ass allgemeng fir de Public verfügbar. Dir fannt dës Informatioun um Internet mat den Ausdréck "IP Adress Afrika", "Geoip Datebank". Fir de Problem ze léisen, kënnt Dir fräi verfügbar Adressverdeelungsdatenbanken benotzen (Geoip). Mir hunn d'Datebank als Standard benotzt MaxMind GeoLite 2, verfügbar ënner enger Creative Commons Attribution-ShareAlike 4.0 Lizenz.

Loosst eis probéieren eise Problem mat nëmmen Linux System Utilities ze léisen, awer allgemeng kann et op eng riesech Unzuel u Weeër geléist ginn: Textfilter Utilities benotzen a Skripte a verschiddene Programméierungssproochen benotzen.

Fir unzefänken, kréie mir einfach d'"Sender-Empfänger IP" Pairen aus dem Maillog /var/log/maillog (loosst eis en Dësch vun E-Mail Empfänger bauen - Sender IP). Dëst kann mat dem folgenden Kommando gemaach ginn:

$ cat /var/log/maillog | fgrep -e ' connect from' -e 'status=sent' | sed 's/[]<>[]/ /g' | awk '/connect from/ {ip=$11} /status=sent/ {print $10" "ip}' > log1.txt

A ier mir weiderfuere mat der Zesummesetzung vun enger Datebank vun afrikaneschen Adressen, kucke mer déi Top IP Adresse vun de Sender.

$ cat log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n 40
5206 [email protected]
4165 [email protected]
3739 [email protected]
3405 [email protected]
3346 [email protected]

Ënnert hinnen all sinn déi éischt dräi Empfänger vun uewen kloer wat d'Zuel vun de Buschtawen ugeet. Wann Dir d'IP Adresse vun de Sender grepéiert, déi op Adressen vun dësem Top 3 geschéckt gi sinn, bemierkt Dir eng kloer Iwwerhand vu bestëmmten Netzwierker:

$ cat log1.txt | fgrep '[email protected]' | cut -d' ' -f2 | sort | cut -d'.' -f1 | uniq -c | sort -r | head
831 105
806 41
782 197
664 196
542 154
503 102
266 156
165 45
150 160
108 165

Déi meescht vun den Netzwierker 105/8, 41/8, 196/8,197/8 ginn op AFRINIC zougewisen - ee vun de fënnef regionalen Internetregistrateuren déi Internetressourcen verdeelen. AFRINIC verdeelt Adressraum uechter Afrika. An 41/8 bezitt sech op AFRINIC komplett.

https://www.nic.ru/whois/?searchWord=105.0.0.0 
https://www.nic.ru/whois/?searchWord=41.0.0.0

Also ass d'Äntwert op de Problem tatsächlech am Logbuch selwer.

$ 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
4209 [email protected]
3313 [email protected]
2704 [email protected]
2215 [email protected]
1774 [email protected]
1448 [email protected]
1233 [email protected]
958 [email protected]
862 [email protected]
762 [email protected]
632 [email protected]
539 [email protected]
531 [email protected]
431 [email protected]
380 [email protected]
357 [email protected]
348 [email protected]
312 [email protected]
289 [email protected]
282 [email protected]
274 [email protected]

Op dëser Etapp kréien mir d'String "LinuxBenedictTorvadst".

Richteg Schlëssel: "LinusBenedictTorvalds".

Déi resultéierend String enthält en Tippfeeler par rapport zum richtege Schlëssel an de leschten 3 Zeechen. Dëst ass wéinst der Tatsaach datt d'Netzwierker, déi mir gewielt hunn, net ganz un afrikanesch Länner gewidmet sinn an un d'Art a Weis wéi E-Mailen duerch IP Adressen an eisem Log verdeelt ginn.

Mat genuch Spezifizéierung vun de gréisste Netzwierker, déi un afrikanesch Länner zougewisen sinn, kann eng präzis Äntwert kritt ginn:

$ 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
3350 [email protected]
2662 [email protected]
2105 [email protected]
1724 [email protected]
1376 [email protected]
1092 [email protected]
849 [email protected]
712 [email protected]
584 [email protected]
463 [email protected]
365 [email protected]
269 [email protected]
225 [email protected]
168 [email protected]
142 [email protected]
111 [email protected]
 96 [email protected]
 78 [email protected]
 56 [email protected]
 56 [email protected]
 40 [email protected]

De Problem kann och op eng aner Manéier geléist ginn.
Download MaxMind, packt et aus, an déi nächst dräi Kommandoen léisen och eise Problem.

$ cat GeoLite2-Country-Locations-ru.csv | grep "Африка" | cut -d',' -f1 > africaIds.txt
$ grep -Ff africaIds.txt GeoLite2-Country-Blocks-IPv4.csv | cut -d',' -f1 > africaNetworks.txt
$ grepcidr -f africaNetworks.txt log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n21

Op eng oder aner Manéier hu mir d'Statistike schlussendlech berechent, an d'Manager kruten déi Donnéeën déi se gebraucht hunn fir ze schaffen!

3. Drëtt Etapp

Déi drëtt Stuf ass e bëssen ähnlech wéi déi éischt - Dir musst och de waarme Lampeservice fixéieren, awer alles ass méi komplizéiert wéi an der éischter Aufgab.

3.1. Interessant Fakten

An den éischte 15 Minutten hunn dräi Spiller den éischte Schlëssel fonnt, 2 Stonnen an 20 Minutten nom Start vun der Etapp huet eise Gewënner d'Aufgab ofgeschloss.

3.2. Übung

Dir sidd fir eng Firma schaffe gaang, wou all Firma Dokumenter op engem internen Wiki Server gespäichert sinn. D'lescht Joer huet en Ingenieur 3 nei Disks fir de Server zousätzlech zu engem existente bestallt, mat der Argumentatioun datt fir de System Feeler-tolerant ze sinn, mussen d'Disks an eng Art Arrays plazéiert ginn. Leider ass den Ingenieur e puer Wochen no hirer Installatioun an d'Vakanz an Indien gaang an ass net zréckkomm.

De Server huet e puer Joer ouni Feeler geschafft, awer virun e puer Deeg gouf de Netz vun der Firma gehackt. Laut den Instruktiounen hunn d'Sécherheetspersonal d'Disks vum Server ewechgeholl an Iech geschéckt. Beim Transport gouf eng Scheif irretrievably verluer.

Mir mussen d'Funktionalitéit vu Wiki restauréieren, fir d'éischt interesséiere mir eis fir den Inhalt vun de Wiki-Säiten. E bestëmmt Stéck Text, dat op enger vun de Säiten vun dëser Wiki stoung, ass d'Passwuert fir den 1C-Server an ass dréngend gebraucht fir et opzemaachen.

Ausserdeem gouf et iergendwou op de Wiki-Säiten oder op enger anerer Plaz Passwierder fir de Log-Server an de Video-Iwwerwaachungsserver, déi och wënschenswäert wier ze recuperéieren, ouni si ass d'Untersuchung vum Tëschefall onméiglech. Wéi ëmmer erwaarden mir eng séier Léisung vum Thema!

3.3. Léisung

1. Mir probéieren een nom aneren aus den Disken ze booten déi mir hunn an iwwerall kréien mir dee selwechte Message:

No bootable medium found! System halted 

Dir musst vun eppes booten. Booten vun enger Live CD / DVD (Problembehandlung -> Rettung) hëlleft erëm. Beim Luede probéieren mir d'Bootpartition ze fannen, mir kënnen et net fannen, mir kommen an der Shell. Mir probéieren ze studéieren wat a wéi mat Disken ze maachen. Et ass bekannt datt et dräi vun hinnen sinn. Et gi méi Tools fir dëst an der 7. Versioun vum CentOS, wou et Kommandoen sinn blkid oder lsblk, déi eis all d'Informatioun iwwer d'Placken weisen.

Wéi a wat maache mir:

$ ls /dev/sd*

Dat ass direkt kloer

/dev/sdb1 - ext4
/dev/sdb2 - часть lvm
/dev/sda1 и /dev/sdc1 - части рейда
/dev/sda2 и /dev/sdc2 - про них ничего не известно на текущий момент

Mir montéieren sdb1, et ass kloer datt dëst d'Startpartition vum CentOS 6 ass.

$ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1

Natierlech gi mir an d'Grub Sektioun a fanne den éischte Schlëssel do - James191955Gosling an enger ongewéinlecher Datei.

2. Mir studéieren pvs an lvs, well mir schaffen mat LVM. Mir gesinn, datt et soll 2 kierperlech Bänn, eent ass net lokaliséiert a beschwéiert iwwer eng verluer uid. Mir gesinn datt et 2 logesch Bänn sollte sinn: root a swap, während root deelweis verluer ass (de P Attribut vum Volume). Et ass net méiglech ze montéieren, wat schued ass! Mir brauchen hien wierklech.

Et ginn nach 2 Disks, mir kucken se, montéieren a montéieren se:

$ mdadm --examine --verbose --scan
$ mdadm --assemble --verbose --scan
$ mkdir /mnt/md127 && mount /dev/md127  /mnt/md127 

Mir kucken, mir kënne gesinn datt dëst d'Startpartition vum CentOS 6 ass an en Duplikat vun deem wat schonn ass /dev/sdb1, an hei nach eng Kéier déi selwecht Schlëssel - DennisBMacAlistairCRitchie!
Loosst eis kucken wéi et zesummegesat ass /dev/md127.

$ mdadm --detail /dev/md127

Mir gesinn datt et aus 4 Scheiwen sollt zesummegesat ginn, awer et gouf aus zwee zesummegesat /dev/sda1 и /dev/sdc1, si sollten d'Zuelen 2 a 4 am System gewiescht sinn. Mir ginn dovun aus, datt aus /dev/sda2 и /dev/sdc2 Dir kënnt och eng Array sammelen. Et ass net kloer firwat et keng Metadaten op hinnen ass, awer dëst ass um Gewësse vum Administrateur, deen iergendwou zu Goa ass. Mir huelen un datt et RAID10 soll sinn, obwuel et Optiounen sinn. Mir sammelen:

$ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2

Mir kucken blkid, pvs, lvs. Mir entdecken datt mir e kierperlecht Volumen gesammelt hunn, dee mir virdru gefeelt hunn.

lvroot gouf direkt reparéiert, mir montéieren et, awer aktivéieren éischt VG:

$ vgchange -a y
$ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot 

An alles ass do, och de Schlëssel am Root Heemverzeichnis - /root/sweet.

3. Mir probéieren nach ëmmer eise Server z'erliewen, sou datt en normal ufänkt. All logesch Bänn aus eisem /dev/md0 (wou mir alles fonnt hunn) zéien et /dev/sdb2, wou de ganze Server am Ufank geschafft huet.

$ pvmove /dev/md0 /dev/sdb2
$ vgreduce vg_c6m1 /dev/md0

Mir schalten de Server aus, läschen Disken 1 an 3, verloossen déi zweet, booten vun der Live CD / DVD an d'Rettung. Fannt d'Bootpartition a restauréiert de Bootloader am Grub:

root (hd0,0)
setup (hd0)

Mir räissen d'Boot Disk of a lueden erfollegräich, awer de Site funktionnéiert net.

4. Et ginn zwou Méiglechkeeten fir eng Websäit ze starten: Apache vun Null konfiguréieren oder nginx benotzen mat php-fpm schonn am Viraus konfiguréiert:

$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm start

Endlech musst Dir MySQL starten:

$ /etc/init.d/mysqld start

Et fänkt net un, an d'Äntwert läit an /var/log/mysql. Soubal Dir de Problem mat MySQL léist, funktionnéiert de Site, op der Haaptsäit gëtt et e Schlëssel - RichardGCCMatthewGNUStallman! Elo hu mir Zougang zu 1C, an d'Mataarbechter kënnen hir Pai kréien. A wéi ëmmer, hutt Dir vill Aarbecht virun der Infrastruktur a Sécherheet an der Firma.

Mir kënnen och nach eng Kéier eng Lëscht vu Bicher deelen, déi eis an eise Participanten gehollef hunn op d'Spill virzebereeden: linux.mail.ru/books.

Merci datt Dir mat eis sidd! Bleift ofgeschloss fir Ukënnegung vun den nächste Spiller!

Source: will.com

Setzt e Commentaire