Linux Ubuntu Quest. ucapan salamet ka winners sarta ngabejaan urang ngeunaan solusi pikeun tugas

Linux Ubuntu Quest. ucapan salamet ka winners sarta ngabejaan urang ngeunaan solusi pikeun tugas

Dina 25 Maret kami dibuka pendaptaran pikeun Linux Ubuntu Quest, ieu Kaulinan pikeun pencinta sarta ahli tina sistem operasi Linux Ubuntu. Sababaraha statistik: 1117 jalma didaptarkeun pikeun kaulinan, 317 di antarana kapanggih sahanteuna hiji konci, 241 hasil réngsé tugas tahap kahiji, 123 réngsé tahap kadua jeung 70 lulus tahap katilu. Dinten ieu kaulinan urang geus datangna ka tungtung na kami congratulate winners urang!

  • Alexander Teldekov nyandak tempat kahiji.
    Alexander ngomong sorangan yén manéhna téh administrator sistem paling has. Cicing di Volgograd, geus administering rupa sistem Unix-kawas salila kira dua puluh taun. Abdi tiasa damel di panyadia Internét, bank, sareng integrator sistem. Ayeuna anjeunna damel jarak jauh di perusahaan alit, damel dina infrastruktur awan pikeun palanggan asing anu ageung. Suka maca sareng ngadangukeun musik. Ngeunaan Game, Alexander ngomong yén anjeunna resep kaulinan sakabéhna, anjeunna mikanyaah tugas sapertos. Dina hiji wawancara di salah sahiji pausahaan kuring ngalakukeun hal sarupa Hackerrank, éta metot.
  • tempat kadua - Romawi Suslov.
    Novel ti Moscow. Anjeunna yuswa 37 taun. Gawéna salaku insinyur Linux/Unix di Jet Infosystems. Di tempat gawe, kuring kudu administer jeung troubleshoot sistem Linux / Unix + SAN. Kapentingan rupa-rupa: sistem Linux, programming, rékayasa sabalikna, kaamanan informasi, Arduino. Ngeunaan Game Romawi dicatet yén anjeunna resep kaulinan sakabéh. "Kuring rada ngalegaan otak kuring sareng istirahat tina kahirupan sapopoe abu-abu tina padamelan sapopoe. 🙂 Abdi hoyong langkung seueur tugas, upami henteu sateuacan kuring gaduh waktos pikeun ngaraosan éta, pertandingan parantos réngsé.
  • Katilu - alex3d.
    Alex cicing di Moskow sareng damel dina pamekaran parangkat lunak. "Hatur nuhun kanggo kontes, éta pikaresepeun pikeun nguji kaahlian google-fu kuring."

Ogé dina réngking 10 pamaén pangsaéna:

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

Kami ngarti yén aya seueur pilihan pikeun ngarengsekeun sadaya masalah urang; sababaraha solusi anu mungkin dijelaskeun di handap.

1. Tahap kahiji

Kami nyebatna "Naha anjeun leres-leres admin?", Kusabab tugasna cukup saderhana - ngalereskeun jasa lampu haneut.

1.1. Fakta metot:

Dua pamaén manggihan konci kahiji dina mimiti 15 menit game, sarta dina jam kahiji urang tadi tilu pamingpin anu réngsé tugas.

1.2. Latihan

Anjeun nuju damel di perusahaan dimana tos lami teu aya spesialis téknologi inpormasi anu kompeten. Sateuacan anjeun ngawitan nempatkeun hal dina urutan, Anjeun kudu ngajawab masalah ngaduruk nu blocking karya kantor.

Wanoja beberesih nyekel kabel listrik kabinet server nganggo pel. Kakuatan parantos dibalikeun, tapi halaman wéb anu penting tetep henteu tiasa dianggo. Website éta penting sabab parusahaan teu pisan paduli kaamanan informasi, sarta dina kaca utama ieu anjeun tiasa manggihan dina téks jelas sandi administrator pikeun komputer CEO urang.

Dinten anu sanés sandina dirobih, tapi sadayana hilap anu énggal, sutradara henteu tiasa dianggo. Aya gosip yén aya langkung seueur konci dina mesin ieu anu tiasa ngabantosan urang ngémutan salinan cadangan dokumén akuntansi.

Sarerea ngarepkeun resolusi gancang tina masalah!

1.3. Solusi

1. Kahiji sakabeh, Anjeun kudu ngarobah sandi root dina mesin virtual dina urutan mangtaun aksés ka eta. Nalika ngamimitian, urang perhatikeun yén ieu mangrupikeun Ubuntu 16.04 Server.

