Wyszukiwanie w witrynie

Włączanie katalogów internetowych UserDir i ochrony hasłem na serwerze Zentyal — część 10


W środowisku wielu użytkowników, takim jak Zentyal PDC Active Directory, uruchomienie serwera WWW może być bardzo pomocne, jeśli chcesz pozwolić każdemu użytkownikowi na posiadanie osobistej strony internetowej, którą można hostować w jego własnym domu.

Moduł serwera internetowego w Zentyal 3.4 można skonfigurować tak, aby aktywował publiczny HTML użytkowników za pomocą niektórych skryptów Linux BASH do dynamicznego generowania treści na stronę internetową i przekazywania użytkownikom wymaganych informacji o ich logowaniu do domeny.

Również Apache jest od dawna dostarczany z inną funkcją związaną z bezpieczeństwem dostarczanej treści, a mianowicie chronieniem katalogu internetowego hasłem w jednej z najprostszych form, po prostu za pomocą .htaccess i utwórz listę użytkowników potrzebnych do uzyskania dostępu do zasobów, a nawet chroń zawartość internetową przed robotami wyszukiwarek.

Wymagania

  1. Instrukcja instalacji Zentyala
  2. Zainstaluj usługi internetowe (Apache) na serwerze Zentyal

Krok 1: Włącz publiczny HTML użytkownika

1. Zaloguj się do swojego Zentyal PDC Web Admin Tool za pomocą https://zentyal_ip.

2. Przejdź do Moduł serwera WWW -> zaznacz opcję Włącz użytkownika równorzędnego public_html, naciśnij przycisk Zmień, a następnie Zapisz zmiany .

3. Otwórz przeglądarkę i wprowadź w polu URL następujące informacje: http://mydomain.com/~twoja_nazwa_użytkownika.

Jak widać Apache nie ma uprawnień dostępu do katalogu użytkownika ani indeksu domu użytkownika. Aby skorygować to zachowanie, musimy nadać www-data uprawnienia do wykonywania w katalogu /home/$USER i utworzyć folder public_html pod ścieżką użytkowników.

Aby trochę uprościć sprawę, napiszemy skrypt Linux Bash, który utworzy katalog public_html i umożliwi poprawne uprawnienia wszystkim użytkownikom systemu, automatycznie wygeneruje strony HTML dla wszystkich użytkownicy z prawidłowym katalogiem domowym i innym skryptem, tym razem skryptem Windows Bach, który połączy go z domyślnym obiektem GPO domeny, tak aby każdy użytkownik po zalogowaniu otrzymał monit o wyświetlenie swojej osobistej strony internetowej z poświadczeniami domeny z < b>Systemy Windows dołączone do domeny.

4. Aby wykonać to zadanie zaloguj się do Serwera Zentyal za pomocą Putty z kontem administracyjnym Zentyal utworzonym podczas instalacji systemu i utwórz pierwszy skrypt za pomocą swojego ulubionego edytora tekstu. Nazwiemy go „tworzenie-katalogu-użytkownika”.

nano user-dir-creation

5. Dodaj poniższą treść do skryptu „user-dir-creation”.

#!/bin/bash

for i in `ls /home | grep -v samba| grep -v lost+found`;  do

        mkdir /home/$i/public_html

## Make world readable and executable, so that www-data can access it  ##

        chmod -R 755 /home/$i

      chgrp -R www-data /home/$i/public_html/

## Next code should be on a single line ##

echo "<html><body style='background-color:#2DC612'><div align='center'><p><H1 style='color:#fff'>Welcome user $i on <a style='color:#fff' href='https://mydomain.com'>`hostname -f` </a></H1></p></div></body></html>" > /home/$i/public_html/index.html

## List /home/$USER permissions and public_html perm optional ##

echo "......................."

ls -all /home/$i

echo "......................"

ls -all /home/$i/public_html

done;

6. Zapisz skrypt i uczyń go wykonywalnym, a następnie uruchom go z uprawnieniami roota.

chmod +x user-dir-creation
sudo ./user-dir-creation

7. Otwórz ponownie przeglądarkę i wskaż ten sam URL jak powyżej (patrz punkt 3).

Utworzono katalog public_html i wygenerowano plik HTML dla wszystkich użytkowników, więc teraz wszyscy mają spersonalizowaną stronę internetową (to tylko prosta strona testowa, ale wyobraź sobie, co możesz zrobić za pomocą PHP , MySQL lub skrypty CGI).

8. Jeśli Serwer Zentyal 3.4 jest także Podstawowym kontrolerem domeny, możemy ustawić, aby strona internetowa każdego użytkownika była automatycznie otwierana w przeglądarce, gdy użytkownik loguje się z hostów Windows podłączonych do domeny.

Aby to włączyć, zaloguj się do systemu Windows dołączonego do domeny i utwórz skrypt wsadowy Windows o nazwie „public_html.bat” za pomocą Notatnika z następującą zawartością.

explorer http://your_domain.tld/~%username%

Uwaga: Zwróć uwagę na znak specjalny „~” i %username%, która jest zmienną środowiskową systemu Windows.

