Cloud for Charities: Migration Guide

Cloud for Charities: Migration Guide

Πριν από λίγο καιρό, η Mail.Ru Cloud Solutions (MCS) και η υπηρεσία Dobro Mail.Ru ξεκίνησαν το έργο "Σύννεφο για φιλανθρωπικά ιδρύματα”, χάρη στην οποία οι μη κερδοσκοπικοί οργανισμοί μπορούν να αποκτήσουν δωρεάν τους πόρους της πλατφόρμας cloud MCS. Φιλανθρωπικό ίδρυμα "Αριθμητική της καλοσύνης» συμμετείχε στο έργο και ανέπτυξε με επιτυχία μέρος της υποδομής του που βασίζεται στο MCS.

Αφού περάσει την επικύρωση, ένα NPO μπορεί να λάβει εικονική χωρητικότητα από το MCS, αλλά η περαιτέρω διαμόρφωση απαιτεί ορισμένα προσόντα. Σε αυτό το υλικό, θέλουμε να μοιραστούμε συγκεκριμένες οδηγίες για τη ρύθμιση ενός διακομιστή που βασίζεται σε Ubuntu Linux για να τρέξει τον κύριο ιστότοπο του ιδρύματος και έναν αριθμό υποτομέων χρησιμοποιώντας δωρεάν πιστοποιητικά SSL. Για πολλούς, αυτός θα είναι ένας απλός οδηγός, αλλά ελπίζουμε ότι η εμπειρία μας θα είναι χρήσιμη για άλλους μη κερδοσκοπικούς οργανισμούς, και όχι μόνο.

FYI: Τι μπορείτε να πάρετε από το MCS; 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB αποθήκευση αντικειμένων.

Βήμα 1: εκκινήστε τον εικονικό διακομιστή

Ας πάμε κατευθείαν στο θέμα και ας δημιουργήσουμε τον εικονικό μας διακομιστή (γνωστός και ως "παράδειγμα") στον προσωπικό σας λογαριασμό MCS. Στο κατάστημα εφαρμογών, πρέπει να επιλέξετε και να εγκαταστήσετε μια έτοιμη στοίβα LAMP, η οποία είναι ένα σύνολο λογισμικού διακομιστή (LAMP = Linux, Apache, MySQL, PHP) που είναι απαραίτητο για την εκτέλεση των περισσότερων ιστοτόπων.

Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Επιλέξτε την κατάλληλη διαμόρφωση διακομιστή και δημιουργήστε ένα νέο κλειδί SSH. Αφού κάνετε κλικ στο κουμπί "Εγκατάσταση", θα ξεκινήσει η εγκατάσταση του διακομιστή και της στοίβας LAMP, αυτό θα πάρει λίγο χρόνο. Το σύστημα θα προσφέρει επίσης τη λήψη ενός ιδιωτικού κλειδιού στον υπολογιστή σας για τη διαχείριση της εικονικής μηχανής μέσω της κονσόλας, αποθηκεύστε το.

Μετά την εγκατάσταση της εφαρμογής, ας ρυθμίσουμε αμέσως το τείχος προστασίας, αυτό γίνεται και στον προσωπικό σας λογαριασμό: μεταβείτε στην ενότητα «Cloud computing -> Virtual machines» και επιλέξτε «Ρύθμιση του τείχους προστασίας»:

Cloud for Charities: Migration Guide
Πρέπει να προσθέσετε άδεια για την εισερχόμενη κίνηση μέσω της θύρας 80 και 9997. Αυτό είναι απαραίτητο στο μέλλον για να εγκαταστήσετε πιστοποιητικά SSL και να εργαστείτε με το phpMyAdmin. Ως αποτέλεσμα, το σύνολο κανόνων θα πρέπει να μοιάζει με αυτό:

Cloud for Charities: Migration Guide
Τώρα μπορείτε να συνδεθείτε στον διακομιστή σας μέσω της γραμμής εντολών χρησιμοποιώντας το πρωτόκολλο SSH. Για να το κάνετε αυτό, πληκτρολογήστε την ακόλουθη εντολή, δείχνοντας το κλειδί SSH στον υπολογιστή σας και την εξωτερική διεύθυνση IP του διακομιστή σας (μπορείτε να τη βρείτε στην ενότητα "Εικονικές μηχανές"):

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

Όταν συνδέεστε στον διακομιστή για πρώτη φορά, συνιστάται να εγκαταστήσετε όλες τις τρέχουσες ενημερώσεις σε αυτόν και να τον επανεκκινήσετε. Για να το κάνετε αυτό, εκτελέστε τις ακόλουθες εντολές:

$ sudo apt-get update

Το σύστημα θα λάβει μια λίστα με ενημερώσεις, θα τις εγκαταστήσει χρησιμοποιώντας αυτήν την εντολή και θα ακολουθήσει τις οδηγίες:

$ sudo apt-get upgrade

Μετά την εγκατάσταση των ενημερώσεων, επανεκκινήστε τον διακομιστή:

$ sudo reboot

Βήμα 2: Ρύθμιση εικονικών κεντρικών υπολογιστών

Πολλοί μη κερδοσκοπικοί οργανισμοί πρέπει να διατηρούν πολλούς τομείς ή υποτομείς ταυτόχρονα (για παράδειγμα, έναν κύριο ιστότοπο και πολλές σελίδες προορισμού για διαφημιστικές καμπάνιες κ.λπ.). Όλα αυτά μπορούν εύκολα να τοποθετηθούν σε έναν διακομιστή δημιουργώντας πολλούς εικονικούς κεντρικούς υπολογιστές.

Πρώτα πρέπει να δημιουργήσουμε μια δομή καταλόγου για τους ιστότοπους που θα εμφανίζονται στους επισκέπτες. Ας δημιουργήσουμε μερικούς καταλόγους:

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

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

Και καθορίστε τον κάτοχο του τρέχοντος χρήστη:

$ 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

Μεταβλητή $USER περιέχει το όνομα χρήστη με το οποίο είστε συνδεδεμένοι αυτήν τη στιγμή (από προεπιλογή αυτός είναι ο χρήστης ubuntu). Τώρα ο τρέχων χρήστης κατέχει τους καταλόγους public_html όπου θα αποθηκεύσουμε το περιεχόμενο.

Πρέπει επίσης να επεξεργαστούμε λίγο τα δικαιώματα για να βεβαιωθούμε ότι επιτρέπεται η πρόσβαση ανάγνωσης στον κοινόχρηστο κατάλογο ιστού και σε όλα τα αρχεία και τους φακέλους που περιέχει. Αυτό είναι απαραίτητο για να εμφανίζονται σωστά οι σελίδες του ιστότοπου:

$ sudo chmod -R 755 /var/www

Ο διακομιστής ιστού σας θα πρέπει τώρα να έχει τα δικαιώματα που χρειάζεται για να εμφανίσει το περιεχόμενο. Επιπλέον, ο χρήστης σας έχει πλέον τη δυνατότητα να δημιουργεί περιεχόμενο στους απαιτούμενους καταλόγους.

Υπάρχει ήδη ένα αρχείο index.php στον κατάλογο /var/www/html, ας το αντιγράψουμε στους νέους μας καταλόγους - αυτό θα είναι το περιεχόμενό μας προς το παρόν:

$ 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

Τώρα πρέπει να βεβαιωθείτε ότι ο χρήστης μπορεί να έχει πρόσβαση στον ιστότοπό σας. Για να γίνει αυτό, θα διαμορφώσουμε πρώτα τα αρχεία εικονικού κεντρικού υπολογιστή, τα οποία καθορίζουν τον τρόπο με τον οποίο ο διακομιστής ιστού Apache θα ανταποκρίνεται σε αιτήματα σε διαφορετικούς τομείς.

Από προεπιλογή, ο Apache έχει ένα εικονικό αρχείο κεντρικού υπολογιστή 000-default.conf που μπορούμε να χρησιμοποιήσουμε ως σημείο εκκίνησης. Θα το αντιγράψουμε για να δημιουργήσουμε εικονικά αρχεία κεντρικού υπολογιστή για κάθε τομέα μας. Θα ξεκινήσουμε με έναν τομέα, θα τον διαμορφώσουμε, θα τον αντιγράψουμε σε έναν άλλο τομέα και, στη συνέχεια, θα κάνουμε ξανά τις απαραίτητες αλλαγές.

Η προεπιλεγμένη διαμόρφωση του Ubuntu απαιτεί κάθε αρχείο εικονικού κεντρικού υπολογιστή να έχει επέκταση *.conf.

Ας ξεκινήσουμε αντιγράφοντας το αρχείο για τον πρώτο τομέα:

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

Ανοίξτε ένα νέο αρχείο σε ένα πρόγραμμα επεξεργασίας με δικαιώματα root:

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

Επεξεργαστείτε τα δεδομένα ως εξής, προσδιορίζοντας τη θύρα 80, τα δεδομένα σας για ServerAdmin, ServerName, ServerAlias, καθώς και τη διαδρομή προς τον ριζικό κατάλογο του ιστότοπού σας, αποθηκεύστε το αρχείο (Ctrl+X και μετά 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 ορίζει τον κύριο τομέα, ο οποίος πρέπει να ταιριάζει με το όνομα εικονικού κεντρικού υπολογιστή. Αυτό πρέπει να είναι το όνομα τομέα σας. Δεύτερος, ServerAlias, ορίζει άλλα ονόματα που πρέπει να ερμηνεύονται σαν να ήταν ο κύριος τομέας. Αυτό είναι βολικό για τη χρήση πρόσθετων ονομάτων τομέα, για παράδειγμα χρησιμοποιώντας το www.

Ας αντιγράψουμε αυτήν τη διαμόρφωση για έναν άλλο κεντρικό υπολογιστή και ας την επεξεργαστούμε επίσης με τον ίδιο τρόπο:

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

Μπορείτε να δημιουργήσετε όσους καταλόγους και εικονικούς κεντρικούς υπολογιστές για τους ιστότοπούς σας θέλετε! Τώρα που δημιουργήσαμε τα εικονικά αρχεία κεντρικού υπολογιστή μας, πρέπει να τα ενεργοποιήσουμε. Μπορούμε να χρησιμοποιήσουμε το βοηθητικό πρόγραμμα a2ensite για να ενεργοποιήσουμε κάθε έναν από τους ιστότοπούς μας ως εξής:

$ sudo a2ensite a-dobra.ru.conf

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

Από προεπιλογή, η θύρα 80 είναι κλειστή σε LAMP και θα τη χρειαστούμε αργότερα για να εγκαταστήσουμε ένα πιστοποιητικό SSL. Ας επεξεργαστούμε λοιπόν αμέσως το αρχείο ports.conf και, στη συνέχεια, ας επανεκκινήσουμε τον Apache:

$ sudo nano /etc/apache2/ports.conf

Προσθέστε μια νέα γραμμή και αποθηκεύστε το αρχείο έτσι ώστε να μοιάζει με αυτό:

Listen 80
Listen 443
Listen 9997

Αφού ολοκληρώσετε τις ρυθμίσεις, πρέπει να κάνετε επανεκκίνηση του Apache για να τεθούν σε ισχύ όλες οι αλλαγές:

$ sudo systemctl reload apache2

Βήμα 3: Ρύθμιση ονομάτων τομέα

Στη συνέχεια, πρέπει να προσθέσετε εγγραφές DNS που θα οδηγούν στον νέο διακομιστή σας. Για τη διαχείριση τομέων, το Arithmetic of Good Foundation χρησιμοποιεί την υπηρεσία dns-master.ru, θα το δείξουμε με ένα παράδειγμα.

Η ρύθμιση μιας εγγραφής A για τον κύριο τομέα συνήθως υποδεικνύεται ως εξής (σύμβολο @):

Cloud for Charities: Migration Guide
Η εγγραφή A για υποτομείς καθορίζεται συνήθως ως εξής:

Cloud for Charities: Migration Guide
Η διεύθυνση IP είναι η διεύθυνση του διακομιστή Linux που μόλις δημιουργήσαμε. Μπορείτε να καθορίσετε TTL = 3600.

Μετά από κάποιο χρονικό διάστημα, θα είναι δυνατή η επίσκεψη στον ιστότοπό σας, αλλά προς το παρόν μόνο μέσω http://. Στο επόμενο βήμα θα προσθέσουμε υποστήριξη https://.

Βήμα 4: Ρυθμίστε δωρεάν πιστοποιητικά SSL

Μπορείτε να λάβετε δωρεάν πιστοποιητικά Let's Encrypt SSL για τον κύριο ιστότοπο και όλους τους υποτομείς. Μπορείτε επίσης να διαμορφώσετε την αυτόματη ανανέωσή τους, κάτι που είναι πολύ βολικό. Για να αποκτήσετε πιστοποιητικά SSL, εγκαταστήστε το Certbot στον διακομιστή σας:

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

Εγκαταστήστε το πακέτο Certbot για Apache χρησιμοποιώντας apt:

$ sudo apt install python-certbot-apache 

Τώρα το Certbot είναι έτοιμο για χρήση, εκτελέστε την εντολή:

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

Αυτή η εντολή εκτελεί το certbot, keys -d ορίστε τα ονόματα των τομέων για τους οποίους πρέπει να εκδοθεί το πιστοποιητικό.

Εάν αυτή είναι η πρώτη φορά που εκκινείτε το certbot, θα σας ζητηθεί να εισαγάγετε τη διεύθυνση email σας και να συμφωνήσετε με τους όρους χρήσης της υπηρεσίας. Στη συνέχεια, το certbot θα επικοινωνήσει με τον διακομιστή Let's Encrypt και στη συνέχεια θα επαληθεύσει ότι ελέγχετε πραγματικά τον τομέα για τον οποίο ζητήσατε το πιστοποιητικό.

Εάν όλα πήγαν καλά, το certbot θα σας ρωτήσει πώς θέλετε να διαμορφώσετε τη διαμόρφωση 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):