Pikeun ngareset kecap akses root, urang balikan deui mesin, nalika ngamuat, dina momen menu grub ditampilkeun, buka ngédit item Ubuntu nganggo tombol "e". Edit garis linux, tambahkeun ka tungtung init=/bin/bash. Urang muka via Ctrl + x, urang meunang bash a. Pasang deui akar nganggo rw, ganti sandi:

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

Tong hilap ngeunaan singkronisasi, reboot.

2. Kaayaan nyarios yén pangladén wéb kami henteu jalan, tingali:

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

Nyaéta, kanyataanna, Apache dijalankeun, tapi ngabales ku kode 404. Hayu urang tingali config:

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

Aya ogé konci di dieu - StevenPaulSteveJobs.

Mariksa jalan /usr/share/WordPress - euweuh hal saperti, tapi aya /usr/share/wordpress. Édit konfigurasi sareng balikan deui Apache.

$ systemctl restart apache2

3. Coba deui, urang meunang kasalahan:

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

Database henteu jalan?

$ systemctl status mysql
Active: active (running)

Naon masalahna? Urang kudu angka eta kaluar. Jang ngalampahkeun ieu, anjeun kudu meunang aksés ka MySQL, sakumaha dijelaskeun dina dokuméntasi. Salah sahiji titik dokuméntasi nyarankeun yén urang ngadaptarkeun pilihan skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf. Aya ogé konci di dieu - AugustaAdaKingByron.

Ngalereskeun hak pamaké 'wp'@'localhost'. Urang ngajalankeun MySQL, sangkan eta diaksés ngaliwatan jaringan, commenting pilihan dina config nu skip-networking.

4. Saatos léngkah ieu, web server dimimitian, tapi situs masih teu dianggo sabab

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

Urang ngédit hak kana file.

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

Urang refresh kaca, buka situs jeung manggihan konci - BjarneStroustrup! Kami mendakan tilu konci, diréktur kami tiasa damel, kami ngadekrip file akuntansi. Sarerea senang, jeung anjeun boga loba karya dihareupeun anjeun pikeun nyetél infrastruktur, cadangan tur kaamanan di parusahaan.

2. Tahap kadua

Ieu diperlukeun pikeun ngajawab masalah ngumpulkeun analytics. Sarerea mikanyaah analytics - anu ngagunakeun éta, dimana jeung dina naon kuantitas. Urang datang nepi ka hiji pasualan yén sadaya insinyur bisa sapatemon dina hiji formulir atawa sejen dina kahirupan.

2.1. Fakta metot

Salah sahiji pamaén urang diasupkeun konci bener dina mimiti 10 menit game, sarta dina jam kahiji urang kungsi pamimpin anu réngsé tugas.

2.2. Latihan

Anjeun nuju damel di perusahaan, manajer sumping ka anjeun sareng naroskeun anjeun milarian saha surat anu dikirim ti Afrika. Urang kudu ngawangun luhureun 21 alamat panarima dumasar kana éta. Hurup mimiti alamat panarima mangrupa konci. Hiji hal: pangladén surat anu dikirimkeun surat-suratna henteu dimuat. Sarerea ngarepkeun resolusi gancang tina masalah!

2.3. Solusi

1. Server teu boot alatan partisi swap non-existent di fstab; nalika loading, sistem nyoba dipasang na ngadat. Kumaha boot?

Unduh gambarna, kami unduh CentOS 7, boot tina Live CD / DVD (Ngarengsekeun Masalah -> Nyalametkeun), pasang sistem, édit /etc/fstab. Urang langsung manggihan konci kahiji - GottfriedWilhelm11646Leibniz!

Jieun swap:

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

2. Salaku salawasna, euweuh sandi, Anjeun kudu ngarobah sandi root dina mesin virtual. Kami parantos ngalakukeun ieu dina tugas munggaran. Urang ngarobah jeung hasil asup kana server, tapi langsung balik kana reboot. server ieu overloaded dina speed sapertos nu malah teu boga waktu pikeun nempo sakabeh log taliti. Kumaha ngartos naon anu lumangsung?

Sakali deui urang boot ti livecd, taliti diajar log sistem sareng, upami bisi, tingali kana cron, sabab périodik sapertos kitu. Di dinya urang mendakan masalah sareng konci kadua - Alan1912MathisonTuring!

Peryogi di /etc/crontab ngahapus atanapi komentar kaluar garis echo b > /proc/sysrq-trigger.

3. Saatos éta server geus dimuat, tur anjeun tiasa ngalengkepan tugas manajer ': "Naon alamat di Afrika?" Inpormasi ieu umumna sayogi pikeun masarakat. Anjeun tiasa mendakan inpormasi ieu dina Internét nganggo frasa "alamat ip afrika", "database geoip". Pikeun ngajawab masalah, anjeun tiasa nganggo basis data distribusi alamat (geoip). Kami nganggo pangkalan data salaku standar MaxMind GeoLite2, sadia dina lisénsi Creative Commons Attribution-ShareAlike 4.0.

Hayu urang cobaan pikeun ngajawab masalah urang ngan ngagunakeun utilitas sistem Linux Ubuntu, tapi sacara umum bisa direngsekeun ku sababaraha cara: ngagunakeun utilitas nyaring téks tur ngagunakeun skrip dina sagala rupa basa program.

Pikeun mimitian, urang ngan saukur bakal nampi pasangan "IP pangirim-panampi" tina log surat /var/log/maillog (hayu urang ngawangun tabel panarima email - pangirim IP). Ieu tiasa dilakukeun ku paréntah di handap ieu:

$ 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

Sareng sateuacan urang teraskeun nyusun pangkalan data alamat Afrika, hayu urang tingali alamat IP anu paling luhur pangirim.

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

Di antara sakabéh éta, tilu panarima munggaran ti luhur jelas nangtung kaluar dina watesan jumlah hurup. Upami anjeun ngémutan alamat IP tina pangirim anu dikirim ka alamat tina 3 luhur ieu, anjeun bakal perhatikeun predominance anu jelas tina jaringan anu tangtu:

$ 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

Seuseueurna jaringan 105/8, 41/8, 196/8,197/8 dialokasikeun ka AFRINIC - salah sahiji tina lima registrar Internét régional anu nyebarkeun sumber Internét. AFRINIC ngadistribusikaeun rohangan alamat ka sakuliah Afrika. Sareng 41/8 nujul kana AFRINIC lengkep.

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

Ku kituna, jawaban kana masalah téh, kanyataanna, dina log sorangan.

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

Dina tahap ieu urang meunang string "LinuxBenedictTorvadst".

Konci anu leres: "LinusBenedictTorvalds".

String anu dihasilkeun ngandung typo dina hubungan konci anu leres dina 3 karakter terakhir. Ieu kusabab kanyataan yén jaringan anu kami pilih henteu sapinuhna didedikasikeun ka nagara-nagara Afrika sareng cara email disebarkeun ku alamat IP dina log kami.

Kalayan spésifikasi cekap tina jaringan panggedéna anu dialokasikeun ka nagara-nagara Afrika, jawaban anu tepat tiasa didapet:

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

Masalahna ogé tiasa direngsekeun ku cara sanés.
Unduh MaxMind, ngabongkar éta, sareng tilu paréntah salajengna ogé ngarengsekeun masalah urang.

$ 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

Hiji cara atanapi anu sanés, urang antukna ngitung statistik, sareng manajer nampi data anu diperyogikeun pikeun dianggo!

3. Tahap katilu

Tahap katilu rada sami sareng anu kahiji - anjeun ogé kedah ngalereskeun jasa lampu haneut, tapi sadayana langkung rumit tibatan dina tugas anu munggaran.

3.1. Fakta metot

Dina 15 menit kahiji, tilu pamaén manggihan konci kahiji; 2 jam jeung 20 menit sanggeus dimimitian panggung, juara urang réngsé tugas.

3.2. Latihan

Anjeun nuju damel di perusahaan dimana sadaya dokumén perusahaan disimpen dina server Wiki internal. Taun ka tukang, saurang insinyur maréntahkeun 3 disk anyar pikeun server salian ti hiji nu geus aya, arguing yén pikeun sistem janten lepat-toleran, disk perlu ditempatkeun dina sababaraha jenis arrays. Hanjakal, sababaraha minggu sanggeus instalasi maranéhanana, insinyur indit dina pakansi ka India jeung teu balik.

Server damel tanpa gagal salami sababaraha taun, tapi sababaraha dinten ka pengker jaringan perusahaan diretas. Numutkeun petunjukna, staf kaamanan ngahapus disk tina server sareng dikirimkeun ka anjeun. Salila transportasi, hiji disk ieu irretrievably leungit.

Urang kudu mulangkeun pungsionalitas Wiki; mimitina, urang museurkeun eusi kaca wiki. Sapotong téks tangtu anu aya dina salah sahiji halaman wiki ieu mangrupikeun kecap akses pikeun server 1C sareng peryogi pisan pikeun muka konci éta.

Salaku tambahan, di mana waé dina halaman wiki atanapi di tempat sanés aya kecap konci pikeun server log sareng server panjagaan vidéo, anu ogé bakal pikaresepeun pikeun pulih; tanpa aranjeunna, panalungtikan ngeunaan kajadian éta mustahil. Sakumaha biasa, kami ngarepkeun resolusi gancang tina masalah!

3.3. Solusi

