Linux Quest. Felisitasyon pou ganyan yo epi di nou sou solisyon yo nan travay yo

Linux Quest. Felisitasyon pou ganyan yo epi di nou sou solisyon yo nan travay yo

Le 25 mas nou ouvri enskripsyon pou Linux Quest, sa a se yon jwèt pou rayisab ak ekspè nan sistèm nan opere Linux. Gen kèk estatistik: 1117 moun ki anrejistre pou jwèt la, 317 nan yo te jwenn omwen yon kle, 241 avèk siksè konplete travay la nan premye etap la, 123 ranpli etap nan dezyèm ak 70 te pase etap nan twazyèm. Jodi a jwèt nou an rive nan fen epi nou felisite ganyan nou yo!

  • Alexander Teldekov te pran premye plas.
    Alexander te di nan tèt li ke li se administratè sistèm ki pi tipik. Ap viv nan Volgograd, li te administre divès kalite sistèm UNIX-tankou pou apeprè ven ane. Mwen te jere yo travay nan founisè entènèt, yon bank, ak yon entegre sistèm. Kounye a li travay adistans nan yon ti konpayi, k ap travay sou enfrastrikti nwaj pou yon gwo kliyan etranje. Renmen li ak koute mizik. Konsènan jwèt la, Alexander te di ke li te renmen jwèt la kòm yon antye, li renmen travay sa yo. Pandan yon entèvyou nan youn nan konpayi yo mwen te fè yon bagay ki sanble ak Hackerrank, li te enteresan.
  • Dezyèm plas - Women Suslov.
    Yon woman soti nan Moskou. Li gen 37 an. Travay kòm yon enjenyè Linux/Unix nan Jet Infosystems. Nan travay, mwen dwe administre ak rezoud pwoblèm sistèm Linux/Unix + SAN. Enterè yo varye: sistèm Linux, pwogramasyon, jeni ranvèse, sekirite enfòmasyon, Arduino. Konsènan jwèt la Roman te note ke li te renmen jwèt la an jeneral. "Mwen te lonje sèvo mwen yon ti kras epi mwen te pran yon repo nan lavi chak jou gri nan travay chak jou. 🙂 Mwen ta renmen gen plis travay, otreman anvan mwen te gen tan jwenn yon gout nan, jwèt la te deja fini."
  • Twazyèm - alex3d.
    Alex ap viv nan Moskou ak travay nan devlopman lojisyèl. "Mèsi pou konkou a, li te enteresan pou teste konpetans mwen google-fu."

Epitou nan klasman an nan 10 pi bon jwè yo:

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

Nou konprann ke gen anpil opsyon pou rezoud tout pwoblèm nou yo; kèk nan solisyon posib yo dekri anba a.

1. Premye etap

Nou te rele li "Èske ou reyèlman yon admin?", depi travay la te byen senp - ranje yon sèvis lanp cho.

1.1. Reyalite enteresan:

De jwè yo te jwenn premye kle nan premye 15 minit jwèt la, e nan premye èdtan nou te gen twa lidè ki te konplete travay la.

1.2. Egzèsis

Ou te ale nan travay nan yon konpayi kote pou yon tan long pa te gen okenn espesyalis konpetan teknoloji enfòmasyon. Anvan ou kòmanse mete bagay yo nan lòd, ou bezwen rezoud pwoblèm nan boule ki bloke travay la nan biwo a.

Dam nan netwayaj kenbe kab pouvwa a nan kabinè a sèvè ak yon mop. Pouvwa yo te retabli, men yon sit entènèt trè enpòtan toujou pa travay. Sit wèb la enpòtan paske konpayi an pa trè konsène sou sekirite enfòmasyon, epi sou paj prensipal sa a ou ka jwenn nan tèks klè modpas administratè a pou òdinatè CEO a.

Lòt jou a te chanje modpas la, men tout moun bliye nouvo a, direktè a pa ka travay. Gen rimè ke te gen plis kle sou machin sa a ki ta ka ede nou dechifre kopi backup dokiman kontablite yo.

Tout moun espere yon solisyon rapid nan pwoblèm nan!

1.3. Solisyon

1. Premye a tout, ou bezwen chanje modpas la rasin sou machin vityèl la yo nan lòd yo jwenn aksè a li. Lè w kòmanse, nou remake ke sa a se Ubuntu 16.04 sèvè.

Pou Reyajiste modpas rasin lan, nou rekòmanse machin nan, lè w ap chaje, nan moman an ap parèt meni an grub, ale nan edit atik Ubuntu ak bouton "e". Edite linux liy lan, ajoute li nan fen an init=/bin/bash. Nou chaje via Ctrl + x, nou jwenn yon bash. Remonte rasin lan ak rw, chanje modpas la:

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

