Cloud for Charities: Guia de migració

Cloud for Charities: Guia de migració

No fa molt, Mail.Ru Cloud Solutions (MCS) i el servei Dobro Mail.Ru van llançar el projecte "Núvol per a organitzacions benèfiques”, gràcies a la qual les organitzacions sense ànim de lucre poden obtenir els recursos de la plataforma al núvol MCS de forma gratuïta. Fundació Solidària"Aritmètica de la bondat» va participar en el projecte i va desplegar amb èxit part de la seva infraestructura basada en MCS.

Després de passar la validació, un NPO pot rebre capacitat virtual de MCS, però una configuració posterior requereix certes qualificacions. En aquest material, volem compartir instruccions específiques per configurar un servidor basat en Ubuntu Linux per executar el lloc web de la fundació principal i una sèrie de subdominis mitjançant certificats SSL gratuïts. Per a molts, aquesta serà una guia senzilla, però esperem que la nostra experiència sigui útil per a altres organitzacions sense ànim de lucre, i no només.

FYI: Què podeu obtenir de MCS? 4 CPU, 32 GB de RAM, 1 TB de disc dur, sistema operatiu Ubuntu Linux, 500 GB d'emmagatzematge d'objectes.

Pas 1: inicieu el servidor virtual

Anem directament al punt i creem el nostre servidor virtual (també conegut com a "instància") al vostre compte personal de MCS. A la botiga d'aplicacions, heu de seleccionar i instal·lar una pila LAMP preparada, que és un conjunt de programari de servidor (LAMP = Linux, Apache, MySQL, PHP) necessari per executar la majoria de llocs web.

Cloud for Charities: Guia de migració
Cloud for Charities: Guia de migració
Cloud for Charities: Guia de migració
Seleccioneu la configuració del servidor adequada i creeu una nova clau SSH. Després de fer clic al botó "Instal·la", començarà la instal·lació del servidor i la pila LAMP, això trigarà un temps. El sistema també us oferirà descarregar una clau privada al vostre ordinador per gestionar la màquina virtual a través de la consola, deseu-la.

Després d'instal·lar l'aplicació, configurem immediatament el tallafoc, això també es fa al vostre compte personal: aneu a la secció "Informàtica en núvol -> Màquines virtuals" i seleccioneu "Configuració del tallafoc":

Cloud for Charities: Guia de migració
Heu d'afegir permís per al trànsit entrant pel port 80 i 9997. Això és necessari en el futur per instal·lar certificats SSL i treballar amb phpMyAdmin. Com a resultat, el conjunt de regles hauria de ser així:

Cloud for Charities: Guia de migració
Ara us podeu connectar al vostre servidor mitjançant la línia d'ordres mitjançant el protocol SSH. Per fer-ho, escriviu la següent comanda, apuntant a la clau SSH del vostre ordinador i l'adreça IP externa del vostre servidor (la podeu trobar a la secció "Màquines virtuals"):

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

Quan us connecteu al servidor per primera vegada, es recomana instal·lar-hi totes les actualitzacions actuals i reiniciar-lo. Per fer-ho, executeu les ordres següents:

$ sudo apt-get update

El sistema rebrà una llista d'actualitzacions, les instal·larà amb aquesta ordre i seguirà les instruccions:

$ sudo apt-get upgrade

Després d'instal·lar les actualitzacions, reinicieu el servidor:

$ sudo reboot

Pas 2: configureu els amfitrions virtuals

Moltes organitzacions sense ànim de lucre necessiten mantenir diversos dominis o subdominis alhora (per exemple, un lloc web principal i diverses pàgines de destinació per a campanyes promocionals, etc.). Tot això es pot col·locar còmodament en un servidor mitjançant la creació de diversos amfitrions virtuals.

Primer hem de crear una estructura de directoris per als llocs que es mostraran als visitants. Creem alguns directoris:

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

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

I especifiqueu el propietari de l'usuari actual:

$ 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

