
Pada 25 Mac kami membuka pendaftaran untuk , ini adalah permainan untuk peminat dan penggemar sistem pengendalian LinuxBeberapa statistik: 1117 orang mendaftar untuk permainan ini, 317 daripadanya menemui sekurang-kurangnya satu kunci, 241 berjaya menyelesaikan peringkat pertama, 123 menyelesaikan peringkat kedua, dan 70 menyelesaikan peringkat ketiga. Hari ini, permainan kami telah berakhir, dan kami mengucapkan tahniah kepada para pemenang kami!
- Alexander Teldekov mendapat tempat pertama.
Alexander berkata kepada dirinya sendiri bahawa dia adalah pentadbir sistem yang paling tipikal. Tinggal di Volgograd, telah mentadbir pelbagai sistem seperti Unix selama kira-kira dua puluh tahun. Saya berjaya bekerja dalam penyedia Internet, bank dan penyepadu sistem. Kini dia bekerja dari jauh di sebuah syarikat kecil, bekerja pada infrastruktur awan untuk pelanggan asing yang besar. Suka membaca dan mendengar muzik. Mengenai Permainan, Alexander berkata bahawa dia menyukai permainan secara keseluruhan, dia suka tugas sedemikian. Semasa temu bual di salah satu syarikat saya melakukan sesuatu yang serupa dengan Hackerrank, ia menarik. - Tempat kedua - Roman Suslov.
Roman berasal dari Moscow. Dia berumur 37 tahun. Dia bekerja Linux/Jurutera Unix di Infosystems Jet. Kerja saya melibatkan pentadbiran dan penyelesaian masalah. LinuxSistem Unix + SAN. Minat adalah pelbagai: LinuxSistem, pengaturcaraan, kejuruteraan terbalik, keselamatan maklumat, Arduino. Roman berkata dia menikmati permainan ini secara keseluruhan. "Saya mula berfikir dan berehat seketika daripada kerja seharian yang membosankan. 🙂 Saya lebih suka lebih banyak cabaran, kerana sebelum saya dapat menceburi bidang ini, permainan ini sudah tamat." - Ketiga - alex3d.
Alex tinggal di Moscow dan bekerja dalam pembangunan perisian. “Terima kasih atas peraduan, adalah menarik untuk menguji kemahiran google-fu saya.”
Juga dalam ranking 10 pemain terbaik:
- Yevgeniy Saldayev
- Markel Mokhnachevsky
- Konstantin Konosov
- Pavel Sergeev
- Vladimir Bovaev
- Ivan Bubnov
- Pavlo Klets
Kami memahami bahawa terdapat banyak pilihan untuk menyelesaikan semua masalah kami; beberapa penyelesaian yang mungkin diterangkan di bawah.
1. Peringkat pertama
Kami memanggilnya "Adakah anda benar-benar pentadbir?", memandangkan tugasnya agak mudah - untuk membaiki perkhidmatan lampu hangat.
1.1. Fakta menarik:
Dua pemain menemui kunci pertama dalam 15 minit pertama permainan, dan pada jam pertama kami mempunyai tiga pendahulu yang menyelesaikan tugas itu.
1.2. Senaman
Anda pergi bekerja di sebuah syarikat di mana untuk masa yang lama tidak ada pakar teknologi maklumat yang kompeten. Sebelum anda mula menyusun perkara, anda perlu menyelesaikan masalah pembakaran yang menghalang kerja pejabat.
Wanita pembersihan menangkap kabel kuasa kabinet pelayan dengan mop. Kuasa telah dipulihkan, tetapi tapak web yang sangat penting masih tidak berfungsi. Laman web ini penting kerana syarikat tidak begitu mengambil berat tentang keselamatan maklumat, dan pada halaman utama ini anda boleh mencari dalam teks yang jelas kata laluan pentadbir untuk komputer CEO.
Pada hari yang lain kata laluan telah ditukar, tetapi semua orang lupa yang baru, pengarah tidak boleh berfungsi. Terdapat khabar angin bahawa terdapat lebih banyak kunci pada mesin ini yang boleh membantu kami menguraikan salinan sandaran dokumen perakaunan.
Semua orang mengharapkan penyelesaian segera bagi isu ini!
1.3. Penyelesaian
1. Pertama, anda perlu menukar kata laluan root pada mesin maya untuk mendapatkan akses kepadanya. Apabila anda melancarkannya, anda akan perasan bahawa Ubuntu 16.04 Pelayan.
Untuk menetapkan semula kata laluan root, mulakan semula mesin. Semasa boot, apabila menu grub dipaparkan, pergi ke edit item tersebut. Ubuntu Tekan butang "e". Edit baris "linux" dan tambahkannya di hujungnya. init=/bin/bash. Kami memuatkan melalui Ctrl+x, kami mendapat bash. Pasang semula akar dengan rw, tukar kata laluan:
$ mount -o remount,rw /dev/mapper/ubuntu--vg-root
$ passwdJangan lupa tentang penyegerakan, but semula.
2. Syarat mengatakan bahawa pelayan web kami tidak berfungsi, lihat:
$ curl localhost
Not Found
The requested URL / was not found on this server.
Apache/2.4.18 Iaitu, sebenarnya, Apache sedang berjalan, tetapi bertindak balas dengan kod 404. Mari lihat konfigurasi:
$ vim /etc/apache2/sites-enabled/000-default.confTerdapat juga kunci di sini - StevenPaulSteveJobs.
Menyemak laluan /usr/share/WordPress - tidak ada perkara seperti itu, tetapi ada /usr/share/wordpress. Edit konfigurasi dan mulakan semula Apache.
$ systemctl restart apache23. Cuba lagi, kami mendapat ralat:
Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488Pangkalan data tidak berjalan?
$ systemctl status mysql
Active: active (running) Apa masalahnya? Kita perlu memikirkannya. Untuk melakukan ini, anda perlu mendapatkan akses kepada MySQL, seperti yang diterangkan dalam . Salah satu titik dokumentasi mengesyorkan agar kami mendaftarkan pilihan skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf. Terdapat juga kunci di sini - AugustaAdaKingByron.
Membetulkan hak pengguna 'wp'@'localhost'. Kami melancarkan MySQL, menjadikannya boleh diakses melalui rangkaian, mengulas pilihan dalam konfigurasi skip-networking.
4. Selepas langkah ini, pelayan web bermula, tetapi tapak masih tidak berfungsi kerana
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 562Kami mengedit hak ke atas fail.
$ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php
Kami memuat semula halaman, pergi ke tapak dan cari kunci - BjarneStroustrup! Kami mendapati ketiga-tiga kunci, pengarah kami boleh berfungsi, kami menyahsulit fail perakaunan. Semua orang gembira, dan anda mempunyai banyak kerja di hadapan anda untuk menyediakan infrastruktur, sandaran dan keselamatan dalam syarikat.
2. Peringkat kedua
Ia adalah perlu untuk menyelesaikan masalah pengumpulan analisis. Semua orang suka analisis - siapa yang menggunakannya, di mana dan dalam kuantiti apa. Kami datang dengan kes yang mungkin dihadapi oleh semua jurutera dalam satu bentuk atau yang lain dalam kehidupan.
2.1. Fakta menarik
Salah seorang pemain kami memasukkan kunci yang betul dalam 10 minit pertama permainan, dan dalam sejam pertama kami mempunyai seorang ketua yang menyelesaikan tugas itu.
2.2. Senaman
Anda pergi bekerja di syarikat itu, pengurus datang kepada anda dan meminta anda mencari kepada siapa surat dihantar dari Afrika. Kita perlu membina 21 alamat penerima teratas berdasarkan mereka. Huruf pertama alamat penerima adalah kuncinya. Satu perkara: pelayan mel yang melaluinya surat dihantar tidak dimuatkan. Semua orang mengharapkan penyelesaian segera bagi isu ini!
2.3. Penyelesaian
1. Pelayan tidak but disebabkan oleh partition swap yang tidak wujud dalam fstab; apabila memuatkan, sistem cuba untuk melekapkannya dan ranap. Bagaimana untuk boot?
Memuat turun imej, kami memuat turun CentOS 7, but dari Live CD/DVD (Penyelesaian Masalah -> Penyelamat), pasang sistem, edit /etc/fstab. Kami segera mencari kunci pertama - GottfriedWilhelm11646Leibniz!
Buat pertukaran:
$ lvcreate -n swap centos -L 256M
$ sync && reboot2. Seperti biasa, tiada kata laluan, anda perlu menukar kata laluan root pada mesin maya. Kami sudah melakukan ini dalam tugasan pertama. Kami menukar dan berjaya log masuk ke pelayan, tetapi ia segera masuk ke but semula. Pelayan dibebankan pada kelajuan sedemikian sehingga anda tidak mempunyai masa untuk melihat semua log dengan teliti. Bagaimana untuk memahami apa yang berlaku?
Sekali lagi kita boot dari livecd, teliti log sistem dan, untuk berjaga-jaga, lihat ke dalam cron, kerana keteraturan sedemikian. Di sana kita dapati masalah dan kunci kedua - Alan1912MathisonTuring!
Diperlukan dalam /etc/crontab memadam atau mengulas baris echo b > /proc/sysrq-trigger.
3. Selepas itu pelayan telah dimuatkan, dan anda boleh menyelesaikan tugas pengurus: "Apakah alamat di Afrika?" Maklumat ini secara amnya tersedia kepada orang ramai. Anda boleh mencari maklumat ini di Internet menggunakan frasa "alamat ip africa", "pangkalan data geoip". Untuk menyelesaikan masalah, anda boleh menggunakan pangkalan data pengedaran alamat yang tersedia secara percuma (geoip). Kami menggunakan pangkalan data sebagai standard , tersedia di bawah lesen Creative Commons Attribution-ShareAlike 4.0.
Mari cuba selesaikan masalah kita hanya menggunakan utiliti sistem. Linux, tetapi secara amnya ia boleh diselesaikan dalam pelbagai cara: dengan bantuan utiliti penapisan teks dan dengan bantuan skrip dalam pelbagai bahasa pengaturcaraan.
Sebagai permulaan, kami hanya akan mendapatkan pasangan "IP pengirim-penerima" daripada log mel /var/log/maillog (mari bina jadual penerima e-mel - IP penghantar). Ini boleh dilakukan dengan arahan berikut:
$ 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.txtDan sebelum kita meneruskan penyusunan pangkalan data alamat Afrika, mari kita lihat alamat IP teratas pengirim.
$ cat log1.txt | cut -d' ' -f1 | sort | uniq -c | sort -r | head -n 40
5206 L2JhbjAbM67GA99jg@mail.ru
4165 iHKTBkegOQa6fIALq@mail.ru
3739 nHkcBl7BdgXxijSYD7@mail.ru
3405 SMAzPJAzbl9vp4hAXo@mail.ru
3346 xILz6d7P@mail.ru
Di antara mereka semua, tiga penerima pertama dari atas jelas menonjol dari segi bilangan surat. Jika anda melihat alamat IP pengirim yang dihantar ke alamat dari 3 teratas ini, anda akan melihat penguasaan yang jelas bagi rangkaian tertentu:
$ cat log1.txt | fgrep 'L2JhbjAbM67GA99jg@mail.ru' | 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 165Kebanyakan rangkaian 105/8, 41/8, 196/8,197/8 diperuntukkan kepada AFRINIC - salah satu daripada lima pendaftar Internet serantau yang mengedarkan sumber Internet. AFRINIC mengedarkan ruang alamat ke seluruh Afrika. Dan 41/8 merujuk kepada AFRINIC sepenuhnya.
https://www.nic.ru/whois/?searchWord=105.0.0.0
https://www.nic.ru/whois/?searchWord=41.0.0.0
Oleh itu, jawapan kepada masalah itu, sebenarnya, dalam log itu sendiri.
$ 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 L2JhbjAbM67GA99jg@mail.ru
3313 iHKTBkegOQa6fIALq@mail.ru
2704 nHkcBl7BdgXxijSYD7@mail.ru
2215 uvRbp1O@mail.ru
1774 sPmMsmmFiV@mail.ru
1448 BtG3aHgQgCKuze2AKuRH@mail.ru
1233 eQpuuQ2uQdbwRL3@mail.ru
958 nJT5dpaBZ@mail.ru
862 ef4WbQiB@mail.ru
762 dQCqKL6eVminFfH7wLA@mail.ru
632 ifq6Rd1HxuCQOdO9@mail.ru
539 cFwm2ssypMmx1sA7@mail.ru
531 twtTnr4G@mail.ru
431 TSrczgYASrR11Hs3qCi@mail.ru
380 o3r3exc3OL@mail.ru
357 rzmjr2VAHK@mail.ru
348 vnPr6YjJ3ndw@mail.ru
312 anOjFXrwOtLP2Rl1Vcz6@mail.ru
289 dvny5zHmRW8fiT@mail.ru
282 sgg9jPxFDYvzw8Kr@mail.ru
274 tKSevzA7GntJ@mail.ruPada peringkat ini kita mendapat baris "LinuxBenedictTorvadst».
Kekunci betul: "LinusBenedictTorvalds".
Rentetan yang terhasil mengandungi kesilapan menaip berhubung dengan kekunci yang betul dalam 3 aksara terakhir. Ini disebabkan oleh fakta bahawa rangkaian yang kami pilih tidak didedikasikan sepenuhnya untuk negara Afrika dan cara e-mel diedarkan oleh alamat IP dalam log kami.
Dengan spesifikasi yang mencukupi bagi rangkaian terbesar yang diperuntukkan kepada negara-negara Afrika, jawapan yang tepat boleh diperolehi:
$ 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 L2JhbjAbM67GA99jg@mail.ru
2662 iHKTBkegOQa6fIALq@mail.ru
2105 nHkcBl7BdgXxijSYD7@mail.ru
1724 uvRbp1O@mail.ru
1376 sPmMsmmFiV@mail.ru
1092 BtG3aHgQgCKuze2AKuRH@mail.ru
849 eQpuuQ2uQdbwRL3@mail.ru
712 nJT5dpaBZ@mail.ru
584 ef4WbQiB@mail.ru
463 dQCqKL6eVminFfH7wLA@mail.ru
365 ifq6Rd1HxuCQOdO9@mail.ru
269 cFwm2ssypMmx1sA7@mail.ru
225 twtTnr4G@mail.ru
168 TSrczgYASrR11Hs3qCi@mail.ru
142 o3r3exc3OL@mail.ru
111 rzmjr2VAHK@mail.ru
96 vnPr6YjJ3ndw@mail.ru
78 anOjFXrwOtLP2Rl1Vcz6@mail.ru
56 lHzWiB7ExvRtSbAcU9@mail.ru
56 dvny5zHmRW8fiT@mail.ru
40 sgg9jPxFDYvzw8Kr@mail.ru Masalah juga boleh diselesaikan dengan cara lain.
Muat turun MaxMind, buka bungkusannya, dan tiga arahan seterusnya juga menyelesaikan masalah kami.
$ 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
Satu cara atau yang lain, kami akhirnya mengira statistik, dan pengurus menerima data yang mereka perlukan untuk berfungsi!
3. Peringkat ketiga
Peringkat ketiga agak serupa dengan yang pertama - anda juga perlu membetulkan perkhidmatan lampu hangat, tetapi semuanya lebih rumit daripada tugas pertama.
3.1. Fakta menarik
Dalam 15 minit pertama, tiga pemain menemui kunci pertama; 2 jam dan 20 minit selepas permulaan pentas, pemenang kami menyelesaikan tugasan itu.
3.2. Senaman
Anda pergi bekerja untuk sebuah syarikat di mana semua dokumen syarikat disimpan pada pelayan Wiki dalaman. Tahun lepas, seorang jurutera telah memesan 3 cakera baharu untuk pelayan sebagai tambahan kepada satu cakera sedia ada, dengan alasan bahawa untuk sistem itu tahan terhadap kesalahan, cakera itu perlu diletakkan dalam beberapa jenis tatasusunan. Malangnya, beberapa minggu selepas pemasangan mereka, jurutera itu pergi bercuti ke India dan tidak kembali.
Pelayan berfungsi tanpa kegagalan selama beberapa tahun, tetapi beberapa hari lalu rangkaian syarikat telah digodam. Mengikut arahan, kakitangan keselamatan mengeluarkan cakera daripada pelayan dan menghantarnya kepada anda. Semasa pengangkutan, satu cakera telah hilang tanpa dapat dipulihkan.
Kami perlu memulihkan fungsi Wiki; pertama sekali, kami berminat dengan kandungan halaman wiki. Sekeping teks tertentu yang terdapat pada salah satu halaman wiki ini ialah kata laluan untuk pelayan 1C dan diperlukan segera untuk membuka kuncinya.
Di samping itu, di suatu tempat di halaman wiki atau di tempat lain terdapat kata laluan untuk pelayan log dan pelayan pengawasan video, yang juga wajar untuk dipulihkan; tanpa mereka, penyiasatan kejadian adalah mustahil. Seperti biasa, kami menjangkakan penyelesaian segera bagi isu tersebut!
3.3. Penyelesaian
1. Kami cuba but satu demi satu daripada cakera yang kami ada dan di mana-mana sahaja kami menerima mesej yang sama:
No bootable medium found! System halted
Saya perlu boot daripada sesuatu. Sekali lagi, boot daripada Live CD/DVD (Troubleshooting -> Rescue) membantu. Semasa boot, saya cuba mencari partition boot, tetapi ia tidak berfungsi, dan saya berakhir di shell. Saya cuba memikirkan apa yang berlaku dengan cakera. Saya tahu terdapat tiga daripadanya. Terdapat lebih banyak alat untuk ini dalam versi 7. CentOS, di mana terdapat pasukan blkid atau lsblk, yang menunjukkan kepada kita semua maklumat tentang cakera.
Bagaimana dan apa yang kami lakukan:
$ ls /dev/sd*Ia serta-merta jelas bahawa
/dev/sdb1 - ext4
/dev/sdb2 - часть lvm
/dev/sda1 и /dev/sdc1 - части рейда
/dev/sda2 и /dev/sdc2 - про них ничего не известно на текущий моментKami memasang sdb1, jelas bahawa ini adalah partition boot. CentOS 6.
$ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1Jelas sekali, kami pergi ke bahagian grub dan mencari kunci pertama di sana - James191955Gosling dalam fail luar biasa.
2. Kami belajar pvs dan lvs, kerana kami bekerja dengan LVM. Kami melihat bahawa perlu ada 2 jilid fizikal, satu tidak terletak dan mengadu tentang kehilangan uid. Kami melihat bahawa perlu ada 2 volum logik: akar dan swap, manakala akar hilang sebahagiannya (atribut P volum). Ia tidak mungkin untuk dipasang, yang sangat disayangkan! Kami sangat memerlukan dia.
Terdapat 2 lagi cakera, kami melihatnya, memasang dan memasangnya:
$ mdadm --examine --verbose --scan
$ mdadm --assemble --verbose --scan
$ mkdir /mnt/md127 && mount /dev/md127 /mnt/md127 Mari kita lihat, jelas bahawa ini adalah partition boot. CentOS 6 dan pendua daripada apa yang telah ada /dev/sdb1, dan di sini sekali lagi kunci yang sama - DennisBMacAlistairCRitchie!
Mari lihat bagaimana ia dipasang /dev/md127.
$ mdadm --detail /dev/md127
Kami melihat bahawa ia sepatutnya dipasang dari 4 cakera, tetapi ia dipasang dari dua /dev/sda1 и /dev/sdc1, mereka sepatutnya nombor 2 dan 4 dalam sistem. Kami menganggap bahawa dari /dev/sda2 и /dev/sdc2 Anda juga boleh mengumpul tatasusunan. Tidak jelas mengapa tiada metadata pada mereka, tetapi ini berdasarkan hati nurani pentadbir, yang berada di suatu tempat di Goa. Kami menganggap bahawa perlu ada RAID10, walaupun terdapat pilihan. Kami mengumpul:
$ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2
Kami melihat blkid, pvs, lvs. Kami mendapati bahawa kami telah mengumpul jumlah fizikal yang kami kekurangan sebelum ini.
lvroot segera dibaiki, kami memasangnya, tetapi mula-mula aktifkan VG:
$ vgchange -a y
$ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot
Dan semuanya ada di sana, termasuk kunci dalam direktori rumah akar - /root/sweet.
3. Kami masih cuba menghidupkan semula pelayan kami supaya ia bermula seperti biasa. Semua jilid logik dari kami /dev/md0 (di mana kami menemui segala-galanya) seret ke /dev/sdb2, di mana keseluruhan pelayan pada mulanya berfungsi.
$ pvmove /dev/md0 /dev/sdb2
$ vgreduce vg_c6m1 /dev/md0Kami mematikan pelayan, keluarkan cakera 1 dan 3, biarkan yang kedua, but dari Live CD/DVD ke Rescue. Cari partition but dan pulihkan pemuat but dalam grub:
root (hd0,0)
setup (hd0)
Kami merobek cakera but dan memuatkan dengan jayanya, tetapi tapak itu tidak berfungsi.
4. Terdapat dua pilihan untuk melancarkan tapak web: konfigurasi Apache dari awal atau gunakan nginx dengan php-fpm yang telah dikonfigurasikan terlebih dahulu:
$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm start
Akhirnya, anda perlu memulakan MySQL:
$ /etc/init.d/mysqld start Ia tidak akan bermula, dan jawapannya terletak pada /var/log/mysql. Sebaik sahaja anda menyelesaikan masalah dengan MySQL, tapak akan berfungsi, pada halaman utama akan ada kunci - RichardGCCMatthewGNUStallman! Kini kami mempunyai akses kepada 1C, dan pekerja akan dapat menerima gaji mereka. Dan seperti biasa, anda mempunyai banyak kerja di hadapan untuk mewujudkan infrastruktur dan keselamatan dalam syarikat.
Kami juga boleh sekali lagi berkongsi senarai buku yang membantu kami dan peserta kami bersedia untuk permainan: .
Terima kasih kerana bersama kami! Nantikan pengumuman perlawanan seterusnya!
Sumber: www.habr.com
