Własny Serwer

Własny serwer – cz.1: Serwer www

Ostatnia aktualizacja: 16 września 2023, 19:26



Jak zainstalować i zabezpieczyć własny serwer?



 
Artykuł jest pierwszym z serii, wprowadzającym do zagadnienia własnego serwera, oferującego: serwer www, serwer pocztowy, serwer pakietów, etc. Cała seria została podzielona na pojedyncze artykuły, aby zawarte informacje zostały przekazane stopniowo, krok po kroku.

Jeśli myślisz o założeniu: własnej strony w internecie, forum, wiki, bloga, serwera pakietów, etc., to podstawową sprawą jest posiadanie serwera www.

Przedstawiony zestaw artykułów konfiguracji systemu operacyjnego na potrzeby serwera jest oparty na dystrybucji Debian GNU/Linux 11 „Bullseye”. Większość ustawień będzie podobna do ustawień w Ubuntu; w przypadku serwera bazującego na pakietach RPM (Red Hat, CentOS, Alma, Rocky, etc.), konfiguracja może być zbliżona, lecz nie identyczna, a instalacja pakietów odbywa się za pomocą menadżera pakietów 'yum’ zamiast debianowego 'apt’. Nazwy instalowanych pakietów w dystrybucjach RPM-owych mogą trochę różnić się od nazw debianowych/ubuntowych.

W zależności od potrzeb oraz natężenia ruchu Twoich użytkowników, masz do wyboru 3 opcje oferowane przez większość dostawców usług hostingowych:
1. Hosting współdzielony – idealny na początek, przy małym lub średnim ruchu, wszystko jest skonfigurowane przez dostawcę usługi.
2. Wirtualny serwer prywatny VPS (Virtual Private Server) – dobrze sprawdza się przy średnim i dużym ruchu; może być zarządzany (managed) przez dostawcę usługi lub całkowicie przez Ciebie (self-managed). W tym przypadku, zarządzanie odnosi się do konfigurację maszyny i systemu.
3. Serwer dedykowany – dla dużych i bardzo dużych serwisów, również może być managed lub self-managed.

1. Jaka jest różnica?
1. Serwer dedykowany to samodzielna, cała maszyna (komputer) przydzielona tylko Tobie – wszystkie procesory, rdzenie, cała pamięć RAM, cały dysk, itd. są do Twojej dyspozycji. Czyli, cała moc tego komputera jest dla Ciebie. Posiadasz pełny dostęp do systemu operacyjnego maszyny dedykowanej.
2. VPS to maszyna wirtualna, przeważnie używająca KVM (Kernel-based Virtual Machine (maszyna wirtualna bazująca na jądrze)), która została wydzielona z maszyny fizycznej. Przykładowo, dostawca usługi dzieląc maszynę serwerową o 8 rdzeniach CPU, 40 GB pamięci RAM i dysku twardym 1TB na 4 maszyny wirtualne, otrzymuje każdą maszynę VPS posiadającą 2 rdzenie CPU, 10 GB RAM i 250 GB dysku. Jest to prosta, możliwa symulacja. Tak więc, przydział mocy, który przyjmujesz powinien być zarezerwowany dla Twojej maszyny. W przypadku przeciążenia jednej z maszyn wirtualnych, znajdujących się na tej samej maszynie fizycznej, zasoby Twojego VPS-a powinny być zachowane. W tym przypadku również posiadasz pełny dostęp do systemu operacyjnego maszyny wirtualnej.
3. Hosting współdzielony to nic innego, jak maszyna dedykowana lub wirtualna, na której zostały zarejestrowane konta wielu użytkowników i każdy przechowuje swoje pliki we własnej przestrzeni użytkownika. W tym przypadku moc jednej maszyny jest dzielona na wszystkich użytkowników i ich serwisy. Jeśli jeden serwis będzie miał większy ruch i większy pobór mocy, pozostałe serwisy mogą działać wolniej. Jeśli jeden serwis wykorzysta całą moc przedzieloną maszynie i spowoduje zatrzymanie serwisu, pozostałe serwisy na tej samej maszynie również zostaną zatrzymane. W tym przypadku nie masz dostępu do systemu operacyjnego maszyny.

2. Domena
Drugą sprawą, konieczną do założenia własnego serwisu jest posiadanie unikalnej domeny. Domena to nazwa Twojej strony internetowej, która będzie znana w sieci i po której użytkownicy będą odwiedzać Twój serwis.

Domenę można zarejestrować na 1 rok u dowolnego rejestratora domen, lub w większości przypadków, u dostawcy hostingu/serwera.

W przypadku rejestracji domeny u dostawcy hostingu/serwera, konfiguracja jest prosta, wystarczy w panelu zarządzania usługami serwera dodać zarejestrowaną domenę do Twojego serwera (np. linuxiarze.pl).

W przypadku rejestracji domeny u innego rejestratora, należy:
a. dowiedzieć się, jakie są nazwy serwerów DNS Twojego dostawcy serwera (np. ns1.serwer.pl, ns2.serwer.pl)
b. przekierować serwery DNS u rejestratora domeny na serwery dostawcy Twojego serwera
c. w panelu zarządzania dostawcy serwera należy podpiąć/dodać swoją domenę linuxiarze.pl

