Hayır Kurumları için Bulut: Geçiş Kılavuzu

Hayır Kurumları için Bulut: Geçiş Kılavuzu

Kısa bir süre önce Mail.Ru Bulut Çözümleri (MCS) ve Dobro Mail.Ru hizmeti projeyi başlattı “Hayır kurumları için bulut”, kar amacı gütmeyen kuruluşların MCS bulut platformunun kaynaklarını ücretsiz olarak elde edebilmeleri sayesinde. Yardım kuruluşu "İyiliğin aritmetiği» projede yer aldı ve MCS tabanlı altyapısının bir kısmını başarıyla devreye aldı.

Doğrulamayı geçtikten sonra bir NPO, MCS'den sanal kapasite alabilir, ancak daha fazla yapılandırma belirli nitelikler gerektirir. Bu materyalde, ana temel web sitesini ve bir dizi alt etki alanını ücretsiz SSL sertifikaları kullanarak çalıştıracak Ubuntu Linux tabanlı bir sunucu kurmaya yönelik özel talimatları paylaşmak istiyoruz. Çoğu kişi için bu basit bir rehber olacaktır, ancak deneyimlerimizin yalnızca diğer kar amacı gütmeyen kuruluşlar için de yararlı olacağını umuyoruz.

Bilginize: MCS'den neler alabilirsiniz? 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux İşletim Sistemi, 500 GB nesne depolama.

Adım 1: sanal sunucuyu başlatın

Doğrudan konuya geçelim ve MCS kişisel hesabınızda sanal sunucumuzu (“örnek” olarak da bilinir) oluşturalım. Uygulama mağazasında, çoğu web sitesini çalıştırmak için gerekli olan bir dizi sunucu yazılımı (LAMP = Linux, Apache, MySQL, PHP) olan hazır bir LAMP yığınını seçip yüklemeniz gerekir.

Hayır Kurumları için Bulut: Geçiş Kılavuzu
Hayır Kurumları için Bulut: Geçiş Kılavuzu
Hayır Kurumları için Bulut: Geçiş Kılavuzu
Uygun sunucu yapılandırmasını seçin ve yeni bir SSH anahtarı oluşturun. “Yükle” butonuna tıkladıktan sonra sunucu ve LAMP yığınının kurulumu başlayacaktır, bu biraz zaman alacaktır. Sistem ayrıca sanal makineyi konsol üzerinden yönetmek için bilgisayarınıza özel bir anahtar indirmenizi, kaydetmenizi de önerecektir.

Uygulamayı yükledikten sonra hemen güvenlik duvarını kuralım, bu da kişisel hesabınızda yapılır: “Bulut bilişim -> Sanal makineler” bölümüne gidin ve “Güvenlik duvarını ayarlama” seçeneğini seçin:

Hayır Kurumları için Bulut: Geçiş Kılavuzu
80 ve 9997 numaralı bağlantı noktalarından gelen trafiğe izin eklemeniz gerekir. Bu gelecekte SSL sertifikalarını yüklemek ve phpMyAdmin ile çalışmak için gerekli olacaktır. Sonuç olarak, kurallar dizisi şöyle görünmelidir:

Hayır Kurumları için Bulut: Geçiş Kılavuzu
Artık sunucunuza SSH protokolünü kullanarak komut satırı üzerinden bağlanabilirsiniz. Bunu yapmak için, bilgisayarınızdaki SSH anahtarını ve sunucunuzun harici IP adresini işaret ederek aşağıdaki komutu yazın (“Sanal makineler” bölümünde bulabilirsiniz):

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

Sunucuya ilk kez bağlanırken, mevcut tüm güncellemelerin sunucuya yüklenmesi ve yeniden başlatılması önerilir. Bunu yapmak için aşağıdaki komutları çalıştırın:

$ sudo apt-get update

Sistem güncellemelerin bir listesini alacak, bu komutu kullanarak yükleyecek ve talimatları izleyecektir:

$ sudo apt-get upgrade

Güncelleştirmeleri yükledikten sonra sunucuyu yeniden başlatın:

$ sudo reboot

2. Adım: Sanal ana makineleri ayarlayın

Çoğu kar amacı gütmeyen kuruluşun aynı anda birden fazla alan adını veya alt alan adını (örneğin, bir ana web sitesi ve tanıtım kampanyaları için çeşitli açılış sayfaları vb.) sürdürmesi gerekir. Tüm bunlar, birkaç sanal ana bilgisayar oluşturularak tek bir sunucuya rahatlıkla yerleştirilebilir.

Öncelikle ziyaretçilere gösterilecek siteler için bir dizin yapısı oluşturmamız gerekiyor. Bazı dizinler oluşturalım:

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

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

Ve mevcut kullanıcının sahibini belirtin:

$ 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

değişken $USER şu anda oturum açtığınız kullanıcı adını içerir (varsayılan olarak bu kullanıcıdır) ubuntu). Artık mevcut kullanıcı, içeriği saklayacağımız public_html dizinlerinin sahibidir.

