Linux Quest. Serkeftinan pîroz dikin û ji me re behsa çareseriyên peywiran dikin

Linux Quest. Serkeftinan pîroz dikin û ji me re behsa çareseriyên peywiran dikin

Di 25ê Adarê de me qeyda xwe vekir Linux Quest, ev Lîstikek e ji bo hezkir û pisporên pergala xebatê Linux. Hin îstatîstîk: 1117 kes ji bo lîstikê qeyd bûne, 317 kes ji wan herî kêm keyek dîtin, 241 peywira qonaxa yekem bi serketî, 123 qonaxa duyemîn û 70 jî qonaxa sêyemîn derbas kirin. Îro lîstika me bi dawî bû û em serketîyên xwe pîroz dikin!

  • Alexander Teldekov bû yekem.
    Alexander ji xwe re got ku ew rêveberê pergalê yê herî tîpîk e. Li Volgograd dijî, bi qasî bîst sal in pergalên cûda yên mîna Unix-ê birêve dibe. Min kar kir ku di pêşkêşkerên Înternetê, bankek û entegratorek pergalê de bixebitim. Naha ew ji dûr ve di pargîdaniyek piçûk de dixebite, li ser binesaziya ewr ji bo xerîdarek biyanî ya mezin dixebite. Ji xwendin û guhdarîkirina muzîkê hez dike. Di derbarê Lîstik de, Alexander got ku wî ji lîstikê bi tevahî hez kir, ew ji karên weha hez dike. Di dema hevpeyivînek li yek ji pargîdaniyan de min tiştek mîna Hackerrank kir, balkêş bû.
  • Cihê duyemîn - Roman Suslov.
    Romanek ji Moskowê. Ew 37 salî ye. Li Jet Infosystems wekî endezyarek Linux / Unix dixebite. Li ser kar, pêdivî ye ku ez pergalên Linux / Unix + SAN rêve bikim û pirsgirêkan çareser bikim. Berjewendî cihêreng in: Pergalên Linux, bernamekirin, endezyariya berevajî, ewlehiya agahdariyê, Arduino. Di derbarê lîstikê de Roman destnîşan kir ku wî ji lîstikê bi tevahî hez kir. “Min mejiyê xwe hinekî dirêj kir û ji jiyana rojane ya gewr a karê rojane rawestiyam. 🙂 Ez dixwazim bêtir peywiran hebin, wekî din berî ku wextê min hebe ku ez tama wê bistînim, lîstik jixwe qediya bû."
  • Ya sêyemîn - alex3d.
    Alex li Moskowê dijî û di pêşkeftina nermalavê de dixebite. "Spas ji bo pêşbaziyê, ceribandina jêhatîbûna min a google-fu balkêş bû."

Her weha di rêza 10 lîstikvanên herî baş de:

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

Em fêm dikin ku ji bo çareserkirina hemî pirsgirêkên me gelek vebijark hene; hin çareseriyên mimkun li jêr têne diyar kirin.

1. Qonaxa yekem

Me jê re digot "Ma hûn bi rastî admin in?", ji ber ku peywir pir hêsan bû - rastkirina karûbarek çira germ.

1.1. Rastiyên Balkêş:

Du lîstikvanan di 15 hûrdemên pêşîn ên lîstikê de mifteya yekem dîtin, û di saeta yekem de sê serokên me hebûn ku peywirê temam kirin.

1.2. Fêrbûn

Hûn çûn li pargîdaniyek ku ji bo demek dirêj ve pisporê teknolojiya agahdariyê ya jêhatî tune bû bixebitin. Berî ku hûn dest bi rêzkirina tiştan bikin, hûn hewce ne ku pirsgirêka şewitandinê ya ku xebata nivîsgehê asteng dike çareser bikin.

Xanima paqijiyê kabloya elektrîkê ya kabîneya serverê bi mopê girt. Hêz hate vegerandin, lê malperek pir girîng hîn jî naxebite. Malper girîng e ji ber ku pargîdanî ji ewlehiya agahdariyê pir ne xem e, û li ser rûpela sereke ya vê hûn dikarin şîfreya rêveberê ji bo komputera CEO bi nivîsek zelal bibînin.

