Poprawnie skonfiguruj wirtualne hosty Apache dla wielu użytkowników


15

Z góry dziękuję za wszelką pomoc, którą możesz udzielić. Nauczyłem się, jak korzystać z Linuksa (Ubuntu), apache, wirtualnych hostów i kilku bitów w zakresie bezpieczeństwa, choć jeszcze nie udało mi się połączyć ich wszystkich bezproblemowo.

Nauczyłem się też na własnej skórze błędów popełnianych w przeszłości w związku z nieprawidłowym konfigurowaniem kont użytkowników i witryn / wirtualnych hostów. Ssh do serwera jako root (wiem, bardzo źle) i ręcznie utworzyłem wszystkie wirtualne hosty i pliki, więc wszystkie są własnością root. Miałem starą wersję wykorzystywanego joomla i złośliwego kodu spamu wstawionego na wszystkich moich wirtualnych hostach.

Jestem w trakcie przeprowadzki na nowy serwer i szukam właściwych kroków do skonfigurowania wirtualnych hostów i kont użytkowników, którzy mogą uzyskać do nich dostęp. Ponieważ korzystamy z oprogramowania innych firm, od czasu do czasu potrzebowaliśmy kogoś innego, aby odwiedził witrynę w celu sprawdzenia plików tej witryny.

Nasz obecny serwer to wersja 10.04, jednak nowy serwer to wersja 12.04. Wszystkie pliki witryny są skonfigurowane w obszarze

/home/www/site1.com

/home/www/site2.com

/home/www/site3.com

itp

Krótko mówiąc, chyba o to mi chodzi.

  1. Jak poprawnie skonfigurować wirtualnego hosta i użytkownika, aby miał dostęp tylko do własnych plików, a nie do żadnego innego wirtualnego hosta na serwerze. Na przykład, jeśli ta strona zostanie wykorzystana przy użyciu złośliwego kodu, nie może zainfekować innych witryn na serwerze

  2. Jak mam skonfigurować użytkowników, aby mogli tylko ftp do swoich plików i nie mieli dostępu do żadnej z innych stron.

Jak wspomniano wcześniej, istnieje wiele artykułów opisujących, jak wykonać jeden z tych kroków, ale nic, co łączy je płynnie.

Naprawdę doceniam pomoc, którą każdy może zaoferować. Poproś o dodatkowe informacje, których możesz potrzebować, aby udzielić porady. Obecnie prowadzę samouczki, aby skonfigurować chroot, ale obawiam się, że nie robię tego poprawnie, ponieważ po drodze zauważyłem kilka niespójności. Badam także jailkit.

Odpowiedzi:


6

Ponieważ pytanie jest najwyższym wynikiem wyszukiwania w Google, gdy jest pytany „oddzielny użytkownik apache wirtualnego hosta”, chciałbym udzielić bardziej szczegółowej odpowiedzi na podstawie tej odpowiedzi . Moja odpowiedź nie obejmuje przypadku użycia PHP i CGI (użyłbyś suPHP). Koncentruje się na PHP, gdy jest używany jako moduł apache.

Możesz użyć modułu apache apache2-mpm-itk . Jest dostępny dla aktualnej wersji Apache 2.4. Pochodzi z dyrektywą AssignUserID. Ta dyrektywa definiuje użytkownika i grupę, z którymi obsługiwane jest żądanie hosta wirtualnego. To jest przykład konfiguracji strony Apache, z którą skończyłem:

<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>

Oczywiście poprawia to bezpieczeństwo tylko wtedy, gdy poszczególne DocumentRoots są własnością ich odpowiednich użytkowników i nie są dostępne dla grupy. Dla dalszego bezpieczeństwa związanego z PHP skrypty są osadzane w systemie DocumentRootz ograniczeniem open_basedir. Jeśli chodzi o dostęp do plików zaplecza, wolę SFTP z chroot .

Uwaga: apache2-mpm-itk jest obecnie niezgodny z modułem http2 Apache.


1

Nie uważam, że to odpowiedź na twoje pytanie. Ale ponieważ nie mogę jeszcze komentować, muszę pisać w polu „odpowiedz”. Sezonowo zarządzam siecią, jednym ze sposobów na przetestowanie i wypróbowanie bezpiecznych metod jest skonfigurowanie środowiska testowego na maszynie wirtualnej (tj. VirtualBox) lub na „starym” komputerze stacjonarnym. Jednym z bardzo częstych problemów administratorów hostów dla początkujących jest zrozumienie działania programów serwera WWW. W tym przypadku zakładam, że musisz zrozumieć, jak działa Apache i przynajmniej zrozumieć pliki konfiguracyjne. Uważam, że Webmin jest bardzo przydatnym narzędziem dla początkującego do zarządzania Apache i innymi usługami. Musisz poświęcić trochę czasu na wypróbowanie rzeczy w środowisku testowym, aby wszystko stało się dla Ciebie bardziej zrozumiałe.

Wracając do twojego pytania, myślę, że odpowiedzią może być tutorial lub mała książka. Sprawdź te artykuły na początek:

https://www.digitalocean.com/community/articles/how-to-set-up-apache-virtual-hosts-on-ubuntu-12-04-lts

http://www.servermom.org/build-ubuntu-server-a-complete-guide/


Dzięki biocyberman. Są to w zasadzie podstawowe kroki, które wykonuję i które znam. Jedyna różnica polega na tym, że nie pokazałem każdej witryny innemu użytkownikowi, co mam zamiar wypróbować w następnej kolejności, ale czy to zabezpiecza przed sobą foldery virtualhosts? Jailkit wydaje się być częścią rozwiązania, ale nie jestem w 100% pewien. W przeszłości grałem z webminem, więc ponownie go odwiedzę i sprawdzę, czy pomoże to w rozwiązaniu któregokolwiek z moich pytań.
user249729,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.