Ayrıca paylaşılan web dizinine ve içerdiği tüm dosya ve klasörlere okuma erişimine izin verildiğinden emin olmak için izinleri biraz düzenlememiz gerekiyor. Bu, site sayfalarının doğru şekilde görüntülenmesi için gereklidir:

$ sudo chmod -R 755 /var/www

Web sunucunuz artık içeriği görüntülemek için ihtiyaç duyduğu izinlere sahip olmalıdır. Ayrıca kullanıcınız artık gerekli dizinlerde içerik oluşturma olanağına da sahip.

/var/www/html dizininde zaten bir index.php dosyası var, hadi onu yeni dizinlerimize kopyalayalım - şimdilik içeriğimiz bu olacak:

$ 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

Artık kullanıcının sitenize erişebildiğinden emin olmanız gerekir. Bunu yapmak için öncelikle Apache web sunucusunun farklı alanlara gelen isteklere nasıl yanıt vereceğini belirleyen sanal ana bilgisayar dosyalarını yapılandıracağız.

Apache'nin varsayılan olarak başlangıç ​​noktası olarak kullanabileceğimiz 000-default.conf sanal ana bilgisayar dosyası vardır. Alanlarımızın her biri için sanal ana bilgisayar dosyaları oluşturmak üzere bunu kopyalayacağız. Bir alan adı ile başlayacağız, onu yapılandıracağız, başka bir alana kopyalayacağız ve ardından gerekli düzenlemeleri tekrar yapacağız.

Ubuntu'nun varsayılan yapılandırması, her sanal ana bilgisayar dosyasının bir *.conf uzantısına sahip olmasını gerektirir.

İlk alan adına ait dosyayı kopyalayarak başlayalım:

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

Kök haklarına sahip bir düzenleyicide yeni bir dosya açın:

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

Bağlantı noktası 80'i belirterek verileri aşağıdaki gibi düzenleyin. ServerAdmin, ServerName, ServerAlias, sitenizin kök dizininin yolunun yanı sıra dosyayı kaydedin (Ctrl+X, ardından 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 sanal ana bilgisayar adıyla eşleşmesi gereken birincil etki alanını ayarlar. Bu sizin alan adınız olmalıdır. Saniye, ServerAlias, birincil alan adıymış gibi yorumlanması gereken diğer adları tanımlar. Bu, örneğin www kullanmak gibi ek alan adlarının kullanılması için uygundur.

Bu yapılandırmayı başka bir ana bilgisayar için kopyalayalım ve aynı şekilde düzenleyelim:

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

Web siteleriniz için istediğiniz kadar dizin ve sanal ana bilgisayar oluşturabilirsiniz! Artık sanal ana bilgisayar dosyalarımızı oluşturduğumuza göre bunları etkinleştirmemiz gerekiyor. Sitemizin her birini şu şekilde etkinleştirmek için a2ensite yardımcı programını kullanabiliriz:

$ sudo a2ensite a-dobra.ru.conf

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

Varsayılan olarak, LAMP'ta 80 numaralı bağlantı noktası kapalıdır ve daha sonra bir SSL sertifikası yüklemek için buna ihtiyacımız olacak. O halde hemen ports.conf dosyasını düzenleyelim ve ardından Apache'yi yeniden başlatalım:

$ sudo nano /etc/apache2/ports.conf

Yeni bir satır ekleyin ve dosyayı şu şekilde görünecek şekilde kaydedin:

Listen 80
Listen 443
Listen 9997

Ayarları tamamladıktan sonra tüm değişikliklerin etkili olması için Apache'yi yeniden başlatmanız gerekir:

$ sudo systemctl reload apache2

3. Adım: Alan adlarını ayarlayın

Daha sonra yeni sunucunuzu işaret edecek DNS kayıtlarını eklemeniz gerekir. Alan adlarını yönetmek için İyi Aritmetik Temelimiz dns-master.ru hizmetini kullanır, bunu bir örnekle göstereceğiz.

Ana alan adı için bir A kaydının ayarlanması genellikle aşağıdaki şekilde gösterilir (işaret @):

Hayır Kurumları için Bulut: Geçiş Kılavuzu
Alt alan adları için A kaydı genellikle şu şekilde belirtilir:

Hayır Kurumları için Bulut: Geçiş Kılavuzu
IP adresi az önce oluşturduğumuz Linux sunucusunun adresidir. TTL = 3600'ü belirtebilirsiniz.

Bir süre sonra sitenizi ziyaret etmek mümkün olacak, ancak şimdilik yalnızca http://. Bir sonraki adımda destek ekleyeceğiz https://.

4. Adım: Ücretsiz SSL sertifikaları ayarlayın

Ana siteniz ve tüm alt alan adlarınız için Let's Encrypt SSL sertifikalarını ücretsiz alabilirsiniz. Ayrıca çok kullanışlı olan otomatik yenilemelerini de yapılandırabilirsiniz. SSL sertifikaları almak için sunucunuza Certbot'u yükleyin:

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

