Installation av SuPHP (tidigare kallad PHPsuexec)
Vad har ändrats?
Alla våra servrar använder SuPHP (tidigare kallad phpsuexec) sedan år 2006.
Förklaring av vad SuPHP (tidigare kallad PHPsuexec) är:
På de flesta Apache-servrar, körs PHP som en Apache-modul. Det görs som standard.
Varje process i Unix är kopplad till en "ägare", normalt det användar-ID som startade den. Apache startas och körs normalt av en speciell användare som ges namnet "nobody" för att skilja den från andra, vanliga inloggade användare.
Om en fil tex. sparas av ett PHP script så får filen ägaren "nobody" eftersom PHPscriptet körs av Apache, och dessutom måste mappen filen sparas i ha "777" för att "nobody" ska få spara filen i mappen.
Det är därför så kallade "phishing scams" (eBay/PayPal bedrägerier, online bank bedrägerier) förekommer så ofta.
"Scammers" söker på nätet för säkerhetshål, och det är allt för enkelt för dem om de hittar en server som är konfigurerade så.
Vi har därför valt att installera SuPHP (tidigare kallad PHPsuexec) som gör att PHP inte körs som en Apache-modul, utan som CGI.
Processens "ägare" blir då inte "nobody" utan "kontonamnet". (Och det räcker då att mappen har "755" för att php-scriptet ska få skriva/spara i mappen)
Hur förbättrar detta för Er?
Alla script körs med "kontonamnet" istället för som det gjorde före år 2006, av "nobody".
Det är viktigt för oss eftersom vi då bla. snabbare kan hitta det konto som kör ett script som får servern att överbelastas eller liknande.
Och om det är SPAM som skickas ut från en av våra servrar, kan vi snabbt se vilket konto som detta sker ifrån, och därmed undvika mail-problem såsom svartlistningar o.s.v. (Eftersom med SuPHP, kommer inga mail som skickas från ett script längre ha avsändare "nobody" utan istället "kontonamn")
Och om ett säkerhetshål i ett script gör så att en hackare lyckas skicka upp ett script på ett konto, så kan inte det skriptet användas till att hacka sig in på ett annat konto, eftersom ägaren som "kör" scriptet då inte länge är "nobody" utan "kontonamn" - och "kontonamn" har endast rätt att skriva/köra på sitt egna konto - inte i någon annans konto.
Ytterligare säkerhet är att CloudLinux numera också är installerat vilket förstärker detta skydd.
Och inga mappar behöver (eller får) längre ha "777", vilket gör det betydligt säkrare.
Nu till detaljerna över SuPHP (tidigare kallad PHPsuexec)
1. 777 Rättigheter
Föregående konfiguration (före år 2006): När PHP körs som en Apache-modul, kör den som användare/grupp (user/group) vilket vanligtvis är "nobody".
När det körs så, så måste de filer och mappar som ska "skrivas" (redigeras/ändras) ha rättighet 777 (läsa/skriva/köra som användare/grupp/övriga)
(read/write/execute at user/group/world level)
Det är ett mycket osäkert sätt, eftersom det ger vem som helst tillåtelse att läsa och "skriva" till filen.
Nya konfigurationen (efter år 2006)(SuPHP (tidigare kallad PHPsuexec)): PHP körs som CGI med suexec aktiverat - Dina PHP script körs nu som användare/grupp.
Filer eller mappar som Ditt php-script ska kunna skriva i, behöver inte längre använda rättighet 777. Det är faktiskt så att om 777 används för filer eller mappar, kommer de orsaka ett "500 - internal server error" felmeddelande.
Det är för att skydda Dig från att någon utomstående ska kunna hacka sig in i Din mapp eller ändra i Dina filer/script.
Dina mappar kan ha max 755 (läs/skriv/köra av Dig (kontonamn) och läsa/köra av övriga) (read/write/execute by you, read/execute by everyone else)
Och php-filerna kan ha max 644.
2. .ini istället för .htaccess
Under den tidigare konfigurationen kunde man ändra PHP inställningar genom att lägga in kod i en .htaccess fil placerad i php-scriptets mapp.
(.htaccess filer kommer fortfarande kunna användas - dock ej för att ändra PHP inställningar)
Tillexempel kunde Du stänga av php-inställningen "allow_url_fopen" med denna rad i en .htaccess:
php_value allow_url_fopen off
När däremot PHP körs som CGI/SuPHP, är det fortfarande möjligt att ändra PHP-inställningar, men det kan inte göras med en .htaccess fil.
Det kan orsaka ett "500 internal server error" felmeddelande när man försöker komma åt scripten.
Det beror på att Apache inte längre används för att köra php.
Alla php-inställningar måste tas bort från Er .htaccess-fil för att undvika "500 internal server error".
NYTT (år 2014): Ändra istället värdet via Select PHP Version i Cpanel - se mer här:
http://forum.psychof...?showtopic=1577
3. Om php.ini
php.ini filen är konfigurationsfilen som servern kontrollerar i för att se om några funktioner ska stängas av eller på, eller ändra det som är standard på servern.
Namnet kanske inte låter bekant, men det är egentligen bara en text-fil med namnet "php.ini"
För att ändra saker såsom tex. allow_url_fopen ska vara On istället för Off som det är som standard, så rekommenderar vi att Ni kontaktar oss och får en kopia på serverns php.ini fil.
Man kan även ladda ned följande exempel fil (en standardfil) men det är inte säkert att det fungerar optimalt då :
php.ini.txt
( OBS! Ändra namn på filen till php.ini )
Redigera filen med de inställningar Du vill använda såsom tex:
allow_url_fopen = On
Leta då reda på följande rader och ändra "Off" till "On":
; Whether to allow the treatment of URLs (like http:// or ftp://) as files. allow_url_fopen = Off
och skicka sedan upp den in i public_html mappen och alla mappar som ska ha inställningen.
4. Felsökning
Hjälp! Mitt php-script fungerar inte eller har felmeddelande.
1. Kontrollera så att filerna scriptet använder inte har högre rättigheter satta än 644. (Alltså filer med filändelsen .php )
2. Kontrollera att mappens rättighet där scriptet finns i inte har högre rättighet satt än 755. (det inluderar de mappar som scriptet ska använda också, tex. undermappar o.s.v)
3. Kontrollera så Du inte har en .htaccess fil med "php_values" (php värden/inställningar) i.
Det kommer orsaka ett "500 Internal server error" när scriptet försöker köras.
PHP inställningarna behöver tas bort ur .htaccess-filen och istället skrivas i en php.ini fil istället, som beskrivet ovan.
4. Tänk på att filer och mappar som ett php-script skapat har ägare "nobody", vilket gör att scriptet ej längre har tillåtelse att ändra eller ta bort dessa filer/mappar när SuPHP är aktiverat. Ej heller Du kan ändra i dessa mappar eller filer eftersom ej heller Du "äger" rätt till att göra det.
Vänligen kontakta oss så får vi manuellt ändra ägare till dessa mappar & filer till Dig, det vill säga "kontonamn".
5. När kommer SuPHP (tidigare kallad PHPsuexec) införas på den server mitt konto finns på?
Dessutom kommer meddelande finnas i denna tråd om vilken server det kommer ske på och när.
Alla servrar har SuPHP/PHPsuexec aktiverat sedan år 2006
Detta inlägg har redigerats av Erik: 12 november 2014 - 14:55