Linux Quest. Óskum vinningshöfum til hamingju og segðu okkur frá lausnum á verkefnunum

Linux Quest. Óskum vinningshöfum til hamingju og segðu okkur frá lausnum á verkefnunum

Þann 25. mars var opnað fyrir skráningu í Linux Quest, þetta er leikur fyrir unnendur og sérfræðinga í Linux stýrikerfinu. Nokkur tölfræði: 1117 manns skráðu sig í leikinn, 317 þeirra fundu að minnsta kosti einn lykil, 241 luku verkefni fyrsta stigs með góðum árangri, 123 - annað og 70 stóðust þriðja stigið. Í dag er leiknum okkar lokið og við óskum sigurvegurunum til hamingju!

  • Alexander Teldekov varð í fyrsta sæti.
    Alexander sagði við sjálfan sig að hann væri dæmigerðasti kerfisstjórinn. Býr í Volgograd, hefur stjórnað ýmsum Unix-líkum kerfum í um tuttugu ár. Ég náði að vinna í netveitum, banka og kerfissamþættara. Nú starfar hann í fjarvinnu í litlu fyrirtæki, vinnur við skýjainnviði fyrir stóran erlendan viðskiptavin. Elskar að lesa og hlusta á tónlist. Um leikinn sagði Alexander að honum líkaði leikinn í heild sinni, hann elskar slík verkefni. Í viðtali hjá einu af fyrirtækjum sem ég gerði eitthvað svipað og Hackerrank, það var áhugavert.
  • Annað sæti - Roman Suslov.
    Skáldsaga frá Moskvu. Hann er 37 ára gamall. Vinnur sem Linux/Unix verkfræðingur hjá Jet Infosystems. Í vinnunni þarf ég að stjórna og leysa Linux/Unix kerfi + SAN. Áhugamálin eru margvísleg: Linux kerfi, forritun, bakverkfræði, upplýsingaöryggi, Arduino. Um leikinn sagði Roman að honum líkaði leikinn í heildina. „Ég teygði heilann aðeins og tók mér frí frá gráum hversdagsleika hversdagsleikans. 🙂 Ég myndi vilja fá fleiri verkefni, annars var leikurinn búinn áður en ég hafði tíma til að smakka á því."
  • Í þriðja lagi - alex3d.
    Alex býr í Moskvu og vinnur við hugbúnaðargerð. „Þakka þér fyrir keppnina, það var áhugavert að prófa google-fu færni mína.

Einnig í röðinni yfir 10 bestu leikmennina:

  • Yevgeniy Saldayev
  • Markel Mokhnachevsky
  • Konstantin Konosov
  • Pavel Sergeev
  • Vladimir Bovaev
  • Ívan Bubnov
  • Pavlo Klets

Við skiljum að það eru margir möguleikar til að leysa öll vandamál okkar; sumum mögulegum lausnum er lýst hér að neðan.

1. Fyrsta stig

Við kölluðum það „Ertu virkilega admin?“, þar sem verkefnið var frekar einfalt - að laga heita lampaþjónustu.

1.1. Áhugaverðar staðreyndir:

Tveir leikmenn fundu fyrsta lykilinn á fyrstu 15 mínútum leiksins og á fyrsta klukkutímann vorum við með þrjá leiðtoga sem kláruðu verkefnið.

1.2. Æfing

Þú fórst að vinna í fyrirtæki þar sem lengi vel var enginn sérfræðingur í upplýsingatækni. Áður en þú byrjar að koma hlutunum í lag þarftu að leysa brennandi vandamálið sem hindrar starf skrifstofunnar.

Hreinsunarkonan greip rafmagnssnúruna á netþjónaskápnum með moppu. Rafmagn hefur verið komið á aftur en mjög mikilvæg vefsíða virkar enn ekki. Vefurinn er mikilvægur vegna þess að fyrirtækið hefur ekki miklar áhyggjur af upplýsingaöryggi og á aðalsíðu þess má finna í skýrum texta stjórnandalykilorð fyrir tölvu forstjóra.

Um daginn var lykilorðinu breytt en allir gleymdu því nýja, leikstjórinn getur ekki unnið. Það eru sögusagnir um að það hafi verið fleiri lyklar á þessari vél sem gætu hjálpað okkur að ráða öryggisafrit af bókhaldsskjölunum.

Allir búast við skjótri lausn á málinu!

1.3. Lausn

1. Fyrst af öllu þarftu að breyta rótarlykilorðinu á sýndarvélinni til að fá aðgang að henni. Þegar byrjað er tökum við eftir því að þetta er Ubuntu 16.04 Server.