Pa bliye sync, redémarrer.

2. Kondisyon an di ke sèvè entènèt nou an pa travay, gade:

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

Sa se, an reyalite, Apache ap kouri, men reponn ak kòd 404. Ann gade nan konfigirasyon an:

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

Genyen tou yon kle isit la - StevenPaulSteveJobs.

Tcheke chemen an /usr/share/WordPress - pa gen okenn bagay konsa, men gen /usr/share/wordpress. Edite konfigirasyon an epi rekòmanse Apache.

$ systemctl restart apache2

3. Eseye ankò, nou jwenn erè a:

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

Baz done a pa kouri?

$ systemctl status mysql
Active: active (running)

Ki pwoblèm nan? Nou bezwen kalkile li. Pou fè sa, ou bezwen jwenn aksè nan MySQL, jan sa dekri nan dokiman. Youn nan pwen dokimantasyon yo rekòmande pou nou anrejistre opsyon an skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf. Genyen tou yon kle isit la - AugustaAdaKingByron.

Korije dwa itilizatè yo 'wp'@'localhost'. Nou lanse MySQL, fè li aksesib sou rezo a, fè kòmantè opsyon a nan konfigirasyon an skip-networking.

4. Apre etap sa yo, sèvè entènèt la kòmanse, men sit la toujou pa travay paske

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

Nou modifye dwa yo nan dosye a.

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

Nou rafrechi paj la, ale sou sit la epi jwenn kle a - BjarneStroustrup! Nou jwenn tout twa kle, direktè nou an ka travay, nou dechifre dosye kontablite yo. Tout moun kontan, epi ou gen anpil travay devan ou pou mete kanpe enfrastrikti, sovgad ak sekirite nan konpayi an.

2. Dezyèm etap

Li te nesesè yo rezoud pwoblèm nan nan kolekte analytics. Tout moun renmen analytics - ki moun ki sèvi ak li, ki kote ak nan ki kantite. Nou te vini ak yon ka ke tout enjenyè ka rankontre nan yon fòm oswa yon lòt nan lavi.

2.1. Reyalite Enteresan

Youn nan jwè nou yo te antre nan kle ki kòrèk la nan premye 10 minit yo nan jwèt la, epi nan premye èdtan an nou te gen yon lidè ki te konplete travay la.

2.2. Egzèsis

Ou te ale nan travay nan konpayi an, manadjè yo te vin jwenn ou epi yo mande ou jwenn ki moun yo te voye lèt soti nan Lafrik. Nou bezwen bati pi gwo 21 adrès moun k ap resevwa yo ki baze sou yo. Premye lèt adrès moun k ap resevwa yo se kle a. Yon sèl bagay: sèvè lapòs kote lèt yo te voye pa chaje. Tout moun espere yon solisyon rapid nan pwoblèm nan!

2.3. Solisyon

1. Sèvè a pa demare akòz yon patisyon swap ki pa egziste nan fstab, lè chaje, sistèm nan eseye monte li epi aksidan. Ki jan yo bòt?

Telechaje imaj la, nou telechaje CentOS 7, bòt soti nan Live CD/DVD (Depanaj -> Sekou), monte sistèm nan, edite /etc/fstab. Nou imedyatman jwenn premye kle a - GottfriedWilhelm11646Leibniz!

Kreye swap:

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

2. Kòm toujou, pa gen okenn modpas, ou bezwen chanje modpas la rasin sou machin vityèl la. Nou te deja fè sa nan premye travay la. Nou chanje ak siksè konekte nan sèvè a, men li imedyatman ale nan rdemare. Sèvè a twò chaje nan yon vitès konsa ke ou pa menm gen tan gade tout mòso bwa yo ak anpil atansyon. Ki jan yo konprann sa k ap pase?

Yon fwa ankò nou bòt soti nan livecd la, ak anpil atansyon etidye mòso bwa sistèm yo epi, jis nan ka, gade nan cron la, depi tankou yon peryodik. Se la nou jwenn pwoblèm nan ak dezyèm kle a - Alan1912MathisonTuring!

Bezwen nan /etc/crontab efase oswa kòmantè soti liy echo b > /proc/sysrq-trigger.

3. Apre sa sèvè a chaje, epi ou ka ranpli travay administratè yo: "Ki adrès yo ann Afrik?" Enfòmasyon sa a jeneralman disponib pou piblik la. Ou ka jwenn enfòmasyon sa yo sou Entènèt la lè l sèvi avèk fraz yo "ip address africa", "geoip database". Pou rezoud pwoblèm nan, ou ka itilize baz done distribisyon adrès ki disponib gratis (geoip). Nou itilize baz done a kòm yon estanda MaxMind GeoLite2, disponib anba yon lisans Creative Commons Attribution-ShareAlike 4.0.

Ann eseye rezoud pwoblèm nou an lè l sèvi avèk sèlman sèvis piblik sistèm Linux, men an jeneral li ka rezoud nan yon gwo kantite fason: lè l sèvi avèk sèvis piblik filtraj tèks ak itilize scripts nan divès lang pwogramasyon.

Pou kòmanse, nou pral tou senpleman jwenn pè "sender-destinataire IP" nan jounal lapòs la /var/log/maillog (Ann konstwi yon tablo moun k ap resevwa imel - sender IP). Sa a ka fè ak lòd sa a:

$ 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

Epi anvan nou kontinye ak konpile yon baz done nan adrès Afriken yo, ann pran yon gade nan adrès IP yo nan tèt moun k ap voye yo.

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

Pami yo tout, twa premye moun k ap resevwa yo soti nan tèt la klèman kanpe an tèm de kantite lèt. Si w ap gade adrès IP moun k ap voye yo nan adrès ki soti nan 3 sa a, w ap remake yon dominasyon klè nan sèten rezo:

$ 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

Pifò nan rezo 105/8, 41/8, 196/8,197/8 yo atribye ba AFRINIC - youn nan senk rjistrè Entènèt rejyonal yo ki distribye resous Entènèt yo. AFRINIC distribye espas adrès atravè Lafrik. Ak 41/8 refere a AFRINIC nèt.

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

Kidonk, repons lan nan pwoblèm nan se, an reyalite, nan boutèy la tèt li.

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

Nan etap sa a nou jwenn fisèl "LinuxBenedictTorvadst".

Kle kòrèk: "LinusBenedictTorvalds".

Fisèl ki kapab lakòz gen yon typo an relasyon ak kle ki kòrèk la nan 3 dènye karaktè yo. Sa a se akòz lefèt ke rezo yo nou chwazi yo pa totalman dedye a peyi Afriken yo ak fason imèl yo distribye pami adrès IP nan jounal nou an.

Avèk espesifikasyon ase nan pi gwo rezo yo atribye ba peyi Afriken yo, ou ka jwenn yon repons egzak:

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

Pwoblèm nan ka rezoud tou nan yon lòt fason.
Telechaje MaxMind, depake li, ak pwochen twa kòmandman yo tou rezoud pwoblèm nou an.

$ 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

Yon fason oswa yon lòt, nou evantyèlman kalkile estatistik yo, ak administratè yo te resevwa done yo te bezwen travay!

3. Twazyèm etap

Twazyèm etap la se yon ti jan menm jan ak premye a - ou bezwen tou ranje sèvis la lanp cho, men tout bagay se pi konplike pase nan premye travay la.

3.1. Reyalite Enteresan

Nan premye 15 minit yo, twa jwè yo te jwenn premye kle a; 2 èdtan ak 20 minit apre kòmansman etap la, gayan nou an te konplete travay la.

3.2. Egzèsis

Ou te ale nan travay pou yon konpayi kote tout dokiman konpayi yo estoke sou yon sèvè entèn Wiki. Ane pase a, yon enjenyè te bay lòd 3 nouvo disk pou sèvè a anplis yon sèl ki deja egziste, li te diskite ke pou sistèm nan tolere fay, disk yo te bezwen yo dwe mete nan kèk kalite etalaj. Malerezman, kèk semèn apre enstalasyon yo, enjenyè a te ale nan vakans nan peyi Zend epi li pa tounen.

Sèvè a te travay san echèk pou plizyè ane, men yon koup de jou de sa rezo konpayi an te rache. Dapre enstriksyon yo, anplwaye sekirite yo retire disk yo nan sèvè a epi voye yo ba ou. Pandan transpò, yon disk te irevokabl pèdi.

Nou bezwen retabli fonksyonalite Wiki; anvan tout bagay, nou enterese nan kontni paj wiki yo. Yon sèten moso tèks ki te sou youn nan paj wiki sa a se modpas pou sèvè 1C la epi li nesesè ijan pou debloke li.

Anplis de sa, yon kote nan paj wiki yo oswa nan yon lòt kote te gen modpas pou sèvè a boutèy demi lit ak sèvè siveyans videyo a, ki ta tou dezirab refè; san yo, ankèt sou ensidan an enposib. Kòm toujou, nou espere yon solisyon rapid nan pwoblèm nan!

3.3. Solisyon

1. Nou eseye demare youn pa youn nan disk yo ke nou genyen ak tout kote nou resevwa menm mesaj la:

No bootable medium found! System halted 

Ou bezwen bòt soti nan yon bagay. Bòt soti nan yon Live CD/DVD (Depanaj -> Sekou) ede ankò. Lè chaje, nou eseye jwenn patisyon bòt la, nou pa ka jwenn li, nou fini nan koki a. Nou ap eseye etidye kisa ak ki jan fè ak disk. Li konnen ke gen twa nan yo. Gen plis zouti pou sa a nan 7yèm vèsyon CentOS, kote gen kòmandman blkid oswa lsblk, ki montre nou tout enfòmasyon sou disk yo.

Ki jan ak sa nou fè:

$ ls /dev/sd*

Li imedyatman evidan ke

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

Nou monte sdb1, li klè ke sa a se patisyon bòt nan CentOS 6.

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

Li evidan, nou ale nan seksyon an fouye epi jwenn premye kle a - James191955Gosling nan yon dosye etranj.

2. Nou etidye pvs ak lvs, depi nou travay ak LVM. Nou wè ke ta dwe gen 2 volim fizik, youn pa lokalize ak plenyen sou yon uid pèdi. Nou wè ke ta dwe gen 2 komèsan lojik: rasin ak swap, pandan y ap rasin an pasyèlman pèdi (atribi P volim). Li pa posib monte, ki se yon pitye! Nou vrèman bezwen li.

Gen 2 plis disk, nou gade yo, rasanble epi monte yo:

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

Nou gade, nou ka wè ke sa a se patisyon bòt nan CentOS 6 ak yon kopi sa ki deja sou /dev/sdb1, ak isit la ankò menm kle a - DennisBMacAlistairCRitchie!
Ann wè ki jan li reyini /dev/md127.

$ mdadm --detail /dev/md127

Nou wè ke li ta dwe reyini soti nan 4 disk, men li te reyini soti nan de /dev/sda1 и /dev/sdc1, yo ta dwe nimewo 2 ak 4 nan sistèm nan. Nou sipoze ke soti nan /dev/sda2 и /dev/sdc2 Ou kapab tou kolekte yon etalaj. Li pa klè poukisa pa gen metadata sou yo, men sa a se sou konsyans administratè a, ki se yon kote nan Goa. Nou sipoze ke ta dwe gen RAID10, byenke gen opsyon. Nou kolekte:

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

Nou gade blkid, pvs, lvs. Nou dekouvri ke nou te kolekte yon volim fizik ke nou te manke anvan.

lvroot te imedyatman repare, nou monte li, men premye aktive VG:

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

Ak tout bagay la, ki gen ladan kle a nan anyè lakay rasin lan - /root/sweet.

3. Nou toujou ap eseye reviv sèvè nou an pou li kòmanse nòmalman. Tout komèsan lojik soti nan nou an /dev/md0 (kote nou jwenn tout bagay) trennen li nan /dev/sdb2, kote sèvè a tout antye okòmansman te travay.

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

Nou fèmen sèvè a, retire disk 1 ak 3, kite dezyèm lan, bòt soti nan Live CD/DVD nan Rescue. Jwenn patisyon bòt la epi restore bootloader la nan grub:

root (hd0,0)
setup (hd0)

Nou detache disk bòt la epi chaje avèk siksè, men sit la pa travay.

4. Gen de opsyon pou lanse yon sit entènèt: konfigirasyon Apache nan grafouyen oswa itilize nginx ak php-fpm deja configuré davans:

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

Finalman, ou bezwen kòmanse MySQL:

$ /etc/init.d/mysqld start

Li pa pral kòmanse, epi repons lan manti nan /var/log/mysql. Le pli vit ke ou rezoud pwoblèm nan ak MySQL, sit la ap travay, nan paj prensipal la pral gen yon kle - RichardGCCMatthewGNUStallman! Koulye a, nou gen aksè a 1C, ak anplwaye yo pral kapab resevwa salè yo. Epi kòm toujou, ou gen anpil travay devan pou etabli enfrastrikti ak sekirite nan konpayi an.

Nou ka pataje yon lòt fwa ankò yon lis liv ki te ede nou ak patisipan nou yo prepare pou jwèt la: linux.mail.ru/books.

Mèsi paske ou avèk nou! Rete branche pou anons pwochen jwèt yo!

Sous: www.habr.com

Add nouvo kòmantè