Cloud for Charities: Migration Guide

Cloud for Charities: Migration Guide

Nie je to tak dávno, čo Mail.Ru Cloud Solutions (MCS) a služba Dobro Mail.Ru spustili projekt “Cloud pre charitatívne organizácie“, vďaka ktorej môžu neziskové organizácie získať zdroje cloudovej platformy MCS zadarmo. Charitatívna nadácia"Aritmetika dobra» zúčastnila na projekte a úspešne nasadila časť svojej infraštruktúry na báze MCS.

Po vykonaní overenia môže NPO prijať virtuálnu kapacitu z MCS, ale ďalšia konfigurácia si vyžaduje určité kvalifikácie. V tomto materiáli sa chceme podeliť o konkrétne pokyny na nastavenie servera založeného na Ubuntu Linux na spustenie hlavnej webovej stránky nadácie a niekoľkých subdomén pomocou bezplatných certifikátov SSL. Pre mnohých to bude jednoduchý návod, no dúfame, že naše skúsenosti budú užitočné aj pre iné neziskové organizácie, a nielen.

FYI: Čo môžete získať od MCS? 4 CPU, 32 GB RAM, 1 TB HDD, OS Ubuntu Linux, 500 GB objektového úložiska.

Krok 1: Spustite virtuálny server

Poďme rovno k veci a vytvorte si náš virtuálny server (aka „inštanciu“) vo vašom osobnom účte MCS. V obchode s aplikáciami si musíte vybrať a nainštalovať hotový zásobník LAMP, čo je sada serverového softvéru (LAMP = Linux, Apache, MySQL, PHP) potrebná na spustenie väčšiny webových stránok.

Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Vyberte príslušnú konfiguráciu servera a vytvorte nový kľúč SSH. Po kliknutí na tlačidlo „Inštalovať“ sa spustí inštalácia servera a zásobníka LAMP, čo bude chvíľu trvať. Systém ponúkne aj stiahnutie súkromného kľúča do počítača na správu virtuálneho stroja cez konzolu, jeho uloženie.

Po nainštalovaní aplikácie okamžite nastavme bránu firewall, a to aj vo vašom osobnom účte: prejdite do časti „Cloud computing -> Virtuálne počítače“ a vyberte „Nastavenie brány firewall“:

Cloud for Charities: Migration Guide
Musíte pridať povolenie pre prichádzajúcu komunikáciu cez port 80 a 9997. Toto je v budúcnosti potrebné na inštaláciu SSL certifikátov a na prácu s phpMyAdminom. V dôsledku toho by súbor pravidiel mal vyzerať takto:

Cloud for Charities: Migration Guide
Teraz sa môžete pripojiť k serveru cez príkazový riadok pomocou protokolu SSH. Ak to chcete urobiť, zadajte nasledujúci príkaz, ukážte na kľúč SSH na vašom počítači a externú IP adresu vášho servera (nájdete ju v časti „Virtuálne počítače“):

$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>

Pri prvom pripojení k serveru sa odporúča nainštalovať naň všetky aktuálne aktualizácie a reštartovať ho. Ak to chcete urobiť, spustite nasledujúce príkazy:

$ sudo apt-get update

Systém dostane zoznam aktualizácií, nainštaluje ich pomocou tohto príkazu a postupujte podľa pokynov:

$ sudo apt-get upgrade

Po nainštalovaní aktualizácií reštartujte server:

$ sudo reboot

Krok 2: Nastavte virtuálnych hostiteľov

Mnoho neziskových organizácií potrebuje súčasne udržiavať niekoľko domén alebo subdomén (napríklad hlavnú webovú stránku a niekoľko vstupných stránok pre propagačné kampane atď.). To všetko je možné pohodlne umiestniť na jeden server vytvorením niekoľkých virtuálnych hostiteľov.

Najprv musíme vytvoriť adresárovú štruktúru pre stránky, ktoré sa budú zobrazovať návštevníkom. Vytvoríme niekoľko adresárov:

$ sudo mkdir -p /var/www/a-dobra.ru/public_html

$ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html

A zadajte vlastníka aktuálneho používateľa:

$ sudo chown -R $USER:$USER /var/www/a-dobra.ru/public_html

$ sudo chown -R $USER:$USER /var/www/promo.a-dobra.ru/public_html

Variabilné $USER obsahuje používateľské meno, pod ktorým ste momentálne prihlásený (štandardne ide o používateľa ubuntu). Teraz aktuálny používateľ vlastní adresáre public_html, do ktorých budeme ukladať obsah.

Musíme tiež trochu upraviť povolenia, aby sme sa uistili, že prístup na čítanie je povolený k zdieľanému webovému adresáru a všetkým súborom a priečinkom, ktoré obsahuje. Toto je potrebné na správne zobrazenie stránok lokality:

$ sudo chmod -R 755 /var/www

Váš webový server by teraz mal mať povolenia, ktoré potrebuje na zobrazenie obsahu. Okrem toho má váš používateľ teraz možnosť vytvárať obsah v požadovaných adresároch.

V adresári /var/www/html už je súbor index.php, skopírujeme ho do našich nových adresárov - toto bude zatiaľ náš obsah:

$ cp /var/www/html/index.php /var/www/a-dobra.ru/public_html/index.php

$ cp /var/www/html/index.php /var/www/promo.a-dobra.ru/public_html/index.php

Teraz sa musíte uistiť, že používateľ má prístup k vašej lokalite. Aby sme to urobili, najprv nakonfigurujeme súbory virtuálneho hostiteľa, ktoré určujú, ako bude webový server Apache reagovať na požiadavky do rôznych domén.

V predvolenom nastavení má Apache súbor virtuálneho hostiteľa 000-default.conf, ktorý môžeme použiť ako východiskový bod. Skopírujeme to, aby sme vytvorili súbory virtuálneho hostiteľa pre každú z našich domén. Začneme s jednou doménou, nakonfigurujeme ju, skopírujeme do inej domény a potom znova vykonáme potrebné úpravy.

Predvolená konfigurácia Ubuntu vyžaduje, aby mal každý súbor virtuálneho hostiteľa príponu *.conf.

Začnime skopírovaním súboru pre prvú doménu:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf

Otvorte nový súbor v editore s právami root:

$ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf

Upravte údaje nasledovne, špecifikujte port 80, pre ktorý sú vaše údaje ServerAdmin, ServerName, ServerAlias, ako aj cestu ku koreňovému adresáru vašej lokality uložte súbor (Ctrl+X, potom Y):

<VirtualHost *:80>
 
    ServerAdmin [email protected]
    ServerName a-dobra.ru
    ServerAlias www.a-dobra.ru
 
    DocumentRoot /var/www/a-dobra.ru/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    <Directory /var/www/a-dobra.ru/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
 
    <FilesMatch .php$>
        SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
    </FilesMatch>
 
</VirtualHost>

ServerName nastavuje primárnu doménu, ktorá sa musí zhodovať s názvom virtuálneho hostiteľa. Toto musí byť názov vašej domény. po druhé, ServerAlias, definuje ďalšie názvy, ktoré by sa mali interpretovať, ako keby išlo o primárnu doménu. To je vhodné na používanie ďalších názvov domén, napríklad pomocou www.

Skopírujeme túto konfiguráciu pre iného hostiteľa a tiež ju upravíme rovnakým spôsobom:

$ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf

Môžete vytvoriť toľko adresárov a virtuálnych hostiteľov pre svoje webové stránky, koľko chcete! Teraz, keď sme vytvorili súbory virtuálneho hostiteľa, ich musíme povoliť. Pomocou nástroja a2ensite môžeme povoliť každú z našich stránok, ako je táto:

$ sudo a2ensite a-dobra.ru.conf

$ sudo a2ensite promo.a-dobra.ru.conf 

Štandardne je port 80 v LAMP zatvorený a neskôr ho budeme potrebovať na inštaláciu SSL certifikátu. Okamžite teda upravme súbor ports.conf a potom reštartujeme Apache:

$ sudo nano /etc/apache2/ports.conf

Pridajte nový riadok a uložte súbor, aby vyzeral takto:

Listen 80
Listen 443
Listen 9997

Po dokončení nastavení musíte reštartovať Apache, aby sa všetky zmeny prejavili:

$ sudo systemctl reload apache2

Krok 3: Nastavte názvy domén

Ďalej musíte pridať záznamy DNS, ktoré budú smerovať na váš nový server. Na správu domén naša nadácia Aritmetika dobra využíva službu dns-master.ru, ukážeme si to na príklade.

Nastavenie A-záznamu pre hlavnú doménu je zvyčajne označené nasledovne (sign @):

Cloud for Charities: Migration Guide
Záznam A pre subdomény je zvyčajne špecifikovaný takto:

Cloud for Charities: Migration Guide
Adresa IP je adresa servera Linux, ktorý sme práve vytvorili. Môžete zadať TTL = 3600.

Po určitom čase bude možné navštíviť vašu stránku, ale zatiaľ iba prostredníctvom http://. V ďalšom kroku pridáme podporu https://.

Krok 4: Nastavte si bezplatné certifikáty SSL

