Jak zainstalować i zabezpieczyć Apache na Ubuntu 20.04

Jak zainstalować i zabezpieczyć Apache na Ubuntu 20.04

Ten samouczek pomoże Ci zainstalować Apache Web Server na Ubuntu 20.04 LTS (Focal Fossa) System operacyjny. Dowiesz się również, jak zabezpieczyć swoją domenę za pomocą Certyfikatu Szyfrowania SSL. Ten samouczek będzie również działał na Ubuntu 18.04, Ubuntu 16.04 i Ubuntu 19.10 systemów Linux.

Zanim zaczniemy

Przed rozpoczęciem pracy:

  • Uruchamianie Ubuntu 20.04 System z uprawnieniami sudo.
  • Wypełnij instrukcje konfiguracji serwera
  • Nazwa domeny zarejestrowana i wskazana na publiczny adres IP twojego serwera. W tym samouczku używamy WebHost.tecadmin.netto, co wskazuje na nasz serwer.

Krok 1 - Instalowanie Apache

Pakiety Apache są dostępne w domyślnych repozytoriach oprogramowania na UBUNTS. Możesz go łatwo zainstalować za pomocą konwencjonalnego narzędzia do zarządzania pakietami.

Po pierwsze, zaktualizuj indeks lokalnego pakietu, aby odzwierciedlić najnowsze zmiany upstream. Następnie zainstaluj serwer WWW Apache2.

sudo apt aktualizacja sudo apt instal apache2 

Po potwierdzeniu APT zainstaluje Apache i inne wymagane zależności od systemu.

Krok 2 - Przetestuj swój serwer WWW

Po zakończeniu instalacji usługa Apache automatycznie uruchomi się w systemie Ubuntu. Można znaleźć status usługi Apache, uruchamiając następujące polecenie:

SUDO SYSTEMCTL STATUS APACHE2 

Przykładowy wyjście:

● Apache2.Usługa - załadowany serwer Apache HTTP: załadowany (/lib/systemd/system/apache2.praca; włączony; PREDERTOR PRESET: Włączony) Active: Active (Uruchamianie) od Sun 2020-04-26 05:28:08 UTC; 10 minut temu dokumenty: https: // httpd.Apache.Org/Docs/2.4/ Main PID: 15464 (Apache2) Zadania: 55 (limit: 2283) Pamięć: 6.9m cgroup: /system.Slice/Apache2.Service ├─15464/usr/sbin/apache2 -k start ├─18646/usr/sbin/apache2 -K start └─18647/usr/sbin/apache2 -k start 26 kwietnia 05:28:08 TecadMin Systemd [1]: Uruchamianie serwera Apache HTTP… 26 kwietnia 05:28:08 TECADMIN SYSTEMD [1]: Uruchom serwer Apache HTTP. 

Status wyniku taki jak „Active: Active (działanie)” oznacza, że ​​usługa Apache zaczęła się pomyślnie. Jednak najlepszy sposób testowania serwera WWW, poproś o stronę Apache w przeglądarce internetowej.

Zobaczysz domyślną stronę docelową Apache. Oznacza to, że serwer WWW Apache działa poprawnie w twoim systemie.

Krok 3 - Utwórz wirtualny host

Za pomocą wirtualnych hostów możesz hostować więcej niż jedną domenę z jednego serwera. Wirtualny host zawiera konfigurację domeny. Założymy wirtualny host z sub-domeną o nazwie WebHost.Tecamin.net, ale powinieneś to zastąpić własną nazwą domeny.

Zacznijmy od katalogu naszej domeny w następujący sposób:

sudo mkdir/var/www/webhost sudo chmod -r 755/var/www/webhost sudo chown -r www -data: www -data/var/www/webhost 

Następnie utwórz przykładowy indeks.Strona HTML, aby hostować w tej subdomenie. Edytuj ten plik w swoim ulubionym edytorze tekstu, takim jak VIM lub Nano:

nano/var/www/webroot/index.html 

Dodaj następującą przykładową zawartość HTML:

Witamy w Tecadmin.internet!

Powodzenie!!!

12345678 Witamy w Tecadmin.internet!

Powodzenie!!!

Zapisz plik i zamknij go.

Dzięki nowo zainstalowanemu serwerze Apache zobaczysz domyślny plik konfiguracyjny wirtualnego hosta znajdującego.conf. Ale jest to dobry habbit do tworzenia oddzielnego pliku konfiguracyjnego dla każdego wirtualnego hosta. Utwórz nowy wirtualny plik hosta jako/etc/apache2/witryny-dostępny/WebHost.tecadmin.internet.Conf:

sudo nano/etc/apache2/witryny-dostępny/webhost.tecadmin.internet.conf 

