Ինչպես է google-ը սկսել է սիրել https կայքեր, ավելին, զանգվածային տեղադրում SSL-եւ որտեղ կարող. Որպես կանոն, բացի այդ, ավելի ահաբեկելը սերվերների համար մենք ունենք եւ դեգրադացիայի արագությամբ. Լավ, որ HTTP2 ստանդարտ արդեն ավելի քան մեկուկես ինտեգրման բոլոր հիմնական http սերվերները և բրաուզերների, եւ դրա բովանդակությունը բավականին կայուն. Ցավոք, debian stable չի փաթեթներ, որոնք աջակցում են HTTP2 հիմնական http սերվերների. Տարբերակները, որոնք մեզ անհրաժեշտ են աշխատելու համար HTTP2 հետևյալ կերպ:

  • Apache > 2.4.17
  • Nginx > 1.9.5
  • մնացած անձամբ ինձ չի հարուցել (lighttpd կա, հնարավոր է, նախատեսվում է…..)

Ես мешаницата մեծ է եւ կախված է օգտվել apache կամ nginx. Ես դեռ չեմ խաղացել, որ մղել apache debian http2 8 քանի որ ես խաղացել, բայց backports репото նրա կան, որ ոչ մի մեծ խնդիր. Համար nginx դա արդեն մենք մի քանի անգամ խաղացել. Որպես կանոն, քայլերն ու մի քանի համեմատաբար պարզ:

  1. Ավելացնել nginx պաշտոնական ռեպո – "debian տարբերակը - 1.6.x 🙄
  2. Տեղադրել այն openssl են backports այս պահին 1.0.2 k – դա մեզ պետք է ALPN աջակցություն, որպեսզի կարողանա աշխատել և արագ
  3. տեղադրել այն devscripts – այստեղ ժամանակն է կիսել, որ билднем մեր փաթեթը, քանի որ պաշտոնյան եղել է скомпилирован հետ openssl 1.0.1 t որտեղ չի աշխատում ALPN եւ բրաուզերների չի արձագանքում և աշխատում է http2-ապա միայն այն դեպքում, եթե նրա форсираш
  4. инкрементираме տարբերակը, որ սպասում է անել циганията փաթեթների իսկ այնտեղ նոր տարբերակը, միայն синкенм сорсовете

Եկեք սկսենք քայլ առ քայլ

Ավելացնել nginx ретроград

deb http://nginx.org/packages/debian/ codename nginx
deb-src http://nginx.org/packages/debian/ codename nginx

Ավելացնել openssl 1.0.2 k և dev գրադարանի, հակառակ դեպքում կլինի այն билднем դեռ 1.0.1 t որ մեզ նպատակն է

echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee /etc/apt/sources.list.d/backports.list

apt update && apt install libssl-dev -t jessie-backports

 

Այժմ մնացել է ավելացնել գրադարանի համար անհրաժեշտ կազմելու nginx

apt install devscripts

apt build-dep nginx

mkdir nginx-build

cd nginx-build

apt-get source nginx

Եթե դուք աշխատում ճիշտ, դուք պետք է ունենալ կառույցի տեսակ

~/nginx-build # ll
total 1004
drwxr-xr-x 10 root root   4096 Feb 21 18:37 nginx-1.10.3
-rw-r--r--  1 root root 103508 Jan 31 17:59 nginx_1.10.3-1~jessie.debian.tar.xz
-rw-r--r--  1 root root   1495 Jan 31 17:59 nginx_1.10.3-1~jessie.dsc
-rw-r--r--  1 root root 911509 Jan 31 17:59 nginx_1.10.3.orig.tar.gz

Влизате в папта в която е разархивиран сорса на nginx в моят случай е и nginx-1.10.3 изпълнявате команда с която инкрементирате версията, ես անձամբ նախընտրում եմ ավելացնել, որ 1 ներկա բիլդ

debchange --newversion 1.10.3-1

Այն բանից հետո, երբ նրա ավելացնել changelog-իսկ ընտրություն, կարելի է անցնել իրական կազմելու

debuild -us -uc -i -I -b -j6

Մի քիչ բացատրությունը կազմաձեւման թիմ:

-ամն -uc ասում են script չի “ստորագրում” .dsc եւ .changes ֆայլեր. -i ու -I ստիպում են script, որ անտեսել ֆայլերը վերահսկողության համար տարբերակ. -B միայն առաջացնում երկուական փաթեթ. -j իսկ make է, քանի զուգահեռ հավաքագրման գործընթացի 🙂

 

Այն բանից հետո, երբ ավարտված է նախորդ գործընթացը պետք է իրեն տեղադրել մեր նոր փաթեթներ. Եթե դուք արդեն տեղադրվել են nginx-դա լավ է, դուք պետք է հեռացնել այն

apt remove nginx nginx-*

Също не лоша идея е да си направите бекъп на nginx папката в /etc. По принцип при ъпгрейд от 1.6.5 " 1.10.3 нямах драми но никога не се знае. Новите пактеи се намират в папката от по горно ниво и следва да се инсталират с команда от рода на:

dpkg -i ../*.deb

Ако всичко е минало гладко ви остава само да си пуснете nginx процеса и да си се конфигурира http2 което вече не е цел на тази статия.

Մենք կարող ենք հեշտությամբ սպանել բոլոր mysql հարցումներ է որոշակի օգտվողի հետ էլեգանտ:

select concat('KILL ',id,';') from information_schema.processlist where user='user123';

և մենք կկարողանանք այնպես փոխարինել user123 հետ ցանկալի է մեզ օգտագործողի և իրականացնում է mysql և ամեն ինչ OK է 🙂

Նոր Debian Stable փաստ է մոտ մեկ շաբաթ, եւ ինձ сърбяха ձեռքերը, այն թարմացնել виртуалката դրան, բայց ես ոչ մի անգամ մինչև այսօր. Քանի որ իմ օրը սկսել է վաղ որոշել է նվիրել ժամանակ թարմացումներ. Ես փոխել աղբյուրը տերեւները ինձ, ինչպես ես փոխել задыхающимся է jessie

sed -i "s/wheezy/jessie/g" /etc/apt/sources.list && apt-get update

Այստեղ, հնարավոր է, եւ 2 հայելիներ:

  • MariaDB – այս հայելին արդեն պետք է Jessie ներառում տարբերակը 10.0.6 է, որ ինձ շատ դուր. Հետո 5.5 мичетодб և mysql այնքան էլ համատեղելի են, քանի որ ներկայումս врътнах ետ mysql 5.5.42 – նա հանդիսանում է նախնական jessie
  • DotDeb – ես օգտագործել այն, ավելի շուտ, php55 այստեղ էլ անհրաժեշտ չէ, քանի որ Jessie գալիս 5.6.7-1

Այն բանից հետո, երբ разкарах ավելորդ հայելիներ եւ врътнах է MariaDB Mysql apt-get dist-upgrade իմ մաքուր, reboot, եւ ես արդեն Debian 8.0. Ես բացեց իր web server-իսկ, ու, ի զարմանս ինձ, աշխատել այստեղ պատմությունը երկար – մի քանի խոսք Nginx-իսկ իմ հավաքվել լրացուցիչ source հետ լրացուցիչ դիրեկտիվները:. dpkg -l nginx-full 1.2 мдааа ինչ-որ մեկը մոռացել է իր unhold-փաթեթներ. Unhold եւ նորացնել ամեն ինչ ըստ պլանի nginx-կոտրել 😆 . Nginx-իսկ աշխատում է, մշակում է հարցումները և php-fpm գործընթացը up and runnign բայց php կոդ չի կատարվում և չի թքել սխալների 🙄 ԻՄ ՍԻՐԱԾ.

Հետո որոշ որոնման տեղեկությունների փոփոխության համար ես հայտնաբերեցի հետեւյալ հատված

Fastcgi կարգավորում issues ============================

nginx shipped a modified fastcgi_params, ստուգելու declared fastcgi_param SCRIPT_FILENAME. This line now has been removed. From now on we are also առաքում fastcgi.քաղաքական upstream from the շտեմարան, ստուգելու ընդգրկված հոդվածների մասերը a sane SCRIPT_FILENAME parameter value.

So, if you are using fastcgi_params, you can try switching to fastcgi.conf or manually set the relevant պարամետրերի.

Bingo. Ես փոխել վիրտուալ սերվերները օգտագործել fastcgi.conf անելու փոխարեն կոպիտ միջամտություն է և բոլորը ենթադրում. Ապա հարվածել է մեկ արագ diff տեսնել տարբերությունը, որ եղել է 2-րդ apache

diff /etc/nginx/fastcgi_params /etc/nginx/fastcgi.conf
1a2
> fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

Որ ինձ հիշել է, որ հորդառատ մեծ configurations виртуаните hosts չի թույն գաղափար է. Մնում է прекомпилирам կրկին Nginx-իսկ սկսած ավելացումներ ons որ ես ուզում եմ mod_sec + pagespeed բայց դա կարող է սպասել. Շատ ավելի կարեւոր է, որ սովորաբար ինձ կրկնվել, եթե քեզ փնտրել 3-րդ աղբյուրներից և кастъм ելույթները Debian չի փչանում է, երբ dist-upgrade!

HTTPS://www.youtube.com/watch?v=gEQCny6zNF0

Յուրաքանչյուր ոք, ով զբաղվում է պրոֆեսիոնալ հետ web hosting գիտի, թե ինչ վտանգ է ներկայացնում վարակված օգտվողները հետ չարամիտ, web shells etc. "Обшият այստեղ օգտագործվում է maldet մեկը ոչ մի վատ սցենար. Նա տարբերվում է 3 բաներ

  1. Ահավոր դանդաղ
  2. Ահավոր դանդաղ են ընթանում, եւ եթե նրան ազատ արձակել ռեժիմով մոնիտորինգի չի изгаври սերվերի վրա դուք
  3. Աջակցում է սեփական բազայի հետ, md5/hex дефиници վատ կոդ.

Հենց վերջին առանձնահատկությունն է, այն օգտակար, քանի որ, ամեն ինչից զատ, կարող է събмитваш ֆայլերը, որոնք հայտնաբերվել էին մինչ այժմ եւ ավելի ուշ փուլում պետք է հասնել բազայի. Ինչպես կիսվել կետ 1 ու 2 նրա արագությունը սարսափելի ցածր է – ցածր ծանրաբեռնվածության մեքենայի վրա 70к ֆայլի отсканировали մեկ-մեկուկես ժամ. Այդ պատճառով ես սկսեցի օգնել իմ լավ ընկեր, ShadowX հետ malmon – այլընտրանք maldet գրված է python մի քիչ ճկունություն. Ցավոք, ժամանակի սղության պատճառով (հիմնականում, բայց ոչ միայն) մենք չենք довършили նախագծի, որը տվյալ պահին շատ օգտակար է – բավականին սխալներ կան որոնք պետք է մաքրել. Անցած օրերին ինձ հաճախորդների հետ, վարակված CryptoPHP որոնք ունեին հսկայական public_html ֆայլերը ~60к+ inod-օգտագործողի. Քանի որ միասին պետք է ստուգվել 200к ֆայլ որ խոշոր հաշիվների այն տեւում 5+ ժամ ես որոշեցի тунинговам կազմաձեւման maldet, նվազեցնել ֆայլերը, որոնք պետք է ստուգվի ինչ-որ բան ավելի խելամիտ տեղը եւ ժամանակը. Մինչեւ ընտրության конфа նկատել է հետեւյալ տողերը

# Attempt to detect the presence of ClamAV clamscan binary
# and use as default scanner engine; up to four times faster
# scan performance and superior hex analysis. This option
# only uses ClamAV as the scanner engine, LMD signatures
# are still the basis for detecting threats.
# [ 0 = disabled, 1 = enabled; enabled by default ]
clamav_scan=1

Հետաքրքիր է… Ակնհայտ է, որ կա հնարավորություն օգտագործել ClamAV – ով նույնպես աչքի չի ընկնում մեծ արագությամբ, բայց, ինչու չէ, փորձեք այն. Արագ ես տեղադրել

/scripts/update_local_rpm_versions --edit target_settings.clamav installed

/scripts/check_cpanel_rpms --fix --targets=clamav

Թողարկել maldet-իսկ փոքրիկ թղթապանակ – չեմ տեսնում տարբերություն արագությամբ եւ վարքի – օգտագործել է իր perl-ски սկաների փոխարենը clamav. Հետո կարճատեւ փորում, ըստ կոդ maldet ես գտել հետեւյալ տողերը

 clamscan=`which clamscan 2> /dev/null`
 if [ -f "$clamscan" ] && [ "$clamav_scan" == "1" ]; then
        eout "{scan} found ClamAV clamscan binary, using as scanner engine..." 1
    for hit in `$clamscan -d $inspath/sigs/rfxn.ndb -d $inspath/sigs/rfxn.hdb $clamav_db -r --infected --no-summary -f $find_results 2> /dev/null | tr -d ':' | sed 's/.UNOFFICIAL//' | awk '{print$2":"$1}'`; do

Мдааа, ես մի ստուգելու clamscan и за моя голяма изненада открих че clamav изобщо не е в PATH-a ами тъпият Cpanel го е оставил само в /usr/local/cpanel/3rdparty/bin/ от където той си използва бинарките. Един бърз ln реши проблема:

ln -s /usr/local/cpanel/3rdparty/bin/clamscan /usr/bin/clamscan

При повторно сканиране maldet вече горно съобщава

{scan} found ClamAV clamscan binary, using as scanner engine...

След като вече използва ClamAV maldet приключва сканирането си 3-4-5 пъти по бързо в сравнение с преди. Теста показа – 70к inod-а ги изтъркла за около 25 мин което си е около 3 пъти и половина по бързо в сравнение с преди.

Մինչ այդ, սկսել են հերթական random % % 50 ’тинки OS ես նկատի ունեմ, որ ամեն օր ես պետք է նրա վարչարարությունը եւ գիտեմ նրա առաջին դեմքի եզակի թվի բավականին լավ. Այսօր ես էլ ժամանակին, որպեսզի изтествам նոր մոգություն нечувана և երբեք չի տեսել գործառույթները համար թարմացումները диструбитивен (կեղծ) 😀 . Առաջին բանը, որ ինձ գրավեց: սա, որ RedHat իր անսահման իմաստության որոշել է դադարեցնել սպասարկումը х86 ճարտարապետության 🙄 . Напълно съм наясно че сме 2014-та година и сървърни процесори с 32 քիչ հրահանգներ բացակայում է վաղուց. Мда ама какво правят потребителите на малки VPS-и – 64-bit ինտերնետ ոտքերը ավելի շատ շրջանակներ, ինչպես եք նայում դրան, եթե դուք ունեք բարակ վիրտուալ հարմարվողական հետ 512MB-1GB ram պայքարելու է յուրաքանչյուր мегабай նրանից չի прахосаш 20-30% այն պարզապես օգտագործել մեծ սեթ են հրահանգներ. Препсувах քանի որ ես инсталил х86 CentOS եւ բարձրացնել մեկ 64-bit ինտերնետ. Միանգամից տեսա տարբերությունը ISO-ին – ~100МБ նվազագույն 6.5. Препсувах եւս մեկ անգամ. Ես տեղադրել այն կրկին виртуалката, ինչպես ես որոշեցի տեսնել, RedHat, թե որքան լավ է կատարել իր աշխատանքը – ես անում /var /usr առանձին LVM բաժինները 😈 . Հետո տեղադրման ես թարմացրել բոլոր փաթեթները ես տեղադրել և apache, php, mysql և bind – հետաքրքիր էր, թե արդյոք բռնկվել сървисите. Ես բացեցի այն, թե ինչպես է լավ աշակերտուհին ուղեցույց CentOS-ի համար թարմացվել է և սկսել է խելոք-խելոք իր համար պետք է քայլ առ քայլ. Երբ ես հասա այն պահը, սկսել իրական թարմացնել այս пумия ինձ изряза, че имам критичен проблем 🙄 . "Եզը պատասխանել է ելքը – мдаааа /usr չի կարող առանձին բաժին 😆 ես գիտեի, որ պետք է հիասթափված Jim Whitehurst եւ ընկերության. Բացի “մեկը:” խնդիր է, բավականին շատ հաղորդագրությունների մասին չստորագրված փաթեթներ, ֆայլերի համար конфизи որոնք չեն համապատասխանում և այլն. WTF նույնիսկ եղել են հօգուտ 3-րդ պահոցները բոլոր նրանց հայելիներ смъкнах չի արել որեւէ պարամետրերը պարզապես տարրական yum install. Արդեն ամեն ինչ պարզ էր, ուստի առանց այլևայլի форсирах upgrade. Reboot կրկին հնազանդ ինչպես ինձ հուշում է, ի վերջո, սցենարը, եւ ամեն ինչ ավարտվում են /usr բաժնում. Ես շատ ծույլ, որ փորձեք, որպեսզի նրա фиксна, ինչևէ, ամեն ինչ եղել է միայն գիտական նպատակն է, ոչ թե ապրանք-սերվերի, որ надграждам այս պահին. Ես բռնել преинсталирах նրա виртуалката, քանի որ այս անգամ ամեն ինչ իր набутах է 1 բաժին. Նաեւ վերցրել դաս, որեւէ վերազինման որեւէ լրացուցիչ сървъси, տեղադրելուց հետո ուղղակի թարմացումները. Վերջնական քայլ-կրկին pop up досаният երկխոսությունը, որն ինձ ասաց., որ ես ունեմ բավականին Բարձր խնդիրներ – անվավեր փաթեթներ, конфизи եւ այլն, բայց կարող է տեւել. Ես գիտեի, որ տանը անում են նրանց, թե ինչպես բաներ պետք է. Reboot կրկին ու зачаках – о какво чудо ъпгрейда приключи успешно. И всичко работеше или поне зареждането на системата така и не пробвах да инсталирам допълнителни пакети, но halt командата си зависвашехух все пак трябваше да има бъг 💡 . След тая цялата тарапана реших да инсталирам на чисто Centos 7 да видим дали ще ръмжи за /boot дял в LVM – 6.5 не позволява такава дързост. Стартирах си ISO-то и бях меко казано шокиран от инсталаторавсичко беше крайно не удобноподредено”, напълно алогично с цел да е красиво. Հետո ինչ-որ պայքարի հաջողվել է իր նպատակին, եւ աղա, տեղադրել եւ грянет, որ անհրաժեշտ է, որպեսզի նրա մարել /boot-իսկ դուրս LVM-a 👿 Դա չափազանց լուրջ է եւ նյարդայնացնում է, եթե ինչ-ինչ պատճառներով մոռացել է, որ չափը загрузочного բաժին է 200МБ եւ понатрупаш հին միջուկներ, թե ինչ է տեղի ունենում.

Ընդհանուր առմամբ, ոչինչ չի սպասում, եւ չնայած ես հիասթափված CentOS.