De 25. Mäerz hu mir d'Umeldung opgemaach fir
- 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 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
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:
Merci datt Dir mat eis sidd! Bleift ofgeschloss fir Ukënnegung vun den nächste Spiller!
Source: will.com