Variable $USER conté el nom d'usuari amb el qual esteu connectat actualment (per defecte aquest és l'usuari ubuntu). Ara l'usuari actual és propietari dels directoris public_html on emmagatzemarem el contingut.

També hem d'editar una mica els permisos per assegurar-nos que es permet l'accés de lectura al directori web compartit i a tots els fitxers i carpetes que conté. Això és necessari perquè les pàgines del lloc es mostrin correctament:

$ sudo chmod -R 755 /var/www

Ara el vostre servidor web hauria de tenir els permisos necessaris per mostrar el contingut. A més, ara el vostre usuari té la possibilitat de crear contingut als directoris necessaris.

Ja hi ha un fitxer index.php al directori /var/www/html, copiem-lo als nostres directoris nous; aquest serà el nostre contingut de moment:

$ 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

Ara heu d'assegurar-vos que l'usuari pugui accedir al vostre lloc. Per fer-ho, primer configurarem els fitxers d'amfitrió virtual, que determinen com respondrà el servidor web Apache a les sol·licituds a diferents dominis.

Per defecte, Apache té un fitxer d'amfitrió virtual 000-default.conf que podem utilitzar com a punt de partida. Ho copiarem per crear fitxers d'amfitrió virtual per a cadascun dels nostres dominis. Començarem amb un domini, el configurarem, el copiarem a un altre domini i després tornarem a fer les modificacions necessàries.

La configuració predeterminada d'Ubuntu requereix que cada fitxer d'amfitrió virtual tingui una extensió *.conf.

Comencem copiant el fitxer del primer domini:

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

Obriu un fitxer nou en un editor amb drets d'arrel:

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

Editeu les dades de la següent manera, especificant el port 80, per a les vostres dades ServerAdmin, ServerName, ServerAlias, així com la ruta al directori arrel del vostre lloc, deseu el fitxer (Ctrl+X, després 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 estableix el domini principal, que ha de coincidir amb el nom d'amfitrió virtual. Aquest ha de ser el vostre nom de domini. En segon lloc, ServerAlias, defineix altres noms que s'han d'interpretar com si fos el domini principal. Això és convenient per utilitzar noms de domini addicionals, per exemple, utilitzar www.

Copiem aquesta configuració per a un altre amfitrió i editem-la de la mateixa manera:

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

Podeu crear tants directoris i amfitrions virtuals per als vostres llocs web com vulgueu! Ara que hem creat els nostres fitxers d'amfitrió virtual, hem d'habilitar-los. Podem utilitzar la utilitat a2ensite per habilitar cadascun dels nostres llocs així:

$ sudo a2ensite a-dobra.ru.conf

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

Per defecte, el port 80 està tancat a LAMP, i el necessitarem més endavant per instal·lar un certificat SSL. Per tant, editem immediatament el fitxer ports.conf i reiniciem Apache:

$ sudo nano /etc/apache2/ports.conf

Afegiu una línia nova i deseu el fitxer perquè quedi així:

Listen 80
Listen 443
Listen 9997

Després de completar la configuració, heu de reiniciar Apache perquè tots els canvis tinguin efecte:

$ sudo systemctl reload apache2

Pas 3: configureu els noms de domini

A continuació, heu d'afegir registres DNS que apunten al vostre nou servidor. Per gestionar dominis, la nostra Arithmetic of Good Foundation utilitza el servei dns-master.ru, ho mostrarem amb un exemple.

La configuració d'un registre A per al domini principal s'indica normalment de la següent manera (signe @):

Cloud for Charities: Guia de migració
El registre A per als subdominis normalment s'especifica així:

Cloud for Charities: Guia de migració
L'adreça IP és l'adreça del servidor Linux que acabem de crear. Podeu especificar TTL = 3600.

Després d'un temps, serà possible visitar el vostre lloc, però de moment només a través http://. En el següent pas afegirem suport https://.

Pas 4: configureu els certificats SSL gratuïts

Podeu obtenir certificats SSL de Let's Encrypt gratuïts per al vostre lloc principal i tots els subdominis. També podeu configurar la seva renovació automàtica, que és molt convenient. Per obtenir certificats SSL, instal·leu Certbot al vostre servidor:

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

Instal·leu el paquet Certbot per a Apache mitjançant apt:

$ sudo apt install python-certbot-apache 

Ara Certbot està llest per utilitzar, executeu l'ordre:

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

Aquesta ordre executa certbot, keys -d definir els noms dels dominis per als quals s'ha d'emetre el certificat.

Si és la primera vegada que inicieu certbot, se us demanarà que introduïu la vostra adreça de correu electrònic i accepteu les condicions d'ús del servei. certbot es posarà en contacte amb el servidor Let's Encrypt i verificarà que realment controleu el domini per al qual heu sol·licitat el certificat.

Si tot ha anat bé, certbot us preguntarà com voleu configurar la configuració 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):

