Linux Quest. Tithokoze kwa opambana ndipo tiwuzeni za mayankho a ntchito

Linux Quest. Tithokoze kwa opambana ndipo tiwuzeni za mayankho a ntchito

Pa Marichi 25 tinatsegula kulembetsa Linux Quest, iyi ndi Masewera a okonda komanso akatswiri a Linux opareshoni. Ziwerengero zina: anthu 1117 omwe adalembetsa nawo masewerawa, 317 aiwo adapeza chinsinsi chimodzi, 241 adamaliza bwino ntchito ya gawo loyamba, 123 - yachiwiri ndi 70 idadutsa gawo lachitatu. Lero masewera athu atha ndipo tikuyamika opambana athu!

  • Alexander Teldekov anatenga malo oyamba.
    Alexander adadziuza yekha kuti ndiye woyang'anira dongosolo. Amakhala ku Volgograd, wakhala akuyang'anira machitidwe osiyanasiyana a Unix kwa zaka pafupifupi makumi awiri. Ndinakwanitsa kugwira ntchito m'makampani opanga intaneti, banki, komanso makina ophatikiza makina. Tsopano amagwira ntchito kutali ndi kampani yaying'ono, akugwira ntchito pamtambo wamtambo kwa kasitomala wamkulu wakunja. Amakonda kuwerenga ndi kumvetsera nyimbo. Ponena za Masewera, Alexander adanena kuti amakonda masewerawo, amakonda ntchito zotere. Pamafunso pa imodzi mwamakampani omwe ndidachita zofanana ndi Hackerrank, zinali zosangalatsa.
  • Wachiwiri - Roman Suslov.
    Novel yochokera ku Moscow. Ali ndi zaka 37. Amagwira ntchito ngati injiniya wa Linux/Unix ku Jet Infosystems. Kuntchito, ndiyenera kuyang'anira ndikuwongolera machitidwe a Linux/Unix + SAN. Zokonda ndi zosiyanasiyana: Linux machitidwe, mapulogalamu, reverse engineering, chitetezo chidziwitso, Arduino. About the Game Roman adanenanso kuti adakonda masewerawa onse. "Ndinatambasula ubongo wanga pang'ono ndikupumula ku moyo watsiku ndi tsiku wa ntchito ya tsiku ndi tsiku. πŸ™‚ Ndikufuna kukhala ndi ntchito zambiri, apo ayi ndisanakhale ndi nthawi yoti ndimve kukoma, masewerawo anali atatha kale. "
  • Chachitatu - alex3d.
    Alex amakhala ku Moscow ndipo amagwira ntchito yopanga mapulogalamu. "Zikomo chifukwa cha mpikisanowu, zinali zosangalatsa kuyesa luso langa la google-fu."

Komanso pamndandanda wa osewera 10 opambana:

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

Timamvetsetsa kuti pali njira zambiri zothetsera mavuto athu onse; ena mwa njira zomwe angathetsere zafotokozedwa pansipa.

1. Gawo loyamba

Tidachitcha "Kodi ndinudi admin?", popeza ntchitoyo inali yosavuta - kukonza ntchito yotentha ya nyali.

1.1. Zochititsa chidwi:

Osewera awiri adapeza kiyi yoyamba pamphindi 15 zoyambirira zamasewera, ndipo mu ola loyamba tinali ndi atsogoleri atatu omwe adamaliza ntchitoyi.

1.2. Masewera olimbitsa thupi

Munapita kukagwira ntchito kukampani komwe kwa nthawi yayitali kunalibe katswiri waukadaulo wazidziwitso. Musanayambe kukonza zinthu, muyenera kuthetsa vuto loyaka moto lomwe likulepheretsa ntchito ya ofesi.

Mayi woyeretsayo adagwira chingwe chamagetsi cha kabati ya seva ndi mop. Mphamvu zabwezeretsedwa, koma tsamba lofunika kwambiri silikugwirabe ntchito. Webusaitiyi ndi yofunika chifukwa kampaniyo sichikhudzidwa kwambiri ndi chitetezo cha chidziwitso, ndipo pa tsamba lalikulu la izi mukhoza kupeza mawu omveka bwino achinsinsi a woyang'anira makompyuta a CEO.

