Narzędzia użytkownika

Narzędzia witryny


wiki:mod-itk

Apache mod_itk

Ostrzeżenie. Mod-itk to już martwy projekt. Nadal działa jednak bardzo dobrze i może być przydatny na środowiskach bez kontenerów, gdzie jest potrzeba izolacji poszczególnych aplikacji.

Pakiety RPM httpd-itk można pobrać z https://rpm.baszarek.pl/, lub z https://copr.fedorainfracloud.org/coprs/seem/httpd-itk/. Niektóre dystrybucje jeszcze je dostarczają, ale już coraz rzadziej.


Opis działania

  1. Apache otrzymują żądanie http przez protokół https. Wówczas mod-itk niczego jeszcze nie robi.
  2. Apache rozszywa zapytanie używając modułu mod_ssl.
  3. Używając dyrektywy AssignUserId z konfiguracji wirtualnego hosta Apache używa uprawnień dedykowanego użytkownika do operacji na plikach oraz proxy fcgi.

Biorąc pod uwagę mankament z pierwszego punktu, warto rozszywać ruch https za pomocą dedykowanego proxy, na przykład Nginxa, HAProxy, lub nawet innego Apache.


Instalacja i konfiguracja

Należy zainstalować pakiety httpd, httpd-itk, php-fpm, potrzebne moduły PHP-a oraz Apacha.

Po instalacji pakiety httpd-itk, należy zmienić moduł MPM w pliku /etc/httpd/conf.modules.d/00-mpm.conf z:

LoadModule mpm_event_module modules/mod_mpm_event.so

na

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

Moduł prefork działa wolniej, niż event, ale do prostych stron typu Wordpress, Mantis, czy Nextcloud w zupełności wystarczy.

Teraz trzeba odkomentować linijkę

LoadModule mpm_itk_module modules/mod_mpm_itk.so

w pliku /etc/httpd/conf.modules.d/00-mpm-itk.conf. Potem trzeba zrestartować Apache. Przeładowanie nie wystarczy i Apache się zawiesi.

systemctl restart httpd

Tworzenie użytkownika aplikacyjnego:

useradd -u 2001 -d /var/www/mojastronapl/ -s /sbin/nologin mojastronapl
mkdir /var/www/mojastronapl/public_html
chown -R mojastronapl:mojastronapl /var/www/mojastronapl
chmod 700 /var/www/mojastronapl
chmod 700 /var/www/mojastronapl/public_html
semanage fcontext -m -t httpd_sys_rw_content_t '/var/www/mojastronapl(/.*)?'
restorecon -Rv /var/www/mojastronapl

W pliku wirtualnego hosta, w sekcji <VirtualHost *:80> (tam, gdzie jest również ServerName), dodać linijkę

AssignUserId mojastronapl mojastronapl

W pliku /etc/php-fpm.d/mojastrona.pl.conf można dodać dwie nowe linijki:

listen.owner = mojastronapl
listen.group = mojastronapl

Teoretycznie wystarczy teraz przeładować php-fpm oraz httpd, ale restart zapewni zabicie starych procesów, używających jeszcze uprawnień Apache.

wiki/mod-itk.txt · ostatnio zmienione: 2023/12/17 19:17 przez lukasz

Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki