Suphp
Suphp php handler je modul Apache (mod_suphp), který spouští php skripty s vlastnictvím a oprávněním konkrétního uživatele.
To je považováno za bezpečnostní vylepšení, protože systém může sledovat, který uživatelův php skript běží (a způsobuje problémy, pokud nějaké jsou).
V prostředí sdíleného hostingu je suphp velmi populární, protože se velmi snadno instaluje a konfiguruje.
Suphp spouští php jako cgi. Potřebuje tedy nainstalovat balíček php5-cgi. Kvůli tomu je suphp mnohem pomalejší než mod_php.
Suphp ale přidává zabezpečení identifikace uživatele, který skript spustil. Pokud tedy potřebujete spouštět php jako cgi, pak je preferovaným způsobem suphp. Existují však mnohem lepší a rychlejší alternativy jako fastcgi, fpm atd., které mají vyšší výkon ve srovnání s cgi.
Suphp se skládá ze dvou komponent:
1. mod_suphp – modul Apache, který nahrazuje mod_php
2. suphp – binární soubor setuid, který nahrazuje suexec Apache, spouští php se specifickými uživatelskými právy.
1. Nainstalujte suphp na Ubuntu
1. Nejprve nainstalujte modul apache pro suphp, balíček libapache2-mod-suphp
$ sudo apt-get install libapache2-mod-suphp
2. Dále deaktivujte mod php, což je výchozí php handler na ubuntu
$ sudo a2dismod php5Module php5 vypnuto. Spusťte '/etc/init.d/apache2 restart' pro aktivaci nové konfigurace!
3. Nyní restartujte Apache
$ sudo /etc/init.d/apache2 restart * Restartování webového serveru apache2 apache2:Nelze spolehlivě určit plně kvalifikovaný název domény serveru pomocí 127.0.1.1 pro ServerName ... čekání apache2:Nelze spolehlivě určit server plně kvalifikovaný název domény s použitím 127.0.1.1 pro ServerName [ OK ]
To by mělo nainstalovat a povolit suphp. Konfigurační soubor pro mod php se nachází zde
$ cat /etc/apache2/mods-enabled/suphp.loadLoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so
Konfigurace suphp pro Apache je zde
$ cat /etc/apache2/mods-enabled/suphp.confAddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml suPHP_AddHandler application/x-httpd-suphp suPHP_Engine na # Ve výchozím nastavení zakažte suPHP pro webové aplikace zabalené v debianu, protože soubory # jsou ve vlastnictví uživatele root a suPHP je nemůže spustit kvůli min_uid. suPHP_Engine off # # # Použít konkrétní konfigurační soubor php (adresář, který obsahuje soubor php.ini)# suPHP_ConfigPath /etc/php4/cgi/suphp/# # Řekne mod_suphp, aby NEZpracovával požadavky typu.# suPHP_RemoveHandler
Výše uvedená konfigurace dělá ze suphp obslužnou rutinu pro soubory php.
2. Nastavte ID uživatele a ID skupiny pro každého virtuálního hostitele
Aby suphp spouštělo php skripty se specifickým userid/groupid, musíme nastavit konfiguraci pro každého virtuálního hostitele v konfiguračním souboru Apache.
Konfigurační soubor Apache na ubuntu se nachází na adrese
/etc/apache2/sites-available/default
Upravte příslušného virtuálního hostitele a přidejte nastavení uživatelské skupiny suphp, jak je uvedeno níže. Direktiva suPHP_UserGroup říká Apache, aby použil userid/groupid pro konkrétního virtuálního hostitele.
ServerName some-site.com ServerAlias www.some-site.com DocumentRoot /home/mike/public_html suPHP_UserGroup mike mike Pokud nechcete upravovat hlavní konfigurační soubor Apache, vytvořte nový soubor ve stejném adresáři
/etc/apache2/sites-available/A přidejte do tohoto souboru blok virtuálního hostitele. Poté použijte nastavení pomocí příkazu a2ensite.
$ sudo a2ensite název_souboru3. Nakonfigurujte oprávnění
Suphp také dává "500 Internal Server Error", pokud je soubor php zapisovatelný podle skupiny. Protokol chyb bude mít záznam jako tento
SoftException v Application.cpp:564:Adresář "/var/www" je zapisovatelný podle skupiny, referer:http://localhost/index.phpChcete-li to vyřešit, zkontrolujte oprávnění a ujistěte se, že skupina nebo ostatní nemají oprávnění k očekávanému čtení souboru php.
Příkaz Traceroute nefunguje na Ubuntu Encfs – Jak šifrovat a chránit data heslem na Ubuntu/Debian/Linux MintUbuntu