Apache için Certbot paketini kullanarak yükleyin apt:

$ sudo apt install python-certbot-apache 

Artık Certbot kullanıma hazır, şu komutu çalıştırın:

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

Bu komut certbot'u, anahtarları çalıştırır -d Sertifikanın verilmesi gereken alan adlarını tanımlayın.

Certbot'u ilk kez başlatıyorsanız, e-posta adresinizi girmeniz ve hizmetin kullanım koşullarını kabul etmeniz istenecektir. certbot daha sonra Let's Encrypt sunucusuyla iletişime geçecek ve sertifikayı talep ettiğiniz etki alanını gerçekten kontrol ettiğinizi doğrulayacaktır.

Her şey yolunda giderse certbot, HTTPS yapılandırmasını nasıl yapılandırmak istediğinizi soracaktır:

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):

Seçenek 2'yi seçip ENTER tuşuna basmanızı öneririz. Yapılandırma güncellenecek ve değişiklikleri uygulamak için Apache yeniden başlatılacak.

Sertifikalarınız artık indirildi, kuruldu ve çalışıyor. Sitenizi https:// ile yeniden yüklemeyi deneyin; tarayıcınızda güvenlik simgesini göreceksiniz. Sunucunuzu test ederseniz SSL Labs Sunucu TestiA notu alacaktır.

Let's Encrypt sertifikaları yalnızca 90 gün geçerlidir ancak yeni kurduğumuz certbot paketi, sertifikaları otomatik olarak yenileyecektir. Güncelleme sürecini test etmek için certbot'un deneme çalıştırmasını yapabiliriz:

$ sudo certbot renew --dry-run 

Bu komutu çalıştırmanın sonucunda herhangi bir hata görmüyorsanız her şey çalışıyor demektir!

Adım 5: MySQL ve phpMyAdmin'e erişin

Birçok web sitesi veritabanlarını kullanır. Veritabanı yönetimi için phpMyAdmin aracı zaten sunucumuza yüklenmiştir. Erişmek için aşağıdaki gibi bir bağlantıyı kullanarak tarayıcınıza gidin:

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

Kök erişiminin şifresini MCS kişisel hesabınızdan alabilirsiniz (https://mcs.mail.ru/app/services/marketplace/apps/). İlk girişinizde root şifrenizi değiştirmeyi unutmayın!

6. Adım: SFTP aracılığıyla dosya yüklemeyi ayarlayın

Geliştiriciler, web siteniz için dosyaları SFTP aracılığıyla yüklemeyi uygun bulacaktır. Bunu yapmak için yeni bir kullanıcı oluşturacağız, ona web yöneticisi adını vereceğiz:

$ sudo adduser webmaster

Sistem sizden bir şifre belirlemenizi ve diğer bazı verileri girmenizi isteyecektir.

Web sitenizin bulunduğu dizinin sahibini değiştirmek:

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

Şimdi SSH yapılandırmasını, yeni kullanıcının SSH terminaline değil, yalnızca SFTP'ye erişebileceği şekilde değiştirelim:

$ sudo nano /etc/ssh/sshd_config

Yapılandırma dosyasının en sonuna gidin ve aşağıdaki bloğu ekleyin:

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

Dosyayı kaydedin ve hizmeti yeniden başlatın:

$ sudo systemctl restart sshd

Artık sunucuya herhangi bir SFTP istemcisi aracılığıyla, örneğin FileZilla aracılığıyla bağlanabilirsiniz.

sonuç

  1. Artık aynı sunucu içinde yeni dizinler oluşturmayı ve web siteleriniz için sanal ana bilgisayarları nasıl yapılandıracağınızı biliyorsunuz.
  2. Gerekli SSL sertifikalarını kolayca oluşturabilirsiniz; ücretsizdir ve otomatik olarak güncellenecektir.
  3. Tanıdık phpMyAdmin aracılığıyla MySQL veritabanıyla rahatlıkla çalışabilirsiniz.
  4. Yeni SFTP hesapları oluşturmak ve erişim haklarını ayarlamak fazla çaba gerektirmez. Bu tür hesaplar üçüncü taraf web geliştiricilerine ve site yöneticilerine devredilebilir.
  5. Sistemi periyodik olarak güncellemeyi unutmayın ve ayrıca yedekleme yapmanızı da öneririz - MCS'de tek tıklamayla tüm sistemin "anlık görüntülerini" alabilir ve ardından gerekirse tüm görüntüleri başlatabilirsiniz.

Yararlı olabilecek kullanılan kaynaklar:

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

Bu arada, burada Vakfımızın yetimlere yönelik çevrimiçi eğitim için MCS bulutunu temel alan bir platformu nasıl devreye aldığını VC'de okuyabilirsiniz.

Kaynak: habr.com

Yorum ekle