Tsiku lina mawu achinsinsi adasinthidwa, koma aliyense adayiwala chatsopano, wotsogolera sangathe kugwira ntchito. Pali mphekesera zoti panali makiyi ambiri pamakinawa omwe angatithandize kudziwa zosunga zobwezeretsera zamaakaunti.

Aliyense amayembekeza kuthetseratu nkhaniyo mwachangu!

1.3. Yankho

1. Choyamba, muyenera kusintha muzu achinsinsi pa makina pafupifupi kuti kupeza izo. Poyambira, tikuwona kuti iyi ndi Ubuntu 16.04 Server.

Kuti mukhazikitsenso mawu achinsinsi, timayambiranso makinawo, pamene tikutsitsa, panthawi yomwe mndandanda wa grub ukuwonetsedwa, pitani kusintha chinthu cha Ubuntu ndi batani la "e". Sinthani mzere wa linux, onjezerani kumapeto init=/bin/bash. Timatsitsa kudzera pa Ctrl + x, timapeza bash. Bwezerani muzu ndi rw, sinthani mawu achinsinsi:

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

Musaiwale za kulunzanitsa, yambitsaninso.

2. Mkhalidwewu ukunena kuti seva yathu yapaintaneti sikugwira ntchito, yang'anani:

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

Ndiye kuti, Apache ikugwira ntchito, koma imayankha ndi code 404. Tiyeni tiwone config:

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

Palinso kiyi apa - StevenPaulSteveJobs.

Kuwona njira /usr/share/WordPress - palibe chinthu choterocho, koma chiripo /usr/share/wordpress. Sinthani config ndikuyambitsanso Apache.

$ systemctl restart apache2

3. Yesaninso, tapeza cholakwika:

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

Kodi database sikuyenda?

$ systemctl status mysql
Active: active (running)

Vuto ndi chiyani? Tiyenera kuzilingalira. Kuti muchite izi, muyenera kupeza mwayi wa MySQL, monga tafotokozera mu zolemba. Chimodzi mwazolemba zolembedwa chimalimbikitsa kuti tilembetse chisankho skip-grant-tables Π² /etc/mysql/mysql.conf.d/mysqld.cnf. Palinso kiyi pano - AugustaAdaKingByron.

Kukonza maufulu ogwiritsa ntchito 'wp'@'localhost'. Timatsegula MySQL, ndikupangitsa kuti ipezeke pamanetiweki, ndikuyankha zomwe mungasankhe mu config skip-networking.

4. Pambuyo pa izi, seva yapaintaneti imayamba, koma tsamba silikugwirabe ntchito chifukwa

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

Timasintha ufulu wa fayilo.

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

Timatsitsimutsa tsambalo, pitani patsambalo ndikupeza kiyi - BjarneStroustrup! Tidapeza makiyi onse atatu, wotsogolera wathu amatha kugwira ntchito, tidasindikiza mafayilo owerengera. Aliyense ali wokondwa, ndipo muli ndi ntchito yambiri patsogolo panu kukhazikitsa zomangamanga, zosunga zobwezeretsera ndi chitetezo pakampani.

2. Gawo lachiwiri

Zinali zofunikira kuthetsa vuto la kusonkhanitsa analytics. Aliyense amakonda analytics - yemwe amagwiritsa ntchito, kuti ndi zochuluka bwanji. Tinabwera ndi mlandu womwe mainjiniya onse angakumane nawo mwanjira ina m'moyo.

2.1. Zochititsa chidwi

Mmodzi mwa osewera athu adalowetsa kiyi yolondola mkati mwa mphindi 10 zoyambirira zamasewera, ndipo mkati mwa ola loyamba tinali ndi mtsogoleri yemwe adamaliza ntchitoyi.

2.2. Masewera olimbitsa thupi

Munapita kukagwira ntchito pakampanipo, mameneja abwera kwa inu ndikukufunsani kuti mupeze omwe makalata adatumizidwa kuchokera ku Africa. Tiyenera kupanga maadiresi apamwamba 21 olandirira kutengera iwo. Zilembo zoyamba za maadiresi a olandira ndizo mfungulo. Chinthu chimodzi: seva yamakalata yomwe makalatawo adatumizidwa samatsitsa. Aliyense amayembekeza kuthetseratu nkhaniyo mwachangu!