1. Urang nyoba boot hiji-hiji ti disk nu urang boga jeung madhab urang narima pesen sarua:

No bootable medium found! System halted 

Anjeun kedah boot tina hiji hal. Booting tina Live CD/DVD (Troubleshooting -> Rescue) mantuan deui. Nalika loading, urang cobaan pikeun manggihan partisi boot, urang teu bisa manggihan eta, urang mungkas nepi di cangkang. Urang nyobian diajar naon jeung kumaha ngalakukeun jeung disk. Kanyahoan aya tiluanana. Aya deui alat pikeun ieu dina vérsi ka-7 CentOS, dimana aya paréntah blkid atawa lsblk, anu nunjukkeun ka urang sadaya inpormasi ngeunaan disk.

Kumaha jeung naon urang ngalakukeun:

$ ls /dev/sd*

Ieu langsung atra yén

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

Urang pasang sdb1, écés yén ieu mangrupikeun partisi boot CentOS 6.

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

Jelas, urang angkat ka bagian grub sareng milarian konci anu munggaran di dinya - James191955Gosling dina file anu teu biasa.

2. Urang diajar pvs na lvs, saprak urang gawé bareng LVM. Urang nempo yén kudu aya 2 jilid fisik, hiji teu lokasina sarta complains ngeunaan uid leungit. Kami ningali yén kedah aya 2 volume logis: akar sareng swap, sedengkeun akar sawaréh leungit (atribut P volume). Teu mungkin mun dipasang, nu karunya! Urang saleresna peryogi anjeunna.

Aya 2 disk deui, urang tingali aranjeunna, ngumpul sareng pasang:

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

Kami ningali, urang tiasa ningali yén ieu mangrupikeun partisi boot CentOS 6 sareng duplikat naon anu parantos aya. /dev/sdb1, sareng di dieu deui konci anu sami - DennisBMacAlistairCRitchie!
Hayu urang tingali kumaha éta dirakit /dev/md127.

$ mdadm --detail /dev/md127

Kami ningali yén éta kedah dirakit tina 4 disk, tapi dirakit tina dua /dev/sda1 и /dev/sdc1, aranjeunna kedah janten nomer 2 sareng 4 dina sistem. Urang nganggap yén ti /dev/sda2 и /dev/sdc2 Anjeun oge bisa ngumpulkeun hiji Asép Sunandar Sunarya. Henteu écés naha henteu aya metadata dina aranjeunna, tapi ieu aya dina hati nurani admin, anu aya di mana waé di Goa. Urang nganggap yen kudu aya RAID10, sanajan aya pilihan. Urang ngumpulkeun:

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

Urang nempo blkid, pvs, lvs. Kami mendakan yén kami parantos ngumpulkeun volume fisik anu saacanna kami kakurangan.

lvroot langsung dilereskeun, urang pasang, tapi aktipkeun heula VG:

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

Jeung sagalana aya, kaasup konci dina diréktori home root - / root / amis.

3. Kami masih nyobian nyegerkeun server kami supados dimimitian normal. Sadaya volume logis tina kami /dev/md0 (dimana urang kapanggih sagalana) sered ka /dev/sdb2, dimana sakabéh server mimitina digawé.

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

Pareuman server, cabut disk 1 sareng 3, tinggalkeun anu kadua, boot tina Live CD / DVD kana Rescue. Milarian partisi boot sareng balikkeun bootloader di grub:

root (hd0,0)
setup (hd0)

Urang cimata off disk boot jeung beban hasil, tapi situs teu jalan.

4. Aya dua pilihan pikeun ngajalankeun ramatloka a: ngonpigurasikeun Apache ti scratch atawa make nginx kalawan php-fpm geus ngonpigurasi sateuacanna:

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

Tungtungna, anjeun kedah ngamimitian MySQL:

$ /etc/init.d/mysqld start

Éta moal ngamimitian, sareng jawabanna aya /var/log/mysql. Pas anjeun ngajawab masalah sareng MySQL, situs bakal jalan, dina kaca utama bakal aya konci - RichardGCCMatthewGNUStallman! Ayeuna kami ngagaduhan aksés ka 1C, sareng karyawan bakal tiasa nampi gajina. Sareng sapertos biasa, anjeun gaduh seueur padamelan pikeun ngadegkeun infrastruktur sareng kaamanan di perusahaan.

Urang ogé tiasa sakali deui ngabagi daptar buku anu ngabantosan urang sareng pamilon urang nyiapkeun pertandingan: linux.mail.ru/books.

Hatur nuhun pikeun jadi kalawan kami! Tetep katala pikeun announcements tina kaulinan salajengna!

sumber: www.habr.com

Tambahkeun komentar