Συνιστούμε να επιλέξετε την επιλογή 2 και να πατήσετε ENTER. Η διαμόρφωση θα ενημερωθεί και ο Apache θα επανεκκινηθεί για να εφαρμοστούν οι αλλαγές.

Τα πιστοποιητικά σας έχουν πλέον ληφθεί, εγκατασταθεί και λειτουργούν. Δοκιμάστε να φορτώσετε ξανά τον ιστότοπό σας με https:// και θα δείτε το εικονίδιο ασφαλείας στο πρόγραμμα περιήγησής σας. Εάν δοκιμάσετε τον διακομιστή σας Δοκιμή διακομιστή SSL Labs, θα λάβει βαθμό Α.

Τα πιστοποιητικά Let's Encrypt ισχύουν μόνο για 90 ημέρες, αλλά το πακέτο certbot που μόλις εγκαταστήσαμε θα ανανεώσει τα πιστοποιητικά αυτόματα. Για να δοκιμάσουμε τη διαδικασία ενημέρωσης, μπορούμε να κάνουμε μια στεγνή εκτέλεση του certbot:

$ sudo certbot renew --dry-run 

Εάν δεν βλέπετε σφάλματα ως αποτέλεσμα της εκτέλεσης αυτής της εντολής, τότε όλα λειτουργούν!