Recomanem seleccionar l'opció 2 i prémer INTRO. La configuració s'actualitzarà i Apache es reiniciarà per aplicar els canvis.

Els vostres certificats ja s'han descarregat, instal·lat i funcionant. Proveu de tornar a carregar el vostre lloc amb https:// i veureu la icona de seguretat al vostre navegador. Si proveu el vostre servidor Prova del servidor SSL Labs, rebrà una nota A.

Els certificats de Let's Encrypt només són vàlids durant 90 dies, però el paquet certbot que acabem d'instal·lar renovarà els certificats automàticament. Per provar el procés d'actualització, podem fer una execució en sec de certbot:

$ sudo certbot renew --dry-run 

Si no veieu cap error com a resultat de l'execució d'aquesta ordre, tot funciona!

Pas 5: accediu a MySQL i phpMyAdmin

Molts llocs web utilitzen bases de dades. L'eina phpMyAdmin per a la gestió de bases de dades ja està instal·lada al nostre servidor. Per accedir-hi, aneu al vostre navegador mitjançant un enllaç com:

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

La contrasenya per a l'accés root es pot obtenir al vostre compte personal de MCS (https://mcs.mail.ru/app/services/marketplace/apps/). No oblideu canviar la contrasenya d'arrel la primera vegada que inicieu sessió!

Pas 6: configureu la càrrega de fitxers mitjançant SFTP

Els desenvolupadors trobaran convenient penjar fitxers per al vostre lloc web mitjançant SFTP. Per fer-ho, crearem un nou usuari, anomenar-lo webmaster:

$ sudo adduser webmaster

El sistema us demanarà que configureu una contrasenya i introduïu altres dades.

Canviar el propietari del directori amb el vostre lloc web:

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

Ara canviem la configuració SSH perquè el nou usuari només tingui accés a SFTP i no al terminal SSH:

$ sudo nano /etc/ssh/sshd_config

Desplaceu-vos fins al final del fitxer de configuració i afegiu el bloc següent:

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

Deseu el fitxer i reinicieu el servei:

$ sudo systemctl restart sshd

Ara us podeu connectar al servidor mitjançant qualsevol client SFTP, per exemple, a través de FileZilla.

Total

  1. Ara ja saps com crear nous directoris i configurar amfitrions virtuals per als teus llocs web dins del mateix servidor.
  2. Podeu crear fàcilment els certificats SSL necessaris: és gratuït i s'actualitzaran automàticament.
  3. Podeu treballar còmodament amb la base de dades MySQL mitjançant el familiar phpMyAdmin.
  4. La creació de nous comptes SFTP i la configuració de drets d'accés no requereixen gaire esforç. Aquests comptes es poden transferir a desenvolupadors web i administradors de llocs de tercers.
  5. No us oblideu d'actualitzar periòdicament el sistema i també us recomanem fer còpies de seguretat: a MCS podeu fer "instantànies" de tot el sistema amb un sol clic i, si cal, llançar imatges senceres.

Recursos utilitzats que poden ser útils:

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

Per cert, aquí Podeu llegir a VC com la nostra fundació va desplegar una plataforma d'educació en línia per a orfes basada en el núvol MCS.

Font: www.habr.com

Afegeix comentari