2.3. Yankho

1. Seva siimayamba chifukwa cha kugawanika kwa fstab kulibe; pamene ikutsegula, makina amayesa kuyiyika ndikuwonongeka. Kodi boot?

Tsitsani chithunzichi, tidatsitsa CentOS 7, boot kuchokera ku Live CD/DVD (Troubleshooting -> Rescue), khazikitsani dongosolo, sinthani. /etc/fstab. Nthawi yomweyo timapeza kiyi yoyamba - GottfriedWilhelm11646Leibniz!

Pangani kusinthana:

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

2. Monga nthawi zonse, palibe mawu achinsinsi, muyenera kusintha muzu achinsinsi pa makina pafupifupi. Tinachita kale izi mu ntchito yoyamba. Timasintha ndikulowa mu seva, koma nthawi yomweyo imayambanso. Seva imadzaza ndi liwiro kwambiri kotero kuti mulibe nthawi yoyang'ana zipika zonse mosamala. Kodi mungamvetse bwanji zomwe zikuchitika?

Apanso timayambanso kuchokera pa livecd, timaphunzira mosamala zipika zamakina ndipo, ngati zingachitike, yang'anani mu cron, popeza nthawi yayitali. Kumeneko timapeza vuto ndi kiyi yachiwiri - Alan1912MathisonTuring!

Muyenera kulowa /etc/crontab chotsani kapena perekani ndemanga echo b > /proc/sysrq-trigger.

3. Pambuyo pake seva yadzaza, ndipo mutha kumaliza ntchito ya oyang'anira: "Kodi ma adilesi aku Africa ndi ati?" Izi nthawi zambiri zimapezeka kwa anthu. Mutha kuzipeza pa intaneti pogwiritsa ntchito mawu akuti "ip address africa", "geoip database". Kuti muthane ndi vutoli, mutha kugwiritsa ntchito nkhokwe zogawa maadiresi (geoip). Tinagwiritsa ntchito database ngati muyezo MaxMind GeoLite2, yopezeka pansi pa chilolezo cha Creative Commons Attribution-ShareAlike 4.0.

Tiyeni tiyesetse kuthetsa vuto lathu pogwiritsa ntchito zida za Linux zokha, koma nthawi zambiri zitha kuthetsedwa m'njira zingapo: kugwiritsa ntchito zosefera zolemba ndikugwiritsa ntchito zolemba m'zilankhulo zosiyanasiyana zamapulogalamu.

Poyamba, tingotenga ma "IP olandila-olandila" kuchokera pamakalata /var/log/maillog (tiyeni tipange tebulo la olandira maimelo - wotumiza IP). Izi zitha kuchitika ndi lamulo ili:

$ 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

Ndipo tisanapitilize kupanga nkhokwe ya maadiresi aku Africa, tiyeni tiwone ma adilesi apamwamba a IP a otumiza.

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

Pakati pa onsewa, olandira atatu oyambirira kuchokera pamwamba amawonekeratu mwachiwerengero cha zilembo. Mukayika ma adilesi a IP a omwe adatumiza ku ma adilesi kuchokera pamwamba pa 3 iyi, mudzawona kuchulukira kwa maukonde ena:

$ 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

Ambiri mwa maukonde 105/8, 41/8, 196/8,197/8 amaperekedwa ku AFRINIC - imodzi mwa olembetsa madera asanu a pa intaneti omwe amagawa zothandizira pa intaneti. AFRINIC imagawa ma adilesi ku Africa yonse. Ndipo 41/8 amatanthauza AFRINIC kwathunthu.

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

Chifukwa chake, yankho la vutoli liri, kwenikweni, mu chipika chokha.

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

Pakadali pano timapeza chingwe "LinuxBenedictTorvadst".

Kiyi yolondola: "LinusBenedictTorvalds".

Chingwe chotsatiracho chili ndi typo molingana ndi kiyi yolondola mu zilembo zitatu zomaliza. Izi ndichifukwa choti maukonde omwe tidasankha sali odzipereka kwathunthu kumayiko aku Africa komanso momwe maimelo amagawidwira pakati pa ma adilesi a IP mu chipika chathu.