Roja din şîfre hat guhertin, lê her kesî şîfreya nû ji bîr kir, derhêner nikare bixebite. Gotin hene ku li ser vê makîneyê bêtir mift hene ku dikarin ji me re bibin alîkar ku kopiya paşde ya belgeyên hesabê deşîfre bikin.

Her kes li hêviya çareseriyek bilez a pirsgirêkê ye!

1.3. Çareserî

1. Berî her tiştî, hûn hewce ne ku şîfreya root li ser makîneya virtual biguhezînin da ku hûn bigihîjin wê. Dema ku dest pê dike, em bala xwe didin ku ev Servera Ubuntu 16.04 e.

Ji bo sifirkirina şîfreya root, em makîneyê ji nû ve dest pê dikin, dema barkirinê, dema ku menuya grub tê xuyang kirin, bi bişkoja "e" re biçin ser guherandina babetê Ubuntu. Linux-ê biguherînin, wê li dawiyê zêde bikin init=/bin/bash. Em bi Ctrl+x bar dikin, em bashek distînin. Bi rw re rootê ji nû ve girêdin, şîfreyê biguherînin:

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

Hevrêzkirinê ji bîr nekin, ji nû ve bidin destpêkirin.

2. Merc dibêje ku servera meya webê nexebite, binêre:

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

Ango, bi rastî, Apache dimeşe, lê bi koda 404 bersivê dide. Ka em li konfigurasyonê binêrin:

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

Li vir mifteyek jî heye - StevenPaulSteveJobs.

Kontrolkirina rê /usr/share/WordPress - Tiştekî wisa tune, lê heye /usr/share/wordpress. Veavakirinê biguherînin û Apache ji nû ve bidin destpêkirin.

$ systemctl restart apache2

3. Dîsa biceribîne, em xeletiyê digirin:

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

Database nayê xebitandin?

$ systemctl status mysql
Active: active (running)

Babet çîye? Pêdivî ye ku em wê fêhm bikin. Ji bo vê yekê, hûn hewce ne ku hûn bigihîjin MySQL, wekî ku di nav de hatî destnîşan kirin belgekirin. Yek ji xalên belgekirinê pêşniyar dike ku em vebijarkê tomar bikin skip-grant-tables в /etc/mysql/mysql.conf.d/mysqld.cnf. Li vir mifteyek jî heye - AugustaAdaKingByron.

Rastkirina mafên bikarhêner 'wp'@'localhost'. Em MySQL dest pê dikin, wê li ser torê bigihînin, vebijarka di mîhengê de şîrove dikin skip-networking.

4. Piştî van gavan, servera malperê dest pê dike, lê malper hîn jî naxebite ji ber ku

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

Em mafên pelê biguherînin.

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

Em rûpelê nûve dikin, biçin malperê û mifteyê bibînin - BjarneStroustrup! Me her sê kilît dîtin, derhênerê me dikare bixebite, me pelên hesaban deşîfre kir. Her kes kêfxweş e, û ji bo sazkirina binesaziyê, paşvekişandin û ewlehiyê di pargîdaniyê de gelek kar li pêşiya we hene.

2. Qonaxa duyemîn

Pêwîst bû ku pirsgirêka berhevkirina analîtîkan were çareser kirin. Her kes ji analîtîkê hez dike - kî wê, li ku û bi çi qasê bikar tîne. Me rastî bûyerek hat ku dibe ku hemî endezyar di jiyanê de bi rengekî an rengek din rûbirû bibin.

2.1. Rastiyên Balkêş

Yek ji lîstikvanên me di nav 10 hûrdemên pêşîn ên lîstikê de ket mifteya rast, û di saeta yekem de me rêberek hebû ku peywirê qedand.

2.2. Fêrbûn

Hûn çûn li pargîdaniyê bixebitin, rêveber hatin ba we û ji we xwestin ku hûn bibînin ka ji Afrîkayê name ji kê re hatine şandin. Pêdivî ye ku em li ser bingeha wan 21 navnîşanên wergirên jorîn ava bikin. Tîpên pêşîn ên navnîşanên wergiran kilît in. Tiştek: servera nameyê ku bi navgîniya wê name hatine şandin nayê barkirin. Her kes li hêviya çareseriyek bilez a pirsgirêkê ye!

2.3. Çareserî

1. Pêşkêşkar ji ber dabeşek guheztinê ya ku di fstab-ê de tune nayê boot kirin; dema barkirinê, pergal hewl dide ku wê siwar bike û têk diçe. Meriv çawa boot bike?

Wêneyê dakêşin, me CentOS 7 dakêşand, ji CD/DVD-ya Zindî boot (Çêkirin -> Rizgarkirin), pergalê siwar bikin, biguherînin /etc/fstab. Em tavilê mifteya yekem dibînin - GottfriedWilhelm11646Leibniz!

Danûstandin çêbikin:

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

2. Mîna her gav, şîfre tune, hûn hewce ne ku şîfreya root li ser makîneya virtual biguhezînin. Jixwe me di karê yekem de ev yek kir. Em diguhezin û bi serfirazî têkevin serverê, lê ew tavilê diçe reboot. Pêşkêşkar bi lezek wusa zêde tê barkirin ku hûn jî wextê wan tune ku hûn bi baldarî li hemî têketinan binihêrin. Meriv çawa fêm dike ka çi diqewime?

Dîsa em ji livecd-ê boot dikin, bi baldarî têketinên pergalê dixwînin û, tenê di her rewşê de, li kronê dinêrin, ji ber ku heyamek wusa ye. Li wir em pirsgirêk û mifteya duyemîn dibînin - Alan1912MathisonTuring!

Pêdivî ye /etc/crontab rêzê jêbirin an şîrove bike echo b > /proc/sysrq-trigger.

3. Piştî ku server bar kir, û hûn dikarin peywira rêveberan temam bikin: "Navnîşanên li Afrîkayê çi ne?" Ev agahî bi giştî ji raya giştî re heye. Hûn dikarin vê agahiyê li ser Înternetê bi karanîna biwêjên "IP navnîşana africa", "danûstandinên geoip" bibînin. Ji bo çareserkirina pirsgirêkê, hûn dikarin databasên belavkirina navnîşanên belaş ên berdest (geoip) bikar bînin. Me databas wekî standardek bikar anî MaxMind GeoLite2, di bin lîsansa Creative Commons Attribution-ShareAlike 4.0 de heye.

Werin em hewl bidin ku pirsgirêka xwe tenê bi karanîna karûbarên pergala Linux-ê çareser bikin, lê bi gelemperî ew dikare bi gelek awayan were çareser kirin: bi karanîna karûbarên fîlterkirina nivîsê û karanîna nivîsarên bi zimanên bernamenûsê yên cihêreng.

Ji bo destpêkê, em ê bi tenê cotên "IP-ya şander-wergir" ji têketina nameyê bistînin. /var/log/maillog (ka em tabloyek wergirên e-nameyê ava bikin - IP-ya şanderê). Ev dikare bi fermana jêrîn were kirin:

$ 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

Û berî ku em bi berhevkirina databasek navnîşanên Afrîkî bidomînin, bila em li navnîşanên IP-ya jorîn ên şanderan mêze bikin.

$ 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 nav wan hemûyan de, sê wergirên pêşîn ên ji jor ve bi zelalî ji hêla hejmara tîpan ve derdikevin pêş. Ger hûn navnîşanên IP-ya şanderên ku ji navnîşanên vê 3-ya jorîn şandine bigirin, hûn ê serdestiyek eşkere ya hin toran bibînin:

$ 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

Piraniya torên 105/8, 41/8, 196/8,197/8 ji AFRINIC re hatine veqetandin - yek ji pênc qeydkarên înternetê yên herêmî ku çavkaniyên Înternetê belav dikin. AFRINIC cîhê navnîşan li seranserê Afrîkayê belav dike. Û 41/8 bi tevahî behsa EFRÎNÊ dike.

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

Ji ber vê yekê, bersiva pirsgirêkê, bi rastî, di têketinê bixwe de ye.

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

Di vê qonaxê de em rêzika "LinuxBenedictTorvadst" digirin.

Mifteya rast: "LinusBenedictTorvalds".

Di rêzika ku derketî de di 3 tîpên paşîn de li gorî mifteya rast xeletiyek tîp heye. Ev ji ber vê yekê ye ku torên ku me hilbijartî ne bi tevahî ji welatên Afrîkî re ne û ji awayê ku e-name ji hêla navnîşanên IP-yê di têketina me de têne belav kirin.

Bi diyarbûna têr a torên herî mezin ên ku ji welatên Afrîkî re hatine veqetandin, bersivek rastîn dikare were bidestxistin:

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

Pirsgirêk jî bi awayekî din çareser dibe.
MaxMind dakêşin, wê vekin, û sê fermanên din jî pirsgirêka me çareser dikin.

$ 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

Bi rengekî din, me di dawiyê de statîstîk hesab kir, û rêveberan daneyên ku ji bo xebatê hewce bûn wergirtin!

3. Qonaxa sêyemîn

Qonaxa sêyemîn hinekî dişibihe ya yekem - hûn jî hewce ne ku karûbarê lampa germ rast bikin, lê her tişt ji karê yekem tevlihevtir e.

3.1. Rastiyên Balkêş

Di 15 hûrdemên pêşîn de, sê lîstikvan mifteya yekem dîtin; 2 demjimêr û 20 hûrdem piştî destpêkirina qonaxê, serketiya me peywir qedand.

3.2. Fêrbûn

Hûn çûn ji bo pargîdaniyek ku hemî belgeyên pargîdaniyê li ser serverek Wiki ya hundurîn têne hilanîn bixebitin. Sala borî, endezyarek ji bilî dîskên heyî 3 dîskên nû ji bo serverê ferman da, bi argûmana ku ji bo ku pergal bertengkirina xeletiyê be, pêdivî ye ku dîskên di cûrbecûr rêzan de werin danîn. Mixabin, çend hefte piştî sazkirina wan, endezyar çû betlaneyê Hindistanê û venegeriya.

Server çend salan bêyî têkçûn xebitî, lê çend roj berê tora pargîdaniyê hate hack kirin. Li gor talîmatan, xebatkarên ewlehiyê dîskên ji serverê derxistin û ji we re şandin. Di dema veguheztinê de, yek dîsk bi rengek bêserûber winda bû.

Pêdivî ye ku em fonksiyona Wîkî vegerînin; berî her tiştî, naveroka rûpelên wîkî me eleqedar dike. Hin perçeyek nivîsê ku li ser yek ji rûpelên vê wiki-yê bû şîfreya servera 1C ye û ji bo vekirina wê bi lez hewce ye.

Wekî din, li cîhek li ser rûpelên wiki-yê an li cîhek din şîfreyên servera têketinê û servera çavdêriya vîdyoyê hebûn, ku ew jî tê xwestin ku were vegerandin; bêyî wan, lêkolîna bûyerê ne gengaz e. Mîna her gav, em li hêviya çareseriyek bilez a pirsgirêkê ne!

3.3. Çareserî

1. Em hewl didin ku yek bi yek ji dîskên ku me hene û li her deverê em heman peyamê distînin:

No bootable medium found! System halted 

Pêdivî ye ku hûn ji tiştek vebikin. Bootkirina ji CD/DVD-ya Zindî (Çêkirina Pirsgirêkan -> Rizgarkirin) dîsa dibe alîkar. Dema barkirinê, em hewl didin ku dabeşkirina bootê bibînin, em nikarin wê bibînin, em di şêlê de diqewimin. Em hewl didin ku lêkolîn bikin ka bi dîskan çi û çawa bikin. Tê zanîn ku ji wan sê kes in. Ji bo vê yekê di guhertoya 7-an a CentOS de, ku ferman lê hene, bêtir amûr hene blkid an lsblk, ku hemî agahdariya li ser dîskan nîşanî me dide.

Em çawa û çi dikin:

$ ls /dev/sd*

Di cih de diyar dibe ku

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

Em sdb1 siwar dikin, diyar e ku ev dabeşkirina bootê ya CentOS 6 e.

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

Eşkere, em diçin beşa grub û li wir mifteya yekem - James191955Gosling di pelek bêhempa de dibînin.

2. Em pvs û lvs dixwînin, ji ber ku em bi LVM re dixebitin. Em dibînin ku divê 2 cildên fizîkî hebin, yek ne cî ye û gazinan ji uidek winda dike. Em dibînin ku divê 2 cildên mentiqî hebin: root û guheztin, dema ku root bi qismî winda dibe (taybetmendiya cildê P). Ne mumkin e ku were siwar kirin, ku mixabin! Em bi rastî hewceyê wî ne.

2 dîskên din jî hene, em li wan dinêrin, wan dicivînin û siwar dikin:

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

Em dinêrin, em dikarin bibînin ku ev dabeşkirina bootê ya CentOS 6 e û dubareya ya ku berê li ser e ye. /dev/sdb1, û li vir dîsa heman key - DennisBMacAlistairCRitchie!
Ka em bibînin ka ew çawa tê berhev kirin /dev/md127.

$ mdadm --detail /dev/md127

Em dibînin ku diviyabû ew ji 4 dîskê bihata civandin, lê ew ji du dîskan hate berhev kirin /dev/sda1 и /dev/sdc1, divê di pergalê de jimareyên 2 û 4 bûna. Em texmîn dikin ku ji /dev/sda2 и /dev/sdc2 Her weha hûn dikarin rêzek berhev bikin. Ne diyar e çima li ser wan metadata tune, lê ev li ser wijdana rêveberê ye, ku li derek Goa ye. Em texmîn dikin ku divê RAID10 hebe, her çend vebijark hene. Em berhev dikin:

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

Em li blkid, pvs, lvs dinêrin. Em kifş dikin ku me cildek fizîkî ya ku berê kêmasiya me hebû berhev kiriye.

lvroot tavilê hate tamîr kirin, em wê siwar dikin, lê pêşî VG çalak bikin:

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

Û her tişt li wir e, tevî mifteya pelrêça malê ya root - /root/sweet.

3. Em hîn jî hewl didin ku servera xwe vejînin da ku ew bi gelemperî dest pê bike. Hemû cildên mantiqî ji me /dev/md0 (ku me her tişt dît) kaş bikin /dev/sdb2, ku tevahiya serverê di destpêkê de xebitî.

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

Em serverê qut dikin, dîskên 1 û 3 jê dikin, ya duyemîn dihêlin, ji CD/DVD-ya Zindî di Rescue de vedigerin. Dabeşkirina bootê bibînin û bootloader di grub-ê de sererast bikin:

root (hd0,0)
setup (hd0)

Em dîska bootê diqetînin û bi serfirazî bar dikin, lê malper nexebite.

4. Ji bo destpêkirina malperek du vebijark hene: Apache ji nû ve mîheng bikin an nginx bi php-fpm-ê ku berê berê hatî mîheng kirin bikar bînin:

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

Di dawiyê de, hûn hewce ne ku MySQL dest pê bikin:

$ /etc/init.d/mysqld start

Ew ê dest pê neke, û bersiv di nav de ye /var/log/mysql. Mîna ku hûn pirsgirêkê bi MySQL re çareser bikin, malper dê bixebite, li ser rûpela sereke dê mifteyek hebe - RichardGCCMatthewGNUStallman! Naha gihîştina me 1C heye, û karmend dê karibin mûçeyên xwe bistînin. Û wekî her gav, li pêşiya we gelek kar heye ku hûn binesaziyê û ewlehiyê di pargîdaniyê de saz bikin.

Her weha em dikarin careke din navnîşek pirtûkên ku alîkariya me û beşdarên me ji bo lîstikê amade bikin parve bikin: linux.mail.ru/books.

Spas ji bo ku hûn bi me re ne! Li benda daxuyaniyên lîstikên paşîn bin!

Source: www.habr.com

Add a comment