Til að endurstilla rótarlykilorðið endurræsum við vélina, við hleðslu, á því augnabliki sem grub valmyndin birtist, farðu til að breyta Ubuntu hlutnum með „e“ hnappinum. Breyttu línu linux, bættu því við í lokin init=/bin/bash. Við hleðum með Ctrl+x, við fáum bash. Settu rótina aftur upp með rw, breyttu lykilorðinu:

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

Ekki gleyma samstillingu, endurræstu.

2. Skilyrðið segir að vefþjónninn okkar virki ekki, sjáðu:

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

Það er í raun, Apache er í gangi, en svarar með kóða 404. Við skulum skoða stillinguna:

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

Það er líka lykill hér - StevenPaulSteveJobs.

Athugar slóðina /usr/share/WordPress - það er ekkert slíkt, en það er það /usr/share/wordpress. Breyttu stillingunni og endurræstu Apache.

$ systemctl restart apache2

3. Reyndu aftur, við fáum villuna:

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

Gagnagrunnurinn er ekki í gangi?

$ systemctl status mysql
Active: active (running)

Hvað er að? Við þurfum að finna út úr því. Til að gera þetta þarftu að fá aðgang að MySQL, eins og lýst er í skjöl. Einn af skjalapunktunum mælir með því að við skráum valkostinn skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf. Það er líka lykill hér - AugustaAdaKingByron.

Leiðrétting notendaréttinda 'wp'@'localhost'. Við ræsum MySQL, gerum það aðgengilegt í gegnum netið, gerum athugasemdir við valkostinn í stillingunni skip-networking.

4. Eftir þessi skref fer vefþjónninn í gang, en síðan virkar samt ekki vegna þess

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

Við breytum réttindum á skránni.

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

Við endurnýjum síðuna, förum á síðuna og finnum lykilinn - BjarneStroustrup! Við fundum alla þrjá lyklana, forstjórinn okkar getur unnið, við afkóðuðum bókhaldsskrárnar. Allir eru ánægðir og mikil vinna framundan við að setja upp innviði, öryggisafrit og öryggi í fyrirtækinu.

2. Annað stig

Það var nauðsynlegt að leysa vandamálið við að safna greiningar. Allir elska greiningar - hver notar það, hvar og í hvaða magni. Við komum með mál sem allir verkfræðingar gætu lent í í einni eða annarri mynd í lífinu.

2.1. Áhugaverðar staðreyndir

Einn af leikmönnum okkar setti inn réttan lykil á fyrstu 10 mínútum leiksins og á fyrsta klukkutímann vorum við með leiðtoga sem kláraði verkefnið.

2.2. Æfing

Þú fórst að vinna hjá fyrirtækinu, stjórnendur komu til þín og báðu þig að finna til hvers bréf voru send frá Afríku. Við þurfum að byggja upp 21 efstu netföng viðtakenda út frá þeim. Fyrstu stafirnir í heimilisföngum viðtakenda eru lykillinn. Eitt: póstþjónninn sem bréfin voru send í gegnum hleðst ekki. Allir búast við skjótri lausn á málinu!

2.3. Lausn

1. Miðlarinn ræsir sig ekki vegna swap partition í fstab sem ekki er til, við hleðslu reynir kerfið að tengja það og hrynur. Hvernig á að ræsa?

Sæktu myndina, við haluðum niður CentOS 7, ræstu af Live CD/DVD (bilanaleit -> Björgun), settu kerfið upp, breyttu /etc/fstab. Við finnum strax fyrsta lykilinn - GottfriedWilhelm11646Leibniz!

Búa til skipti:

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

2. Eins og alltaf er ekkert lykilorð, þú þarft að breyta rót lykilorðinu á sýndarvélinni. Við gerðum þetta þegar í fyrsta verkefninu. Við breytum og skráum okkur inn á netþjóninn, en hann fer strax í endurræsingu. Netþjónninn er ofhlaðinn á svo miklum hraða að þú hefur ekki einu sinni tíma til að skoða alla annálana vandlega. Hvernig á að skilja hvað er að gerast?

Aftur við ræsum frá livecd, rannsaka vandlega kerfi logs og, bara í tilfelli, líta inn í cron, þar sem slík reglusemi. Þar finnum við vandamálið og seinni lykilinn - Alan1912MathisonTuring!

Þarf inn /etc/crontab eyða eða skrifa athugasemd út línu echo b > /proc/sysrq-trigger.