Proces rozpropagowania nowych DNS-ów Twojej domeny, po ich przekierowaniu lub rejestracji, może potrwać od kilkunastu minut do 72 godzin.
W tym czasie możesz skonfigurować serwer www.

3. Logowanie do serwera
Po rejestracji konta u dostawcy serwera i opłaceniu pierwszej faktury, otrzymasz mailem dane dostępowe do Twojego serwera VPS (lub dedykowanego).
Zarządzanie systemem i ustawieniami odbywa się za pośrednictwem emulatora terminala/konsoli tekstowej, której opanowanie podstawowych poleceń nie powinno stanowić dla nikogo problemu.

Dostęp do zdalnej maszyny serwerowej można uzyskać poleceniem:
ssh root@111.222.33.44
gdzie:
– ssh (ang. secure shell) to standard protokołów komunikacyjnych
– root to nazwa administratora systemu
– 111.222.33.44 to adres IP Twojego serwera przydzielony przez dostawcę
Połączenie wymaga podania hasła root, również przesłane przez dostawcę (hasło można zmienić po pierwszym zalogowaniu).

4. Instalacja serwera www
Wybór serwera www to zasadnicza sprawa, oprócz Apache i Nginx można użyć np, Lighttpd, thetpd, itd. My skoncentrujemy się na dwóch najbardziej popularnych.

4a. Instalacja Apache (domyślna)
Instalacja serwera Apache w dystrybucjach debianowych:
apt update
apt install apache2 apache2-bin apache2-data apache2-utils

Sprawdzenie statusu Apache:
systemctl status apache2
Jeśli status jest nieaktywny:
systemctl enable apache2
Jeśli status wskazuje, że nie jest uruchomiony:
systemctl start apache2

Strona startowa Apache powinna być już dostępna w przeglądarce internetowej, pod adresem IP Twojego serwera. Jeśli domena została już rozpropagowana, możesz wpisać w przeglądarce www adres domeny zamiast IP.

Pliki strony startowej zostały zapisane w domyślnej lokalizacji:
/var/www/http/
Jest to domyślna konfiguracja dla jednej domeny, teraz zrobimy własną dla 1 lub więcej domen lub subdomen.

Domyślna konfiguracja Apache jest dostępna w katalogu:
/etc/apache2/

Teraz dodamy własną domenę, robiąc wcześniej kopię istniejącej konfiguracji:
mv /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/000-default.conf.bak
touch /etc/apache2/sites-available/000-default.conf
nano /etc/apache2/sites-available/000-default.conf

i wpisując własną konfigurację:

##### linuxiarze.pl #####

ServerAdmin admin@linuxiarze.pl
ServerName linuxiarze.pl
ServerAlias www.linuxiarze.pl linuxiarze.pl
DocumentRoot /var/www/linuxiarze.pl/public_html
DirectoryIndex index.html index.php index.htm

Options All Indexes FollowSymLinks
AllowOverride All
Require all granted

ErrorLog ${APACHE_LOG_DIR}/error-linuxiarze-pl.log
CustomLog ${APACHE_LOG_DIR}/access-linuxiarze-pl.log combined

Logi Apache będą zapisywane w oddzielnych plikach dla każdej domeny/subdomeny, co ułatwi ich przeglądanie oraz konfigurację statystyk.

Utworzenie ścieżki dla udostępnionych zasobów, wg powyższej konfiguracji:
mkdir -p /var/www/linuxiarze.pl/public_html
Dodanie przykładowej strony testowej:
nano /var/www/linuxiarze.pl/public_html/index.html
wklejając poniższy tekst:
<html>
<head>
<title>New VirtualHost page</title>
</head>
<body>
<h1>Witaj na mojej nowej stronie linuxiarze.pl</h1>
</body>
</html>

Zmiana praw do zawartości udostępnionego katalogu i plików:
chown -R www-data:www-data /var/www/linuxiarze.pl/public_html/

Teraz sprawdź czy ustawienia Apache są prawidłowe:
apache2ctl configtest
Jeśli wystąpił błąd, należy go poprawić, w takim przypadku restart Apache2 również wyrzuci błąd:
systemctl restart apache2
Można go zdiagnozować poleceniami:
systemctl status apache2
journalctl -xe

Jeśli naprawiłeś konfigurację Apache2 lub nie było błędów, restart apache wczyta nowe ustawienia:
systemctl restart apache2
A nowa, testowa strona będzie gotowa do wyświetlenia w przeglądarce www po wpisaniu IP serwera lub nazwy Twojej domeny.

4b. Instalacja Nginx
Instalacja Nginx jest opcjonalna, jeśli nie zainstalowałeś Apache.

apt update
apt install nginx

Sprawdzenie statusu Nginx:
systemctl status nginx
Jeśli status jest nieaktywny:
systemctl enable nginx
Jeśli status wskazuje, że nie jest uruchomiony:
systemctl start nginx

