Voglio ospitare un piccolo sito a casa e ho installato Apache ecc. in questo modo:
sudo apt-get update
sudo apt-get install tasksel
sudo tasksel install lamp-server
Tutto ha funzionato e tutto è pronto e funzionante.
Ora sono abituato a lavorare con XAMPP per lo sviluppo e non volevo usarlo dal vivo poiché molti riferimenti dicevano che non era molto sicuro.
Quindi la mia domanda è, ora che ho installato Apache/PHP e MySql con il metodo sopra; com'è il livello di sicurezza di default?
C'è un modo per renderlo più sicuro e magari un elenco di controllo o un riepilogo di eventuali modifiche che potrebbero essere consigliate?
Chiarimento:il server LAMP sarebbe un sito attivo, non in fase di sviluppo.
Risposta accettata:
Eseguo i miei server LAMP su Ubuntu connesso a Internet, quindi seguo sempre le stesse linee guida. Di solito, controllerò quanto segue:
- In Apache, rimuovere la documentazione o almeno non presentarla al server web (rimuovendo il collegamento
/etc/apache2/conf-enabled/apache2-doc.conf
) - In Apache, assicurati che i moduli non necessari non siano caricati. Con Ubuntu, questo viene fatto rimuovendo i collegamenti in
/etc/apache2/mods-enabled
. Ogni collegamento punta a un file nel/etc/apache2/mods-available
directory che carica e configura un modulo alla volta. - Puoi rivedere e abilitare
/etc/apache2/conf-available/security.conf
. Propongono alcuni suggerimenti per la sicurezza, che non sono attivati di default : - Negare l'accesso all'intero filesystem ad eccezione delle directory che in seguito consentiresti esplicitamente
- modificare il banner del server per fornire meno informazioni possibili sul software in esecuzione.
- In PHP, controlla di non stampare troppe informazioni di registrazione sullo schermo in caso di errore (parametri nella sezione Gestione degli errori e registrazione del
/etc/php4/apache2/php.ini
file. I commenti nel file danno molte informazioni su cosa è preferibile fare) -
Non c'è bisogno di esporre il tuo server MySQL a Internet. Per impostazione predefinita, in Ubuntu, il server MySQL è in ascolto solo su localhost. Controlla
/etc/mysql/my.cnf
nella sezione mysqld per il parametro bind-address . Dovrebbe essere su 127.0.0.1 :indirizzo-bind =127.0.0.1
-
Non installare più servizi su questo server di quelli di cui hai bisogno.
- Non dimenticare di applicare gli aggiornamenti quando arrivano.
- Non fare affidamento solo sulla configurazione del server LAMP, non dimenticare che devi anche mettere in esecuzione un'applicazione PHP che possa introdurre alcune minacce alla sicurezza (convalida dell'input e tutto il resto per evitare di digitare query SQL in input campo per recuperare dal DB maggiori informazioni che avresti dato tu stesso, …)
Queste sono le prime cose che mi vengono in mente. Naturalmente puoi trovare howto e guide più dettagliate su Internet :
- Sicurezza in MySQL 5.5
- Considerazioni sulla sicurezza in PHP
- Suggerimenti per la sicurezza per Apache 2.4