3. Eftir það hefur þjónninn verið hlaðinn og þú getur klárað verkefni stjórnenda: "Hver eru heimilisföngin í Afríku?" Þessar upplýsingar eru almennt aðgengilegar almenningi. Þú getur fundið þessar upplýsingar á netinu með því að nota orðasamböndin „ip address africa“, „geoip database“. Til að leysa vandamálið er hægt að nota frjálslega aðgengilegar dreifingargagnagrunna (geoip). Við notuðum gagnagrunninn sem staðal MaxMind GeoLite2, fáanlegt undir Creative Commons Attribution-ShareAlike 4.0 leyfi.

Við skulum reyna að leysa vandamál okkar með því að nota aðeins Linux kerfisforrit, en almennt er hægt að leysa það á gríðarlega marga vegu: með því að nota textasíunartæki og nota forskriftir á ýmsum forritunarmálum.

Til að byrja með munum við einfaldlega fá „sendandi-viðtakanda IP“ pörin úr póstskránni /var/log/maillog (við skulum búa til töflu yfir viðtakendur tölvupósts - IP sendanda). Þetta er hægt að gera með eftirfarandi skipun:

$ 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

Og áður en við höldum áfram að setja saman gagnagrunn yfir afrísk heimilisföng skulum við skoða helstu IP tölur sendenda.

$ 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]

Meðal þeirra allra eru fyrstu þrír viðtakendurnir efstir áberandi hvað varðar fjölda stafa. Ef þú grípur IP-tölur sendenda sem sendu á heimilisföng frá þessum efstu 3 muntu taka eftir augljósum yfirburði ákveðinna neta:

$ 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

Flest netkerfin 105/8, 41/8, 196/8,197/8 eru úthlutað til AFRINIC - einn af fimm svæðisbundnum netskrárstjórum sem dreifa internetauðlindum. AFRINIC dreifir heimilisfangarými um alla Afríku. Og 41/8 vísar algjörlega til AFRINIC.

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

Þannig er svarið við vandamálinu í raun í logginu sjálfu.

$ 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]

Á þessu stigi fáum við strenginn „LinuxBenedictTorvadst“.

Réttur lykill: "LinusBenedictTorvalds".

Strenginn sem myndast inniheldur innsláttarvillu í tengslum við réttan lykil í síðustu 3 stöfunum. Þetta er vegna þess að netkerfin sem við völdum eru ekki að öllu leyti tileinkuð Afríkulöndum og því hvernig tölvupósti er dreift með IP-tölum í skránni okkar.

Með fullnægjandi forskrift á stærstu netum sem úthlutað er til Afríkuríkja er hægt að fá nákvæmt svar:

$ 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]

Vandamálið er líka hægt að leysa á annan hátt.
Sæktu MaxMind, pakkaðu því upp og næstu þrjár skipanir leysa líka vandamál okkar.

$ 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

Með einum eða öðrum hætti reiknuðum við út tölfræðina á endanum og stjórnendur fengu þau gögn sem þeir þurftu til að vinna!

3. Þriðja áfangi

Þriðja stigið er nokkuð svipað því fyrsta - þú þarft líka að laga heita lampaþjónustuna, en allt er flóknara en í fyrsta verkefninu.

3.1. Áhugaverðar staðreyndir

Á fyrstu 15 mínútunum fundu þrír leikmenn fyrsta lykilinn; 2 klukkustundum og 20 mínútum eftir að stigið hófst kláraði sigurvegarinn okkar verkefnið.

3.2. Æfing

Þú fórst að vinna hjá fyrirtæki þar sem öll fyrirtækisskjöl eru geymd á innri Wiki-þjóni. Á síðasta ári pantaði verkfræðingur 3 nýja diska fyrir netþjóninn til viðbótar við einn sem fyrir var, með þeim rökum að til að kerfið væri bilunarþolið þyrfti að setja diskana í einhvers konar fylki. Því miður, nokkrum vikum eftir uppsetningu þeirra, fór verkfræðingurinn í frí til Indlands og kom ekki aftur.

Miðlarinn virkaði án bilana í nokkur ár, en fyrir nokkrum dögum var brotist inn á net fyrirtækisins. Samkvæmt leiðbeiningunum fjarlægðu öryggisstarfsmenn diskana af þjóninum og sendi þér. Við flutning tapaðist einn diskur óafturkallanlega.

Við þurfum að endurheimta virkni Wiki, fyrst og fremst höfum við áhuga á innihaldi Wiki síðna. Ákveðinn texti sem var á einni af síðum þessarar wiki er lykilorðið fyrir 1C þjóninn og er bráðnauðsynlegt til að opna hann.

Þar að auki voru einhvers staðar á wiki-síðunum eða annars staðar lykilorð fyrir notendaþjóninn og myndbandseftirlitsþjóninn, sem einnig væri æskilegt að endurheimta; án þeirra er rannsókn á atvikinu ómöguleg. Eins og alltaf, væntum við skjótrar lausnar á málinu!