Podobnie jak w przypadku Apache, pliki strony startowej zostały zapisane w domyślnej lokalizacji:
/var/www/http/
Jest to domyślna konfiguracja dla jednej domeny, teraz zrobimy własną dla 1 lub więcej domen lub subdomen.

Domyślna konfiguracja Nginx jest dostępna w katalogu:
/etc/nginx/

Teraz dodamy własną domenę, robiąc wcześniej kopię istniejącej konfiguracji:
mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak
touch /etc/nginx/sites-available/default
nano /etc/nginx/sites-available/default

i wpisując własną konfigurację:
##### linuxiarze.pl #####
server {
listen 80;
server_name linuxiarze.pl www.linuxiarze.pl;
root /var/www/linuxiarze.pl/public_html;
index index.php index.html index.htm;
location /
{
try_files $uri $uri/ =404;
}
}

Utworzenie ścieżki do udostępnionych zasobów, wg powyższej konfiguracji:
mkdir -p /var/www/linuxiarze.pl/public_html
Dodanie przykładowej strony testowej:
nano /var/www/linuxiarze.pl/public_html/index.html
wklejając poniższy tekst:
<html>
<head>
<title>New VirtualHost page</title>
</head>
<body>
<h1>Witaj na mojej nowej stronie linuxiarze.pl</h1>
</body>
</html>

Zmiana praw do zawartości udostępnionego katalogu i plików:
chown -R www-data:www-data /var/www/linuxiarze.pl/public_html/

Teraz sprawdź czy ustawienia Nginx są prawidłowe:
nginx -t
Jeśli wystąpił błąd, należy go poprawić, w takim przypadku restart Nginx również wyrzuci błąd:
systemctl restart nginx
Można go zdiagnozować poleceniami:
systemctl status nginx
journalctl -xe

Jeśli naprawiłeś konfigurację Nginx lub nie było błędów, restart Nginx wczyta nowe ustawienia:
systemctl restart nginx
A nowa, testowa strona będzie gotowa do wyświetlenia w przeglądarce www po wpisaniu IP serwera lub nazwy Twojej domeny.

5. hostname i host
Nazwa hosta jest prawdopodobnie ustawiona na nazwę wirtualnego/dedykowanego serwera, sugeruję aby zmienić na własną.
Sprawdzenie nazwy hosta:
hostname
Zmiana nazwy host na własną, zgodną z nazwą domeny:
hostnamectl set-hostname linuxiarze.pl
Wyedytuj również pliki:
/etc/hostname
zmieniając nazwę hosta na własną, oraz:
/etc/hosts
dodając po:
127.0.0.1 localhost
linię z własną nazwą:
127.0.0.1 linuxiarze.pl

Po każdym restarcie systemu nowy nazwa hosta powinna być utrzymana.

6. Zapora ogniowa
Ostatnim dzisiaj zadaniem będzie aktywacja zapory ogniowej. Debian 11 domyślnie posiada zainstalowany pakiet nftables, lecz sugeruję doinstalowanie UFW (Uncomplicated FireWall), który jest nakładką na iptables do łatwiejszego zarządzania ścianą ogniową NetFilter.
apt update
apt install ufw

Sprawdzenie statusu:
systemctl status ufw
Jeśli status jest nieaktywny:
systemctl enable ufw
Jeśli status wskazuje, że nie jest uruchomiony:
systemctl start ufw

Sprawdzenie statusu UFW:
ufw status
oraz dostępnych aplikacji:
ufw app list

Należy dodać/otworzyć porty, jeśli są nieaktywne, przez które udostępniane są strony www, w przypadku Apache:
ufw allow 'WWW Full'
w przypadku Nginx:
ufw allow 'Nginx Full'

Upewnij się również, że porty dla ssh są otwarte:
ufw allow ssh
oraz:
ufw allow 20:21/tcp
 
I to by było dzisiaj na tyle, w następnym artykule – cz.2 zainstalujemy PHP i system bazodanowy.
 

Click to rate this post!
[Total: 25 Average: 5]

3 komentarze do “Własny serwer – cz.1: Serwer www

  • Jaka makabra ? Są dystrybucje gotowe ze wszystkimi usługami serverowymi i nawet wszystko w GUI.
    Taki Parrot OS ma 2 webservery apacha i nginx, i w menu masz start,stop,restart….
    Artykuł pozwala zrozumieć jak wszystko działa, by potrafić zmieniać konfigurację, usuwać awarie, zagrożenia cybersecurity, itd,itp, to trzeba przepracować by świadomie kontrolować server.
    Koszt – cena domeny (.eu 10zł) + cert jeśli chcesz https, ale są przecież darmowe domeny np.
    jak masz dynamiczny ip i używasz w routerze ddns.
    Cena sprzętu laptop 200zł, a stacjonarne to jeszcze taniej. (allegro)

    Odpowiedz
  • Dobre! Chciałem założyć blog/strone żeby dzielić się jednym z bardziej brutalnych hobby (detektywistyka/kryminalistyka), sprawdzę myślę jak to się robi i… Makabra lista czynności długa, dużo po angielsku, no i jeszcze ma to kosztować. Na razie zrezygnowałem, ale kto wie. Po takich konkretnych artykułach.

    Odpowiedz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.