Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Instrukcja ma na celu przedstawienie podstawowej konfiguracji.

Wykorzystane narzędzia mają znacznie więcej większe możliwości oraz poruszane zagadnienia są bardzie bardziej skomplikowane niż mogą się wydawać na pierwszy rzut oka. 

...

Niniejsza instrukcja ma na celu przedstawienia konfiguracji serwera stron internetowych (apache2) z wykorzystaniem dystrybucji linux ubuntu 22.04.

Do zrealizowania zadania wymagane jest wykupienie nazwy DNS w globalnym systemie DNS (w zależności od nazwy koszt w okolicach 10 zł za pierwszy rok)lub wykorzystanie nazwy w domenie man.poznan.pl, która jest automatycznie generowana dla każdego zewnętrznego adresu IP.


Przygotowanie środowiska:


W panelu web-owym OpenStack utworzenie dwóch instancji które będę miały dodany zewnętrzny pływający adres IP. Do instancji należy utworzyć grupę zabezpieczeń która będzie pozwalała na ruch na portach 443 oraz 80.
Przykładowa konfiguracja:

...

W celu konfiguracji powyższych założeń pomoce będę instrukcje:
https://docs.psnc.pl/pages/viewpage.action?pageId=130287749
https://docs.psnc.pl/pages/viewpage.action?pageId=117372270
https://docs.psnc.pl/pages/viewpage.action?pageId=117372677


Jakiej nazwy mogę użyć w domenie man.poznan.pl?


Należy uruchomić np. narzędzie jakim jest nslookup i sprawdzić jaki rekord A jest zwracany przy użyciu adresu IP naszej instancji:

Image Added

Image Added

Jeśli serwery mają wykorzystywać mechanizm równoważenia obciążenia to certyfikat SSL generujemy na nazwę, która zostanie wygenerowana dla adresu IP load balancera.


Konfiguracji systemów:


Dla czytelności rozdzielę rozdziele serwery na system A oraz system B.

Konfiguracja systemu A:


Code Block
languagebash
titleapt
sudo su –
apt update
apt upgrade
apt install mc apache2 certbot python3-certbot-apache

  • Utworzenie katalogu oraz pliku index.html z zawartością witryny.


Code Block
languagebash
mkdir /var/www/mojastrona
echo SerwerA > /var/www/mojastrona/index.html

  • Utworzenie pliku konfiguracyjnego witryny dla http. W dalszej części należy skonfigurować przekierowanie z http na https.


Code Block
languagebash
titleconfig
touch  /etc/apache2/sites-enabled/strona.domena.pl.conf
mcedit  /etc/apache2/sites-enabled/strona.domena.pl.conf

<VirtualHost *:80>
DocumentRoot /var/www/mojastrona
ServerName www.manual.pietaadmin.pl
ServerAlias manual.pietaadmin.pl
ServerAdmin admin@pietaadmin.pl
</VirtualHost>

  • Konfiguracja Strefy DNS:

  • Restart apache  systemctl restart apache2 oraz weryfikacja działania strony.

  • Konfiguracja https:


Aktywacja moduły SSL 

Code Block
a2enmod ssl
systemctl restart apache2

Konfiguracja oraz wygenerowanie certyfikatu SSL na 90 dni jak i przekierowanie ruchu http na https zostanie automatycznie zrobione po wydaniu polecenia:

Code Block
certbot --apache -d www.manual.pietaadmin.pl -d manual.pietaadmin.pl

  • Weryfikacja



Konfiguracja systemu B:


Code Block
languagebash
titleapt
sudo su –
apt update
apt upgrade
apt install mc apache2


  • Utworzenie katalogu oraz pliku index.html z zawartością witryny. Na potrzeby konfiguracji i weryfikacji poprawności działania zawartość będzie inna. Docelowo będą to identyczne pliki.


Code Block
languagebash
mkdir /var/www/mojastrona
echo SerwerB > /var/www/mojastrona/index.html


Należy skopiować pliki z systemy A do systemu B. Pliki do skopiowania:

Code Block
languagebash
/etc/apache2/sites-enabled/strona.domena.pl.conf
/etc/apache2/sites-enabled/strona.domena.pl-le-ssl.conf
Cały katalog:
/etc/letsencrypt/archive/www.manual.pietaadmin.pl/

Zadanie to można zautomatyzować wykorzystując narzędzie rdiff --> Kopia zapasowa katalogu przez sieć


  • Aktywacja moduły SSL oraz Rewrite
Code Block
a2enmod ssl
a2enmod rewrite
systemctl restart apache2


Pliki na potrzeby SSL zostały zapisane w lokalizacji /etc/ssl/www

Przykładowa konfiguracja pozostałych plików:

Code Block
root@www-lb-manual-2:/etc/apache2# cat /etc/apache2/sites-enabled/strona.domena.pl.conf
<VirtualHost *:80>

DocumentRoot /var/www/mojastrona
ServerName www.manual.pietaadmin.pl
ServerAlias manual.pietaadmin.pl
ServerAdmin admin@pietaadmin.pl
RewriteEngine on
RewriteCond %{SERVER_NAME} =manual.pietaadmin.pl [OR]
RewriteCond %{SERVER_NAME} =www.manual.pietaadmin.pl
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>


root@www-lb-manual-2:/etc/apache2# cat /etc/apache2/sites-enabled/strona.domena.pl-le-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost *:443>

DocumentRoot /var/www/mojastrona
ServerName www.manual.pietaadmin.pl
ServerAlias manual.pietaadmin.pl
ServerAdmin admin@pietaadmin.pl
SSLCertificateFile /etc/ssl/www/fullchain.pem
SSLCertificateKeyFile /etc/ssl/www/privkey.pem
</VirtualHost>
</IfModule>






Konfiguracja mechanizmu równoważenia obciążenia (load-balancer).


Dla regionu BST konfigurację należy przeprowadzić z panelu web: https://openstack.man.poznan.pl/horizon/auth/login/

W panelu web-owym OpenStack Projekt -->Sieć-->Load Balancers -->Utwórz

Image Added



  • Wskazujemy podsieć wewnętrzną naszych serwerów i dodajemy nazwę:

Image Added

  • Kolejno

Image Added

  • Następnie

Image Added


  • W kolejnym kroku wybieramy serwery oraz dodajmy port.

Image Added

  • W ostatnim korku

Image Added

  • Czekamy aż status będzie na Online Aktywny i dodajemy pływający adres IP z sieci zewnętrznej.
  • Na końcu należy nakierować nazwy DNS na pływający adres IP load balancera.

Image Added



Należy pamiętać, że darmowy certyfikat SSL lets encrypt jest ważny przez 90 dni.

Trzeba skonfigurować automatyczne odnawianie. Można również wykorzystać płatny certyfikat SSL.