Ndi chidziwitso chokwanira cha maukonde akulu kwambiri omwe aperekedwa kumayiko aku Africa, yankho lolondola litha kupezeka:

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

Vutoli lingathenso kuthetsedwa mwa njira ina.
Tsitsani MaxMind, masulani, ndipo malamulo atatu otsatirawa amathetsanso vuto lathu.

$ 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

Mwanjira ina, m’kupita kwa nthaΕ΅i tinaΕ΅erengera ziΕ΅erengerozo, ndipo mamenejala analandira deta imene anafunikira kuti agwire ntchito!

3. Gawo lachitatu

Gawo lachitatu ndi lofanana ndi loyamba - muyeneranso kukonza ntchito ya nyali yotentha, koma zonse zimakhala zovuta kwambiri kuposa ntchito yoyamba.

3.1. Zochititsa chidwi

M'mphindi 15 zoyambirira, osewera atatu adapeza kiyi yoyamba; Maola a 2 ndi mphindi 20 chiyambireni siteji, wopambana wathu adamaliza ntchitoyi.

3.2. Masewera olimbitsa thupi

Munapita kukagwira ntchito kukampani komwe zolemba zonse zamakampani zimasungidwa pa seva yamkati ya Wiki. Chaka chatha, injiniya adalamula ma disks atsopano a 3 kwa seva kuwonjezera pa imodzi yomwe ilipo, akutsutsa kuti dongosololi likhale lolekerera zolakwika, ma disks ayenera kuikidwa mumtundu wina wamitundu. Tsoka ilo, patatha milungu ingapo kukhazikitsidwa kwawo, injiniyayo adapita kutchuthi ku India ndipo sanabwerere.

Seva inagwira ntchito popanda zolephera kwa zaka zingapo, koma masiku angapo apitawo maukonde a kampaniyo adabedwa. Malinga ndi malangizo, ogwira ntchito zachitetezo adachotsa ma disks pa seva ndikutumiza kwa inu. Paulendo, diski imodzi inatayika mosayembekezereka.

Tiyenera kubwezeretsanso magwiridwe antchito a Wiki; Choyamba, tili ndi chidwi ndi zomwe zili patsamba la wiki. Chidutswa china chomwe chinali patsamba limodzi la wiki iyi ndi mawu achinsinsi a seva ya 1C ndipo chikufunika mwachangu kuti mutsegule.

Kuphatikiza apo, penapake pamasamba a wiki kapena kwina kwina panali mawu achinsinsi a seva ya chipika ndi seva yoyang'anira makanema, zomwe zingakhalenso zofunika kuchira; popanda iwo, kufufuza zomwe zachitika sikungatheke. Monga mwanthawi zonse, tikuyembekezera kutha kwa nkhaniyi mwachangu!

3.3. Yankho

1. Timayesa kuyambitsa imodzi ndi imodzi kuchokera ku disks zomwe tili nazo komanso kulikonse komwe timalandira uthenga womwewo:

No bootable medium found! System halted 

Muyenera kuyamba kuchokera ku chinachake. Kuwombera kuchokera ku Live CD/DVD (Kuthetsa Mavuto -> Kupulumutsa) kumathandizanso. Pamene tikutsitsa, timayesa kupeza gawo la boot, sitingathe kulipeza, timathera mu chipolopolo. Tikuyesera kuphunzira zomwe tingachite ndi ma disks. Zimadziwika kuti pali atatu mwa iwo. Pali zida zambiri za izi mu mtundu wa 7 wa CentOS, pomwe pali malamulo blkid kapena lsblk, zomwe zimatiwonetsa zonse zokhudzana ndi ma disks.

Momwe ndi momwe timachitira:

$ ls /dev/sd*

Nthawi yomweyo zikuwonekeratu kuti

/dev/sdb1 - ext4
/dev/sdb2 - Ρ‡Π°ΡΡ‚ΡŒ lvm
/dev/sda1 ΠΈ /dev/sdc1 - части Ρ€Π΅ΠΉΠ΄Π°
/dev/sda2 ΠΈ /dev/sdc2 - ΠΏΡ€ΠΎ Π½ΠΈΡ… Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ извСстно Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚

Timayika sdb1, zikuwonekeratu kuti iyi ndiye gawo la boot la CentOS 6.

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

Mwachiwonekere, timapita ku gawo la grub ndikupeza kiyi yoyamba pamenepo - James191955Gosling mu fayilo yachilendo.

2. Timaphunzira pvs ndi lvs, popeza timagwira ntchito ndi LVM. Tikuwona kuti payenera kukhala ma voliyumu akuthupi a 2, imodzi sichipezeka ndikudandaula za uid yotayika. Tikuwona kuti payenera kukhala ma voliyumu awiri omveka: muzu ndi kusinthana, pomwe muzu watayika pang'ono (mtundu wa P wa voliyumu). Sizingatheke kukwera, zomwe ndi zachisoni! Timamufunadi.

Pali 2 ma disks ena, timawayang'ana, kuwasonkhanitsa ndi kuwayika:

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

Tikuyang'ana, titha kuwona kuti iyi ndiye gawo la boot la CentOS 6 ndikubwereza zomwe zayamba kale. /dev/sdb1, ndipo apa kachiwiri fungulo lomwelo - DennisBMacAlistairCRitchie!
Tiyeni tiwone momwe zasonkhanitsira /dev/md127.

$ mdadm --detail /dev/md127

Tikuwona kuti iyenera kuti idasonkhanitsidwa kuchokera ku ma disks 4, koma idasonkhanitsidwa kuchokera pawiri /dev/sda1 ΠΈ /dev/sdc1, ayenera kukhala nambala 2 ndi 4 mu dongosolo. Timaganiza kuti kuchokera /dev/sda2 ΠΈ /dev/sdc2 Mukhozanso kusonkhanitsa gulu. Sizikudziwika chifukwa chake palibe metadata pa iwo, koma izi zili pa chikumbumtima cha admin, yemwe ali kwinakwake ku Goa. Tikuganiza kuti payenera kukhala RAID10, ngakhale pali zosankha. Timasonkhanitsa:

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

Timayang'ana pa blkid, pvs, lvs. Timazindikira kuti tasonkhanitsa voliyumu yakuthupi yomwe tinalibe poyamba.

lvroot inakonzedwa nthawi yomweyo, timayiyika, koma choyamba yambitsani VG:

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

Ndipo zonse zilipo, kuphatikiza kiyi mu chikwatu chakunyumba - /root/sweet.

3. Tikuyesabe kutsitsimutsa seva yathu kuti iyambe bwino. Ma voliyumu onse omveka kuchokera ku zathu /dev/md0 (komwe tidapeza chilichonse) kokeraniko /dev/sdb2, pomwe seva yonse idagwira ntchito poyambilira.

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

Timazimitsa seva, chotsani ma disks 1 ndi 3, kusiya yachiwiri, yambitsani Live CD/DVD kupita ku Rescue. Pezani gawo la boot ndikubwezeretsa bootloader mu grub:

root (hd0,0)
setup (hd0)

Timachotsa boot disk ndikuyika bwino, koma tsambalo silikugwira ntchito.

4. Pali njira ziwiri zoyambira tsamba la webusayiti: konzani Apache kuyambira poyambira kapena gwiritsani ntchito nginx yokhala ndi php-fpm yokonzedwa kale:

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

Pomaliza, muyenera kuyambitsa MySQL:

$ /etc/init.d/mysqld start

Izo siziyamba, ndipo yankho lili mkati /var/log/mysql. Mukangothetsa vutoli ndi MySQL, malowa adzagwira ntchito, pa tsamba lalikulu padzakhala chinsinsi - RichardGCCMatthewGNUStallman! Tsopano tili ndi mwayi wopita ku 1C, ndipo ogwira ntchito azitha kulandira malipiro awo. Ndipo monga nthawi zonse, muli ndi ntchito yambiri yoti mukhazikitse zomangamanga ndi chitetezo pakampani.

Titha kugawananso mndandanda wa mabuku omwe adathandizira ife ndi omwe adatenga nawo gawo kukonzekera masewerawa: linux.mail.ru/books.

Zikomo chifukwa chokhala nafe! Khalani tcheru kuti mulandire zilengezo zamasewera otsatirawa!

Source: www.habr.com

Kuwonjezera ndemanga