Fil-25 ta’ Marzu ftaħna r-reġistrazzjoni għal
- Alexander Teldekov ħa l-ewwel post.
Alexander qal bejnu u bejn ruħu li huwa l-aktar amministratur tas-sistema tipika. Jgħix f'Volgograd, ilu jamministra diversi sistemi simili għal Unix għal madwar għoxrin sena. Irnexxieli naħdem f'fornituri tal-Internet, bank, u integratur tas-sistema. Issa jaħdem mill-bogħod f'kumpanija żgħira, jaħdem fuq infrastruttura tal-cloud għal klijent barrani kbir. Iħobb jaqra u jisma' l-mużika. Dwar il-Logħba, Alexander qal li għoġob il-logħba kollha kemm hi, iħobb kompiti bħal dawn. Waqt intervista f'waħda mill-kumpaniji għamilt xi ħaġa simili għal Hackerrank, kien interessanti. - It-tieni post - Roman Suslov.
Rumanz minn Moska. Huwa għandu 37 sena. Jaħdem bħala inġinier Linux/Unix f'Jet Infosystems. Fuq ix-xogħol, għandi namministra u nsolvi l-problemi tas-sistemi Linux/Unix + SAN. L-interessi huma varjati: sistemi Linux, programmar, reverse engineering, sigurtà tal-informazzjoni, Arduino. Dwar il-Logħba Roman innota li huwa għoġob il-logħba b'mod ġenerali. “Frejdt imħuħ ftit u ħadt pawża mill-ħajja griża ta’ kuljum tax-xogħol ta’ kuljum. 🙂 Nixtieq li jkolli aktar kompiti, inkella qabel ma kelli l-ħin biex nieħu togħma minnha, il-logħba kienet diġà spiċċat.” - It-tielet - alex3d.
Alex jgħix f'Moska u jaħdem fl-iżvilupp tas-softwer. "Grazzi għall-konkors, kien interessanti li nittestja l-ħiliet tiegħi ta' google-fu."
Ukoll fil-klassifika tal-aqwa 10 plejers:
- Yevgeniy Saldayev
- Markel Mokhnachevsky
- Konstantin Konosov
- Pavel Sergeev
- Vladimir Bovaev
- Ivan Bubnov
- Pavlo Klets
Aħna nifhmu li hemm ħafna għażliet biex insolvu l-problemi kollha tagħna; xi wħud mis-soluzzjonijiet possibbli huma deskritti hawn taħt.
1. L-ewwel stadju
Aħna sejjaħnieha "Int verament amministratur?", peress li l-kompitu kien pjuttost sempliċi - li tiffissa servizz ta 'lampa sħuna.
1.1. Fatti interessanti:
Żewġ plejers sabu l-ewwel ċavetta fl-ewwel 15-il minuta tal-logħba, u fl-ewwel siegħa kellna tliet leaders li lestew il-kompitu.
1.2. Eżerċizzju
Int mort taħdem f'kumpanija fejn għal żmien twil ma kienx hemm speċjalista kompetenti tat-teknoloġija tal-informatika. Qabel ma tibda tpoġġi l-affarijiet fl-ordni, għandek bżonn issolvi l-problema tal-ħruq li qed timblokka x-xogħol tal-uffiċċju.
Il-mara tat-tindif qabdet il-kejbil tad-dawl tal-kabinett tas-server b'mopp. L-enerġija ġiet restawrata, iżda websajt importanti ħafna għadha ma taħdimx. Il-websajt hija importanti għaliex il-kumpanija mhix imħassba ħafna dwar is-sigurtà tal-informazzjoni, u fuq il-paġna ewlenija ta 'dan tista' ssib f'test ċar il-password tal-amministratur għall-kompjuter tal-CEO.
Il-ġurnata l-oħra nbidlet il-password, iżda kulħadd nesa l-ġdida, id-direttur ma jistax jaħdem. Hemm xnigħat li kien hemm aktar ċwievet fuq din il-magna li jistgħu jgħinuna niddeċifraw il-kopja backup tad-dokumenti tal-kontabilità.
Kulħadd jistenna soluzzjoni fil-pront tal-kwistjoni!
1.3. Soluzzjoni
1. L-ewwelnett, għandek bżonn tibdel il-password tal-għeruq fuq il-magna virtwali sabiex tikseb aċċess għaliha. Meta nibdew, ninnutaw li dan huwa Ubuntu 16.04 Server.
Biex tirrisettja l-password ta 'l-għerq, aħna nibdew mill-ġdid il-magna, meta tagħbija, fil-mument li jintwera l-menu tal-grub, mur teditja l-oġġett Ubuntu bil-buttuna "e". Editja l-linja linux, żidha fl-aħħar init=/bin/bash
. Aħna tagħbija permezz Ctrl + x, aħna tikseb bash. Erġa' munta l-għerq b'rw, ibdel il-password:
$ mount -o remount,rw /dev/mapper/ubuntu--vg-root
$ passwd
Tinsiex dwar is-sinkronizzazzjoni, reboot.
2. Il-kundizzjoni tgħid li s-server tal-web tagħna mhux qed jaħdem, ara:
$ curl localhost
Not Found
The requested URL / was not found on this server.
Apache/2.4.18
Jiġifieri, fil-fatt, Apache qed jaħdem, iżda jirrispondi bil-kodiċi 404. Ejja nħarsu lejn il-konfigurazzjoni:
$ vim /etc/apache2/sites-enabled/000-default.conf
Hemm ukoll ċavetta hawn - StevenPaulSteveJobs.
Iċċekkja t-triq /usr/share/WordPress
- m'hemm l-ebda ħaġa bħal din, iżda hemm /usr/share/wordpress
. Editja l-konfigurazzjoni u erġa ibda Apache.
$ systemctl restart apache2
3. Erġa' pprova, niksbu l-iżball:
Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /usr/share/wordpress/wp-includes/wp-db.php on line 1488
Id-database mhix qed taħdem?
$ systemctl status mysql
Active: active (running)
X'ġara? Għandna bżonn insemmu. Biex tagħmel dan, għandek bżonn tikseb aċċess għal MySQL, kif deskritt f' skip-grant-tables
в /etc/mysql/mysql.conf.d/mysqld.cnf
. Hemm ukoll ċavetta hawn - AugustaAdaKingByron.
Korrezzjoni tad-drittijiet tal-utent 'wp'@'localhost'
. Inniedu MySQL, nagħmluha aċċessibbli fuq in-netwerk, billi nikkummentaw l-għażla fil-konfigurazzjoni skip-networking
.
4. Wara dawn il-passi, is-server tal-web jibda, iżda s-sit għadu ma jaħdimx għaliex
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
Aħna neditjaw id-drittijiet għall-fajl.
$ chmod 644 /usr/share/wordpress/wp-content/themes/twentysixteen/footer.php
Aħna jġedded il-paġna, immorru fis-sit u nsibu ċ-ċavetta - BjarneStroustrup! Sibna t-tliet ċwievet, id-direttur tagħna jista 'jaħdem, aħna decrypted il-fajls tal-kontabilità. Kulħadd huwa kuntent, u għandek ħafna xogħol quddiemek biex twaqqaf infrastruttura, backups u sigurtà fil-kumpanija.
2. It-tieni stadju
Kien meħtieġ li tissolva l-problema tal-ġbir tal-analiżi. Kulħadd iħobb l-analitika - min jużaha, fejn u f'liema kwantitajiet. Ħriġna b’każ li l-inġiniera kollha jistgħu jiltaqgħu magħhom f’xi forma jew oħra fil-ħajja.
2.1. Fatti interessanti
Wieħed mill-plejers tagħna daħal iċ-ċavetta t-tajba fl-ewwel 10 minuti tal-logħba, u fl-ewwel siegħa kellna mexxej li lesta l-kompitu.
2.2. Eżerċizzju
Int mort taħdem fil-kumpanija, ġew għandkom maniġers u talbuk issib lil min intbagħtu ittri mill-Afrika. Irridu nibnu l-aqwa 21 indirizz tar-riċevitur ibbażati fuqhom. L-ewwel ittri tal-indirizzi tar-riċevituri huma ċ-ċavetta. Ħaġa waħda: is-server tal-posta li permezz tiegħu intbagħtu l-ittri ma jgħabbix. Kulħadd jistenna soluzzjoni fil-pront tal-kwistjoni!
2.3. Soluzzjoni
1. Is-server ma jibbutjax minħabba partizzjoni ta 'skambju ineżistenti f'fstab, meta tgħabbi, is-sistema tipprova twaħħalha u tiġġarraf. Kif boot?
Niżżel l-immaġni, niżżilna CentOS 7, ibbutja minn Live CD/DVD (Issolvi l-problemi -> Salvataġġ), mmunta s-sistema, editja /etc/fstab
. Mill-ewwel insibu l-ewwel ċavetta - GottfriedWilhelm11646Leibniz!
Oħloq tpartit:
$ lvcreate -n swap centos -L 256M
$ sync && reboot
2. Bħal dejjem, m'hemm l-ebda password, għandek bżonn tibdel il-password ta 'l-għeruq fuq il-magna virtwali. Dan diġà għamilna fl-ewwel biċċa xogħol. Aħna nibdlu u nilloggjaw b'suċċess fis-server, iżda immedjatament tidħol f'reboot. Is-server huwa mgħobbi żżejjed b'tali veloċità li lanqas ikollok ħin biex tħares lejn ir-zkuk kollha bir-reqqa. Kif tifhem dak li qed jiġri?
Għal darb'oħra nibdew mill-livecd, nistudjaw bir-reqqa r-reġistri tas-sistema u, fil-każ, inħarsu lejn il-cron, peress li tali perjodiċità. Hemm insibu l-problema u t-tieni ċavetta - Alan1912MathisonTuring!
Meħtieġa fi /etc/crontab
ħassar jew ikkummenta l-linja echo b > /proc/sysrq-trigger
.
3. Wara dan tagħbija s-server, u tista 'tlesti l-kompitu tal-maniġers: "X'inhuma l-indirizzi fl-Afrika?" Din l-informazzjoni hija ġeneralment disponibbli għall-pubbliku. Tista’ ssib din l-informazzjoni fuq l-Internet billi tuża l-frażijiet “ip address africa”, “geoip database”. Biex issolvi l-problema, tista 'tuża databases ta' distribuzzjoni ta 'indirizzi disponibbli liberament (geoip). Aħna użajna d-database bħala standard
Ejja nippruvaw insolvu l-problema tagħna billi tuża biss utilitajiet tas-sistema Linux, iżda b'mod ġenerali tista 'tiġi solvuta f'numru kbir ta' modi: bl-użu ta 'utilitajiet ta' filtrazzjoni tat-test u bl-użu ta 'skripts f'diversi lingwi ta' programmar.
Biex tibda, aħna sempliċiment nieħdu l-pari "IP mittent-riċevitur" mir-reġistru tal-posta /var/log/maillog
(ejja nibnu tabella tar-riċevituri tal-email - sender IP). Dan jista 'jsir bil-kmand li ġej:
$ 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
U qabel ma nkomplu niġbru database ta 'indirizzi Afrikani, ejja nagħtu ħarsa lejn l-indirizzi IP ta' fuq tal-mittenti.
$ 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]
Fosthom kollha, l-ewwel tliet riċevituri minn fuq jispikkaw b’mod ċar f’termini tan-numru ta’ ittri. Jekk tgħaqqad l-indirizzi IP tal-mittenti li bagħtu lil indirizzi minn dawn it-3 top, tinnota predominanza ċara ta 'ċerti netwerks:
$ 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
Ħafna min-netwerks 105/8, 41/8, 196/8,197/8 huma allokati lil AFRINIC - wieħed mill-ħames reġistraturi reġjonali tal-Internet li jqassmu r-riżorsi tal-Internet. AFRINIC iqassam spazju għall-indirizzi madwar l-Afrika. U 41/8 jirreferi għal AFRINIC kompletament.
https://www.nic.ru/whois/?searchWord=105.0.0.0
https://www.nic.ru/whois/?searchWord=41.0.0.0
Għalhekk, it-tweġiba għall-problema hija, fil-fatt, fil-ġurnal innifsu.
$ 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]
F'dan l-istadju nikseb is-sekwenza "LinuxBenedictTorvadst".
Ċavetta korretta: "LinusBenedictTorvalds".
Is-sekwenza li tirriżulta fiha typo fir-rigward taċ-ċavetta korretta fl-aħħar 3 karattri. Dan minħabba l-fatt li n-netwerks li għażilna mhumiex iddedikati għal kollox għall-pajjiżi Afrikani u għall-mod kif l-emails huma mqassma mill-indirizzi IP fil-log tagħna.
Bi speċifikazzjoni suffiċjenti tal-akbar netwerks allokati lill-pajjiżi Afrikani, tista’ tinkiseb tweġiba preċiża:
$ 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]
Il-problema tista’ tissolva wkoll b’mod ieħor.
Niżżel MaxMind, spakkjah, u t-tliet kmandi li jmiss issolvi wkoll il-problema tagħna.
$ 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
B'xi mod jew ieħor, aħna eventwalment ikkalkula l-istatistika, u l-maniġers irċevew id-dejta li kellhom bżonn biex jaħdmu!
3. It-tielet stadju
It-tielet stadju huwa kemmxejn simili għall-ewwel - għandek bżonn ukoll li tiffissa s-servizz tal-lampa sħuna, iżda kollox huwa aktar ikkumplikat milli fl-ewwel kompitu.
3.1. Fatti interessanti
Fl-ewwel 15-il minuta, tliet plejers sabu l-ewwel ċavetta; sagħtejn u 2 minuta wara l-bidu tal-istadju, ir-rebbieħ tagħna temm il-kompitu.
3.2. Eżerċizzju
Int mort taħdem għal kumpanija fejn id-dokumenti kollha tal-kumpanija huma maħżuna fuq server intern tal-Wiki. Is-sena li għaddiet, inġinier ordna 3 diski ġodda għas-server minbarra wieħed eżistenti, u argumenta li biex is-sistema tkun tolleranti għall-ħsarat, id-diski kellhom bżonn jitqiegħdu f'xi tip ta 'arrays. Sfortunatament, ftit ġimgħat wara l-installazzjoni tagħhom, l-inġinier mar vaganza l-Indja u ma rritornax.
Is-server ħadem mingħajr fallimenti għal diversi snin, iżda ftit tal-jiem ilu n-netwerk tal-kumpanija ġie hacked. Skont l-istruzzjonijiet, il-persunal tas-sigurtà neħħa d-diski mis-server u bagħtulek. Waqt it-trasport, diska waħda ntilfet b'mod irrimedjabbli.
Irridu nirrestawraw il-funzjonalità tal-Wiki; l-ewwelnett, aħna interessati fil-kontenut tal-paġni tal-wiki. Ċerta biċċa test li kienet fuq waħda mill-paġni ta' din il-wiki hija l-password għas-server 1C u hija meħtieġa b'mod urġenti biex tinfetaħ.
Barra minn hekk, x'imkien fuq il-paġni tal-wiki jew f'post ieħor kien hemm passwords għas-server tal-ġurnal u s-server tas-sorveljanza bil-vidjo, li jkunu wkoll mixtieqa li jiġu rkuprati; mingħajrhom, l-investigazzjoni tal-inċident hija impossibbli. Bħal dejjem, nistennew riżoluzzjoni fil-pront tal-kwistjoni!
3.3. Soluzzjoni
1. Nippruvaw nibdew wieħed wieħed mid-diski li għandna u kullimkien nirċievu l-istess messaġġ:
No bootable medium found! System halted
Ikollok bżonn li boot minn xi ħaġa. Ibbutjar minn Live CD/DVD (Troubleshooting -> Rescue) jgħin mill-ġdid. Meta tagħbija, nippruvaw insibu l-partizzjoni tal-but, ma nistgħux insibuha, nispiċċaw fil-qoxra. Qed nippruvaw nistudjaw x'u kif nagħmlu bid-diski. Huwa magħruf li hemm tlieta minnhom. Hemm aktar għodod għal dan fis-7 verżjoni ta 'CentOS, fejn hemm kmandi blkid
jew lsblk
, li juruna l-informazzjoni kollha dwar id-diski.
Kif u x'nagħmlu:
$ ls /dev/sd*
Huwa immedjatament ovvju li
/dev/sdb1 - ext4
/dev/sdb2 - часть lvm
/dev/sda1 и /dev/sdc1 - части рейда
/dev/sda2 и /dev/sdc2 - про них ничего не известно на текущий момент
Aħna mmuntaw sdb1, huwa ċar li din hija l-partizzjoni tal-but ta 'CentOS 6.
$ mkdir /mnt/sdb1 && mount /dev/sdb1 /mnt/sdb1
Ovvjament, immorru fit-taqsima tal-grub u nsibu l-ewwel ċavetta hemmhekk - James191955Gosling f'fajl mhux tas-soltu.
2. Aħna nistudjaw pvs u lvs, peress li naħdmu ma 'LVM. Naraw li għandu jkun hemm 2 volumi fiżiċi, wieħed ma jinsabx u jilmenta dwar uid mitluf. Naraw li għandu jkun hemm 2 volumi loġiċi: għerq u tpartit, filwaqt li għerq jintilef parzjalment (l-attribut P tal-volum). Mhuwiex possibbli li jintramaw, li hija ħasra! Għandna bżonnu tassew.
Hemm 2 diski oħra, aħna nħarsu lejhom, narmawhom u narmawhom:
$ mdadm --examine --verbose --scan
$ mdadm --assemble --verbose --scan
$ mkdir /mnt/md127 && mount /dev/md127 /mnt/md127
Aħna nħarsu, nistgħu naraw li din hija l-partizzjoni tal-but ta 'CentOS 6 u duplikat ta' dak li diġà jinsab fuq /dev/sdb1
, u hawn għal darb'oħra l-istess ċavetta - DennisBMacAlistairCRitchie!
Ejja naraw kif huwa mmuntat /dev/md127
.
$ mdadm --detail /dev/md127
Naraw li kellu jiġi mmuntat minn 4 diski, iżda ġie mmuntat minn tnejn /dev/sda1
и /dev/sdc1
, kellhom ikunu n-numri 2 u 4 fis-sistema. Nassumu li minn /dev/sda2
и /dev/sdc2
Tista 'wkoll tiġbor firxa. Mhuwiex ċar għaliex m'hemm l-ebda metadata fuqhom, iżda dan huwa fuq il-kuxjenza ta 'l-admin, li huwa x'imkien f'Goa. Nassumu li għandu jkun hemm RAID10, għalkemm hemm għażliet. Aħna niġbru:
$ mdadm --create --verbose /dev/md0 --assume-clean --level=10 --raid-devices=4 missing /dev/sda2 missing /dev/sdc2
Inħarsu lejn blkid, pvs, lvs. Niskopru li ġbarna volum fiżiku li qabel ma kellniex.
lvroot ġie msewwija immedjatament, aħna narmawh, iżda l-ewwel nattiva VG:
$ vgchange -a y
$ mkdir /mnt/lvroot && mount /dev/mapper/vg_c6m1-lv_root /mnt/lvroot
U kollox qiegħed hemm, inkluż iċ-ċavetta fid-direttorju tad-dar tal-għeruq - /root/sweet.
3. Għadna qed nippruvaw inqajmu s-server tagħna sabiex jibda b'mod normali. Il-volumi loġiċi kollha minn tagħna /dev/md0
(fejn sibna kollox) drag it to /dev/sdb2
, fejn is-server kollu inizjalment ħadem.
$ pvmove /dev/md0 /dev/sdb2
$ vgreduce vg_c6m1 /dev/md0
Aħna itfi s-server, neħħi d-diski 1 u 3, inħallu t-tieni waħda, ibbutja mis-CD/DVD Live fis-Salvataġġ. Sib il-partizzjoni tal-boot u restawra l-bootloader f'grub:
root (hd0,0)
setup (hd0)
Aħna nqatgħu l-boot disk u tagħbija b'suċċess, iżda s-sit ma jaħdimx.
4. Hemm żewġ għażliet biex tniedi websajt: kkonfigurat Apache mill-bidu jew uża nginx b'php-fpm diġà kkonfigurat minn qabel:
$ /etc/init.d/nginx start
$ /etc/init.d/php-fpm start
Fl-aħħarnett, trid tibda MySQL:
$ /etc/init.d/mysqld start
Mhux se jibda, u t-tweġiba tinsab fiha /var/log/mysql
. Hekk kif issolvi l-problema bil-MySQL, is-sit se jaħdem, fuq il-paġna ewlenija se jkun hemm ċavetta - RichardGCCMatthewGNUStallman! Issa għandna aċċess għal 1C, u l-impjegati se jkunu jistgħu jirċievu s-salarji tagħhom. U bħal dejjem, għandek ħafna xogħol quddiem biex tistabbilixxi l-infrastruttura u s-sigurtà fil-kumpanija.
Nistgħu wkoll għal darb'oħra naqsmu lista ta' kotba li għenu lilna u lill-parteċipanti tagħna jippreparaw għal-logħba:
Grazzi talli kont magħna! Oqgħod attent għal avviżi tal-logħob li jmiss!
Sors: www.habr.com