9. Otwórz Zentyal Web Administration Tool (https://zentyal_IP) i przejdź do Domena -> Obiekty zasad grupy -> Domyślne Polityka domeny -> Edytor GPO.

10. Kliknij Edytuj, przewiń w dół do Konfiguracja użytkownika –> Dodaj nowy skrypt logowania, Przeglądaj ścieżkę, w której utworzono skrypt i naciśnij < b>DODAJ.

Gratulacje! Teraz, gdy następnym razem zalogujesz się do domeny, Twoja domyślna przeglądarka otworzy spersonalizowaną stronę internetową powiązaną z Twoją nazwą użytkownika.

Krok 2: Zabezpiecz hasłem katalog internetowy

Ta część wymaga bardziej zaawansowanej konfiguracji modułu Apache, czego nie da się osiągnąć poprzez interfejs sieciowy Zentyal, a jedynie z linii poleceń i modyfikując jakiś szablon modułu Zentyal Apache.

Jeśli spróbujesz bezpośrednio zmodyfikować konfigurację Apache, tak jak zwykle robisz to na serwerze Linux, wszystkie wykonane konfiguracje zostaną utracone, ponieważ Zentyal używa niektórych szablonów formularzy, które przepisują pliki konfiguracyjne każdej usługi po ponownym uruchomieniu lub ponownym uruchomieniu usługi.

Aby rzeczywiście chronić folder sieciowy za pomocą uwierzytelniania Apache i wprowadzić zmiany na stałe, należy zmodyfikować dyrektywę „AllowOverride” oraz załadować i włączyć moduł „auth_basic” na serwerze Apache .

11. Aby włączyć wszystkie wymagane konfiguracje, zaloguj się najpierw za pomocą wiersza poleceń przy użyciu Putty na Serwerze Zentyal z kontem root.

12. Włącz opcję „auth_basic”, wydając poniższe polecenie, a następnie zrestartuj usługę internetową zentyal.

a2enmod auth_basic
service zentyal webserver restart

13. Po załadowaniu modułu czas na modyfikację szablonu Zentyal Apache Vhost znajdującego się w ścieżce „/usr/share/zentyal/stubs/webserver/” i konfigurację „AllowOverride„.

Pierwsza kopia zapasowa pliku vhost.mas.

cp /usr/share/zentyal/stubs/webserver/vhost.mas  /usr/share/zentyal/stubs/webserver/vhost.mas.bak

Następnie otwórz edytor, przejdź na dół pliku i zamień „Żaden” na „Wszystkie” w wierszu dyrektywy „Zezwól na zastąpienie”, jak na zrzucie ekranu .

14. Po zakończeniu edycji zrestartuj moduł Zentyal Webserver, aby zastosować nowe zmiany.

service zentyal webserver restart

Głównym celem dyrektywy AllowOverride jest dynamiczna zmiana konfiguracji Apache z innych plików, innych niż te używane w katalogu głównym Apache (/etc/apache2/) na podstawie ścieżki przy użyciu plik .htacess.

15. Nadszedł czas na utworzenie użytkowników, którzy będą mogli przeglądać katalog zawartości stron internetowych chroniony hasłem. Najpierw musimy utworzyć katalog umieszczony poza ścieżką subdomeny, w którym będzie przechowywany i chroniony plik .htpasswd.

mkdir /srv/www/htpass
chmod –R 750 /srv/www/htpass
chgrp –R www-data /srv/www/htpass

16. Teraz czas na utworzenie pliku .htpasswd i dodanie użytkowników za pomocą komendy htpasswd. Po utworzeniu pierwszego użytkownika dodaj przełącznik polecenia „–c” (utwórz), aby utworzyć plik i dodać użytkownika, a następnie wprowadzić i potwierdzić hasło użytkownika.

htpasswd –c /srv/www/htpass/.htpasswd first_user
htpasswd /srv/www/htpass/.htpasswd second_user

17. Teraz plik .htpasswd jest tworzony i szyfrowany przy użyciu algorytmu soli MD5 i możesz dodać dowolną liczbę użytkowników wymaganych do uzyskania dostępu do zawartości folderu internetowego.

18. Załóżmy teraz, że chcesz chronić adres URL http://www.mydomain.com przed innymi użytkownikami niż użytkownicy utworzeni w pliku htpasswd w celu uzyskania dostępu do subdomeny. Aby włączyć to zachowanie, utwórz plik .htaccess w ścieżce systemowej www.mydomain.com i dodaj następującą treść.

AuthType basic
AuthName “What ever message you want”
AuthBasicProvider file
AuthUserFile  /path/to/.htpassd file created
Require user  your_user1 user2 userN

Upewnij się także, że plik .htacces jest chroniony przed możliwością odczytu tekstu.

nano /srv/www/www.mydomain.com/.htaccess
chmod 750  /srv/www/www.mydomain.com/.htaccess
chgrp www-data /srv/www/www.mydomain.com/.htaccess

Gratulacje! Pomyślnie zabezpieczyłeś hasłem subdomenę www.mydomain.com w swojej witrynie, a użytkownicy zostaną poproszeni o podanie danych uwierzytelniających w celu uzyskania dostępu do zawartości witryny.

Ponadto, jeśli chcesz chronić inne domeny lub subdomeny utworzone na Twoim serwerze za pomocą już utworzonych poświadczeń, po prostu skopiuj plik .htaccess na ścieżkę Apache swojej subdomeny i upewnij się, że www-data ma dostęp do odczytu.

Za pomocą Apache Web Direcory Password Protect Zentyal Weberver można sfałszować z dodatkową warstwą zabezpieczeń w celu ujawnienia poufnych informacji zamieszczonych w Twoich domenach, ale pamiętaj, że ta metoda chroni tylko katalogi, a nie przesyłane pliki i hasła przez przeglądarkę, więc spróbuj użyć protokołu HTTPS, aby chronić dane uwierzytelniające użytkownika przed przechwyceniem.