3.3. Lausn

1. Við reynum að ræsa einn í einu af diskunum sem við höfum og alls staðar fáum við sömu skilaboðin:

No bootable medium found! System halted 

Þú þarft að ræsa frá einhverju. Að ræsa af lifandi geisladisk/DVD (bilanaleit -> Björgun) hjálpar aftur. Við hleðslu reynum við að finna ræsiskiptinguna, við finnum hana ekki, við endum í skelinni. Við erum að reyna að rannsaka hvað og hvernig á að gera við diska. Vitað er að þeir eru þrír. Það eru fleiri verkfæri fyrir þetta í 7. útgáfu CentOS, þar sem eru skipanir blkid eða lsblk, sem sýna okkur allar upplýsingar um diskana.

Hvernig og hvað við gerum:

$ ls /dev/sd*

Það er strax augljóst að

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

Við festum sdb1, það er ljóst að þetta er ræsiskipting CentOS 6.

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

Augljóslega förum við í grub hlutann og finnum fyrsta lykilinn þar - James191955Gosling í óvenjulegri skrá.

2. Við lærum pvs og lvs, þar sem við vinnum með LVM. Við sjáum að það ættu að vera 2 líkamleg bindi, annað er ekki staðsett og kvartar yfir týndu uid. Við sjáum að það ættu að vera 2 rökrétt bindi: rót og skipta, en rót er að hluta glatað (P eiginleiki rúmmáls). Það er ekki hægt að festa, sem er leitt! Við þurfum virkilega á honum að halda.

Það eru 2 diskar í viðbót, við skoðum þá, setjum saman og festum þá:

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

Við skoðum, við getum séð að þetta er ræsiskipting CentOS 6 og afrit af því sem þegar er á /dev/sdb1, og hér aftur sami lykillinn - DennisBMacAlistairCRitchie!
Við skulum sjá hvernig það er sett saman /dev/md127.

$ mdadm --detail /dev/md127

Við sjáum að það hefði átt að vera sett saman úr 4 diskum, en það var sett saman úr tveimur /dev/sda1 и /dev/sdc1, þær hefðu átt að vera númer 2 og 4 í kerfinu. Við gerum ráð fyrir því að frá /dev/sda2 и /dev/sdc2 Þú getur líka safnað fylki. Það er ekki ljóst hvers vegna það eru engin lýsigögn á þeim, en þetta er á samvisku stjórnandans, sem er einhvers staðar í Goa. Við gerum ráð fyrir að það ætti að vera RAID10, þó að það séu möguleikar. Við söfnum:

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

Við skoðum blkid, pvs, lvs. Við komumst að því að við höfum safnað líkamlegu bindi sem okkur vantaði áður.

lvroot var strax lagfært, við festum það, en virkjaðu fyrst VG:

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

Og allt er til staðar, þar á meðal lykillinn í rótarheimaskránni - /root/sweet.

3. Við erum enn að reyna að endurlífga netþjóninn okkar þannig að hann ræsist eðlilega. Allt rökrétt bindi frá okkar /dev/md0 (þar sem við fundum allt) dragðu það til /dev/sdb2, þar sem allur þjónninn virkaði upphaflega.

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

Við slökkum á netþjóninum, fjarlægjum diska 1 og 3, skiljum þann seinni eftir, ræsum af Live CD/DVD inn í Rescue. Finndu ræsihlutinn og endurheimtu ræsiforritið í grub:

root (hd0,0)
setup (hd0)

Við rífum ræsidiskinn af og hleðst inn, en síðan virkar ekki.

4. Það eru tveir möguleikar til að opna vefsíðu: stilla Apache frá grunni eða nota nginx með php-fpm þegar stillt fyrirfram:

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

Að lokum þarftu að ræsa MySQL:

$ /etc/init.d/mysqld start

Það byrjar ekki og svarið liggur í /var/log/mysql. Um leið og þú leysir vandamálið með MySQL mun síðan virka, á aðalsíðunni verður lykill - RichardGCCMatthewGNUStallman! Nú höfum við aðgang að 1C og starfsmenn munu geta fengið laun sín. Og eins og alltaf er mikil vinna framundan við að koma upp innviðum og öryggi í fyrirtækinu.

Við getum líka enn og aftur deilt lista yfir bækur sem hjálpuðu okkur og þátttakendum okkar að undirbúa sig fyrir leikinn: linux.mail.ru/books.

Þakka þér fyrir að vera með okkur! Fylgstu með tilkynningum um næstu leiki!

Heimild: www.habr.com

Bæta við athugasemd