Dodaj następującą konfigurację do wirtualnego pliku hosta. Zmień odpowiedni adres e -mail ServerAdmin, Servername to Twoja nazwa domeny. Możesz także dołączyć ServerAlias, aby dodać więcej domeny lub subdomeny. Następnie ustaw prawidłowe DocumentRoot, jak utworzono powyżej.

ServerAdmin [email protected] Servername Webhost.tecadmin.net #serveralias www.Host sieciowy.tecadmin.Net ## Uzniszczenie go do użycia DocumentRoot/var/www/webHost ALLOWEORRIDE Wszystkie błędylog $ apache_log_dir/błąd.Zaloguj się CustomLog $ Apache_Log_dir/Access.Log łącznie
1234567891011 ServerAdmin [email protected] Servername Webhost.tecadmin.net #serveralias www.Host sieciowy.tecadmin.Net ## Uzniszczenie go do użycia DocumentRoot/var/www/WebHost Zezwolenie na wszystko ErrorLog $ apache_log_dir/error.Zaloguj się CustomLog $ Apache_Log_dir/Access.Log łącznie

Zapisz plik i zamknij go.

Domyślnie Apache odczytuje pliki konfiguracji hosta wirtualnego pod katalogiem/etc/apache2/witryny. Użyj narzędzia A2EnSite, aby włączyć ten wirtualny host:

sudo a2ensite Webhost.tecadmin.internet.conf 

Powyższe polecenie utworzy symboliczny WebHost linku.tecadmin.internet.plik CONF do katalogu dostępnego witryn.

Po zakończeniu uruchom poniższe polecenie, aby zweryfikować pliki konfiguracyjne:

sudo apache2ctl configTest 

Powinieneś zobaczyć następujące dane wyjściowe:

Składnia OK 

Następnie uruchom ponownie usługę Apache, aby zastosować zmiany:

sudo systemctl restart apache2 

Apache jest gotowy do obsługi treści na skonfigurowanej nazwie domeny. Możesz to przetestować, nawigując do http: // webhost.tecadmin.internet,

Krok 4 - Skonfiguruj Let's Encrypt SSL

Używamy Let's Encrypt SSL Certificate, aby zabezpieczyć witrynę na serwerze WWW Apache. CertBot to narzędzie wiersza poleceń do pracy z certyfikatami Let's Encrypt. Uruchom następujące polecenie, aby zainstalować binarny CERTBOT:

sudo apt instal Python3-Certbot-Apache 

To zainstaluje wszystkie wymagane pakiety dla certbot.

Po zakończeniu procesu instalacji. Uruchom poniższe polecenie, aby poprosić Let's Encrypt Certificate Authority, aby wydać certyfikat dla naszej domeny WebHost.tecadmin.internet. Możesz dodać wiele domen lub subdomenów za pomocą osobnych parametrów „-D”.

Certbot -d Webhost.tecadmin.internet 

Wizard poprosi Twój adres e -mail o przesłanie aktualizacji. Następnie zaakceptuj warunki służby, aby kontynuować. Poniżej znajduje się pełne dzienniki polecenia:

Zapisywanie dziennika debugowania do/var/log/limsecrrypt/limsecript.Wybrane wtyczki dziennika: Authenticator Apache, Instalator Apache Wprowadź adres e -mail (używany do pilnej odnowienia i powiadomień o bezpieczeństwie) (wprowadź „C”, aby anulować): [chroniony e -mail] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Przeczytaj Warunki usługi pod adresem https: // LetsEncrypt.org/dokumenty/le-sa-v1.2 listopada 15-2017.PDF. Musisz się zgodzić, aby zarejestrować się na serwerze ACME na stronie https: // acme-v02.API.LetsEncrypt.Org/Directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (a) Gree/(c ) Ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Czy byłbyś skłonny udostępnić swój adres e-mail z Electronic Frontier Foundation, partnerem założycielem projektu Let's Encrypt i organizacji non-profit, która opracowuje CertBot? Chcielibyśmy wysłać Ci e -mail o naszej pracy szyfrowanie sieci, wiadomości, kampanii i sposobów wspierania cyfrowej wolności. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Tak nie: Y Uzyskanie nowego certyfikatu wykonujące następujące wyzwania: Wyzwanie HTTP-01 dla WebHost.tecadmin.Moduł Apache Rewrite Net Enved Oczekiwanie na weryfikację… Czyszczenie wyzwań utworzyło SSL vhost at/etc/apache2/witryny-dostępny/WebHost.tecadmin.net-le-ssl.Włączony moduł Apache_Shmcb Włączony Moduł Moduł SSL Apache wdrażanie certyfikatu VirtualHost/Etc/Apache2/Sites-Available/WebHost.tecadmin.net-le-ssl.Zwracanie dostępnej witryny:/etc/apache2/witryn-dostępna/WebHost.tecadmin.net-le-ssl.Conf, wybierz, czy przekierować ruch HTTP do HTTPS, usuwając dostęp HTTP. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Brak przekierowania - nie dokonuj dalszych zmian w konfiguracji WebServer. 2: Przekierowanie - Złóż wszystkie żądania przekieruj, aby uzyskać dostęp HTTPS. Wybierz to dla nowych witryn lub jeśli masz pewność, że Twoja witryna działa na HTTPS. Możesz cofnąć tę zmianę, edytując konfigurację serwera WWW. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Wybierz odpowiedni numer [1-2], a następnie [Enter] (naciśnij „C”, aby anulować): 2 Włączony moduł przepisu Apache Przekierowanie vhost in/etc/apache2/witryn-obserwowany/WebHost.tecadmin.internet.conf to SSL vhost in/etc/ap ache2/witryny-dostępny/WebHost.tecadmin.net-le-ssl.Conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - gratulacje! Z powodzeniem włączyłeś https: // webhost.tecadmin.net.ssllabs.COM/SSLTEST/Analizuj.html?D = WebHost.tecadmin.netto - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ważne notatki: Gratulacje! Twój certyfikat i łańcuch zostały zapisane na:/etc/letsEncrypt/Live/Webhost.tecadmin.Net/Fullchain.pem plik kluczowy został zapisany na:/etc/letsEncrypt/Live/WebHost.tecadmin.Net/Privey.PEM Twój certyfikat wygasa w dniach 2020-07-25. Aby uzyskać nową lub ulepszoną wersję tego certyfikatu w przyszłości, po prostu uruchom CERTBOT ponownie z opcją „Certonly”. Aby nie interaktywnie odnowić * wszystkie * z twoich certyfikatów, uruchom „Certbot Renew” - Twoje poświadczenia konta zostały zapisane w katalogu konfiguracji CERTBOT AT /ETC /LetsEncrypt. Powinieneś teraz wykonać bezpieczną kopię zapasową tego folderu. Ten katalog konfiguracyjny będzie również zawierał certyfikaty i prywatne klucze uzyskane przez CertBot, dzięki czemu regularne tworzenie kopii zapasowych tego folderu jest idealne. - Jeśli lubisz CertBot, rozważ wspieranie naszej pracy przez: darowizny na rzecz ISRG/Let's Encrypt: https: // LetsEncrypt.Org/darowizna darowizny na EFF: https: // eff.org/darowizna-le 

Pomyślnie skonfigurowałeś domenę z certyfikatem SSL. Teraz możesz uzyskać dostęp do swojej domeny przez protokół HTTPS, jak pokazano na zrzucie ekranu poniżej:

Krok 5 - Dostosuj zasady zapory

Możesz użyć nazwy usługi, takiej jak „http” lub „https”, aby zezwolić na zaporę ogniową. Aby otworzyć port HTTP i HTTPS w Firewalld, uruchom poniższe polecenia:

sudo firewall-cmd --Permanent --add-service = http sudo firewall-cmd --Permanent --add-service = https 

Po dodaniu reguł ponownie załaduj zmiany za pomocą następującego polecenia.

Sudo Firewall-CMD-RELOOD 

Krok 6 - Zarządzaj usługą Apache

Teraz masz uruchomiony i uruchomiony serwer WWW Apache, przejdźmy do poleceń zarządzania usługami Apache.

Aby zatrzymać serwer WWW Apache, wpisz:

Sudo Systemctl Stop Apache2 

Aby uruchomić serwer WWW Apache (jeśli jest zatrzymany), wpisz:

sudo systemctl start apache2 

Aby zrestartować (zatrzymaj, a następnie uruchom) usługę Apache, wpisz:

sudo systemctl restart apache2 

Zamiast zatrzymania, a następnie uruchom działające serwer, użyj opcji ponownej ładowania, aby zastosować zmiany plików konfiguracyjnych bez upuszczania bieżących połączeń. Ale to nie odczytuje żadnego nowego pliku konfiguracyjnego:

Sudo Systemctl RELOOD APACHE2 

Aby wyłączyć usługę Apache w celu automatycznego uruchomienia rozruchu systemu, wpisz:

sudo systemctl wyłącz apache2 

Aby włączyć usługę Apache do automatycznego uruchomienia uruchamiania systemu, wpisz:

Sudo Systemctl włącza Apache2 

Wniosek

Serwer WWW Apache działa na Ubuntu 20.04 LTS System operacyjny.