Môžete získať bezplatné certifikáty Let's Encrypt SSL pre vašu hlavnú stránku a všetky subdomény. Môžete tiež nakonfigurovať ich automatické obnovenie, čo je veľmi pohodlné. Ak chcete získať certifikáty SSL, nainštalujte si Certbot na svoj server:

$ sudo add-apt-repository ppa:certbot/certbot

Nainštalujte balík Certbot pre Apache pomocou apt:

$ sudo apt install python-certbot-apache 

Teraz je Certbot pripravený na použitie, spustite príkaz:

$ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru

Tento príkaz spustí certbot, keys -d definovať názvy domén, pre ktoré má byť certifikát vydaný.

Ak je to prvýkrát, čo spúšťate certbota, budete požiadaní, aby ste zadali svoju e-mailovú adresu a vyjadrili súhlas s podmienkami používania služby. certbot potom kontaktuje server Let's Encrypt a overí, či skutočne ovládate doménu, pre ktorú ste certifikát žiadali.

Ak všetko prebehlo dobre, certbot sa opýta, ako chcete nakonfigurovať konfiguráciu HTTPS:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Odporúčame vybrať možnosť 2 a stlačiť ENTER. Konfigurácia sa aktualizuje a Apache sa reštartuje, aby sa zmeny uplatnili.

Vaše certifikáty sú teraz stiahnuté, nainštalované a fungujú. Skúste znova načítať svoje stránky s https:// a vo vašom prehliadači sa zobrazí ikona zabezpečenia. Ak otestujete svoj server Test servera SSL Labs, dostane známku A.

Certifikáty Let's Encrypt sú platné iba 90 dní, ale balík certbot, ktorý sme práve nainštalovali, automaticky obnoví certifikáty. Ak chcete otestovať proces aktualizácie, môžeme spustiť certbot:

$ sudo certbot renew --dry-run 

Ak v dôsledku spustenia tohto príkazu nevidíte žiadne chyby, potom všetko funguje!

Krok 5: Prístup k MySQL a phpMyAdmin

Mnoho webových stránok používa databázy. Nástroj phpMyAdmin na správu databázy je už nainštalovaný na našom serveri. Ak ho chcete získať, prejdite do prehliadača pomocou odkazu, ako napríklad:

https://<ip-адрес сервера>:9997

Heslo pre root prístup môžete získať vo svojom osobnom účte MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Pri prvom prihlásení nezabudnite zmeniť svoje root heslo!

Krok 6: Nastavte nahrávanie súboru cez SFTP

Pre vývojárov bude pohodlné nahrávať súbory pre váš web cez SFTP. Za týmto účelom vytvoríme nového používateľa, nazývame ho správca webu:

$ sudo adduser webmaster

Systém vás požiada o nastavenie hesla a zadanie ďalších údajov.

Zmena vlastníka adresára s vašou webovou stránkou:

$ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html

Teraz zmeňme konfiguráciu SSH tak, aby mal nový používateľ prístup iba k SFTP a nie k terminálu SSH:

$ sudo nano /etc/ssh/sshd_config

Prejdite na úplný koniec konfiguračného súboru a pridajte nasledujúci blok:

Match User webmaster
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www/a-dobra.ru
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Uložte súbor a reštartujte službu:

$ sudo systemctl restart sshd

Teraz sa môžete pripojiť k serveru prostredníctvom akéhokoľvek klienta SFTP, napríklad cez FileZilla.

Celkový

  1. Teraz viete, ako vytvárať nové adresáre a konfigurovať virtuálnych hostiteľov pre vaše webové stránky v rámci toho istého servera.
  2. Potrebné SSL certifikáty si vytvoríte jednoducho – je to zadarmo a budú sa automaticky aktualizovať.
  3. S databázou MySQL môžete pohodlne pracovať cez známy phpMyAdmin.
  4. Vytvorenie nových účtov SFTP a nastavenie prístupových práv si nevyžaduje veľa úsilia. Takéto účty je možné preniesť na webové vývojárov a správcov stránok tretích strán.
  5. Nezabudnite pravidelne aktualizovať systém a tiež odporúčame robiť zálohy - v MCS môžete jedným kliknutím urobiť „snímky“ celého systému a v prípade potreby spustiť celé obrázky.

Použité zdroje, ktoré môžu byť užitočné:

https://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru
https://www.digitalocean.com/community/tutorials/apache-let-s-encrypt-ubuntu-18-04-ru
https://www.digitalocean.com/community/tutorials/how-to-enable-sftp-without-shell-access-on-ubuntu-18-04

Mimochodom, tu Na VC si môžete prečítať, ako naša nadácia nasadila platformu pre online vzdelávanie pre siroty založenú na cloude MCS.

Zdroj: hab.com

Pridať komentár