Βήμα 5: Πρόσβαση στο MySQL και στο phpMyAdmin

Πολλοί ιστότοποι χρησιμοποιούν βάσεις δεδομένων. Το εργαλείο phpMyAdmin για τη διαχείριση της βάσης δεδομένων είναι ήδη εγκατεστημένο στον διακομιστή μας. Για πρόσβαση σε αυτό, μεταβείτε στο πρόγραμμα περιήγησής σας χρησιμοποιώντας έναν σύνδεσμο όπως:

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

Μπορείτε να λάβετε τον κωδικό πρόσβασης root στον προσωπικό σας λογαριασμό MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Μην ξεχάσετε να αλλάξετε τον κωδικό πρόσβασης root την πρώτη φορά που θα συνδεθείτε!

Βήμα 6: Ρυθμίστε τη μεταφόρτωση αρχείων μέσω SFTP

Οι προγραμματιστές θα βρουν βολικό να ανεβάζουν αρχεία για τον ιστότοπό σας μέσω SFTP. Για να γίνει αυτό, θα δημιουργήσουμε έναν νέο χρήστη, τον αποκαλούμε webmaster:

$ sudo adduser webmaster

Το σύστημα θα σας ζητήσει να ορίσετε έναν κωδικό πρόσβασης και να εισαγάγετε κάποια άλλα δεδομένα.

Αλλαγή του κατόχου του καταλόγου με τον ιστότοπό σας:

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

Τώρα ας αλλάξουμε τη διαμόρφωση SSH έτσι ώστε ο νέος χρήστης να έχει πρόσβαση μόνο στο SFTP και όχι στο τερματικό SSH:

$ sudo nano /etc/ssh/sshd_config

Κάντε κύλιση μέχρι το τέλος του αρχείου ρυθμίσεων και προσθέστε το ακόλουθο μπλοκ:

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

Αποθηκεύστε το αρχείο και επανεκκινήστε την υπηρεσία:

$ sudo systemctl restart sshd

Τώρα μπορείτε να συνδεθείτε στον διακομιστή μέσω οποιουδήποτε προγράμματος-πελάτη SFTP, για παράδειγμα, μέσω του FileZilla.

Σύνολο

  1. Τώρα ξέρετε πώς να δημιουργείτε νέους καταλόγους και να διαμορφώνετε εικονικούς κεντρικούς υπολογιστές για τους ιστότοπούς σας στον ίδιο διακομιστή.
  2. Μπορείτε εύκολα να δημιουργήσετε τα απαραίτητα πιστοποιητικά SSL - είναι δωρεάν και θα ενημερωθούν αυτόματα.
  3. Μπορείτε να εργαστείτε άνετα με τη βάση δεδομένων MySQL μέσω του γνωστού phpMyAdmin.
  4. Η δημιουργία νέων λογαριασμών SFTP και η ρύθμιση δικαιωμάτων πρόσβασης δεν απαιτεί μεγάλη προσπάθεια. Τέτοιοι λογαριασμοί μπορούν να μεταφερθούν σε τρίτους προγραμματιστές ιστού και διαχειριστές ιστότοπων.
  5. Μην ξεχνάτε να ενημερώνετε περιοδικά το σύστημα και συνιστούμε επίσης να δημιουργείτε αντίγραφα ασφαλείας - στο MCS μπορείτε να τραβήξετε "στιγμιότυπα" ολόκληρου του συστήματος με ένα κλικ και στη συνέχεια, εάν είναι απαραίτητο, να εκκινήσετε ολόκληρες εικόνες.

Χρησιμοποιημένοι πόροι που μπορεί να είναι χρήσιμοι:

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

παρεμπιπτόντως, εδώ Μπορείτε να διαβάσετε στο VC πώς το ίδρυμά μας ανέπτυξε μια πλατφόρμα διαδικτυακής εκπαίδευσης για ορφανά με βάση το σύννεφο MCS.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο