Quali sono i modi per proteggere un server LAMP condiviso, supponendo che l'accesso SSH sia disponibile per ogni utente?
Modifica: principalmente penso di proteggere il server dagli utenti stessi e tra loro.
Quali sono i modi per proteggere un server LAMP condiviso, supponendo che l'accesso SSH sia disponibile per ogni utente?
Modifica: principalmente penso di proteggere il server dagli utenti stessi e tra loro.
Probabilmente è impossibile, ma puoi rendere più difficile il successo di un utente malintenzionato.
Rafforza le tue difese:
Sicurezza indurire il sistema (magari facendo riferimento a una delle seguenti liste di controllo)
http://iase.disa.mil/stigs/checklist/ (look for UNIX Security Checklist)
https://benchmarks.cisecurity.org/en-us/?route=downloads.multiform
Add:
Un confronto decente degli strumenti sopra descritti è descritto qui: link
Tieniti aggiornato sulle patch di sicurezza.
Ottieni visibilità:
Deploy a HIDS (e.g. OSSEC) to help you detect when users are behaving bad.
Tutto quanto sopra richiederà uno sforzo continuo. Questa è sicurezza.
La prima cosa da fare secondo me è cambiare la porta ssh in qualcosa di non standard e installare qualcosa come fail2ban.
Potrebbe anche essere utile modificare il firewall per bloccare l'accesso dall'esterno alle porte inutilizzate (forse solo consentire 80, 423, 25 e ssh ... dipende)
Oltre alle altre risposte:
I permessi dei programmi (cgi, php, ecc.) eseguiti dal webserver sono un problema:
Se vengono eseguiti con le autorizzazioni del server Web, un utente malintenzionato può accedere ai file forniti da altri utenti. Sto pensando ai file di configurazione con le credenziali del database qui.
Se tali programmi vengono eseguiti con il permesso dei singoli utenti, possono modificare essi stessi i file di programma. Questo potrebbe rendere più facile sfruttare i problemi di sicurezza nelle applicazioni, ad esempio uno script .php potrebbe non convalidare correttamente i nomi dei file quando salva i file. E gli utenti hanno bisogno di permessi di scrittura nella directory web, quindi anche il programma php ha i permessi di scrittura.
SourceForge ha rilasciato un modulo apache e un file system di fuse che consente autorizzazioni più dettagliate:
Permissions bits are in a standard trio of "rwx" (read/write/execute) sets, but the normal "user" (owner), "group", and "other" categories are replaced by the trio of "project member", "project-initiated apache access", and "everyone".
Fondamentalmente non c'è nulla che tu possa fare per rendere davvero le cose sicure, in quanto cose come wordpress finiscono sempre con enormi problemi di sicurezza, così come PHP stesso ecc.
L'unico modo (penso) per essere certi è quello di eseguire ogni sito in una macchina virtuale separata. Questo (quasi) isola completamente un sito da un altro, ma ovviamente ha il sovraccarico di dover amministrare ogni VM, ha un maggiore utilizzo di memoria, più cicli di CPU ecc.
Oh e ogni VM ha bisogno di tutto il patching del software continuamente.
Vale sicuramente la pena considerarlo, poiché è molto più sicuro che cercare di mantenere il controllo su tutti quei siti.
Leggi altre domande sui tag web-hosting webserver shared-hosting