Come posso impostare e proteggere correttamente un server LAMP di produzione?


8

È molto difficile trovare informazioni complete su questo argomento. O ho trovato brevi tutorial su come eseguire l'installazione, semplici come "apt-get install apache2" o tutorial obsoleti. Quindi speravo di poter ottenere alcune informazioni professionali dai miei colleghi della comunità Ubuntu: D

Ho eseguito un normale Ubuntu Server 11.04 con LAMP, SAMBA e SSH installati attraverso l'installazione del sistema. Ma ho qualche problema a configurare host virtuali e a rendere il sistema abbastanza sicuro da esporre il server al web.

Finora ho seguito questo tutorial .

Ho 3 siti in / etc / apache2 / siti-disponibili che sembrano tutti così tranne i nomi di siti diversi:

<VirtualHost example.com>
   ServerAdmin webmaster@localhost
   ServerAlias www.edunder.se
   DocumentRoot /var/www/sites/example
   CustomLog /var/log/apache2/www.example.com-access.log combined
</VirtualHost>

E li ho abilitati con il comando a2ensite, quindi ho collegamenti simbolici in / etc / apache2 / siti abilitati .

Il mio file / etc / hosts ha queste righe:

127.0.0.1 localhost
127.0.1.1 Ubuntu.lan Ubuntu
127.0.0.1 localhost.localdomain localhost example.com www.example.com
127.0.0.1 localhost.localdomain localhost example2.com www.example2.com
127.0.0.1 localhost.localdomain localhost example3.com www.example3.com

E posso accedervi solo dal browser (ho lynx installato sul server a scopo di test) quindi immagino di non averli impostati correttamente :)

Come devo procedere per ottenere una configurazione sicura e corretta? Uso anche MySQL e penso che questo tutorial sarà sufficiente per configurare SSH in modo sicuro. Aiutami a capire meglio la configurazione di Apache poiché sono nuovo nell'impostare il mio server (ho eseguito XAMPP solo in precedenza) e ti consiglio di sapere come devo installare anche un firewall: D


1
Potresti anche chiedere a serverfault.com, uno StackExchange per l'impostazione e la manutenzione di server e sistemi.
— Kris Harper,

2
Una risposta corretta a questo può riempire i libri. Suggerirei di dividere la tua domanda in alcuni aspetti riguardanti la configurazione degli host virtuali e la sicurezza. Una buona risposta a domande relative alla sicurezza riguarda una buona conoscenza dei tuoi aggressori, dei tuoi utenti e di altri.
— qbi,

Grazie, controllerò serverfault se trovo delle buone risposte! :)
— Niklas

Risposte:


1

Devi dire ad Apache che dovrebbe usare l'hosting virtuale basato sul nome anziché basato sull'IP. Quindi aggiungi quanto segue a /etc/apache2/apache2.conf per definire:

NameVirtualHost ip.address:port

E ogni host virtuale dovrebbe definire una porta:

<VirtualHost example.com:80>

0

Penso che dovrai aggiungere anche i tuoi IP pubblici se vuoi che altri computer siano in grado di connettersi. In questo momento, solo i tuoi loopback sono menzionati in / etc / hosts. Dovrebbero includere anche altri IP.


Sei sicuro? Non sarebbe sufficiente se il mio Domain Name Server punta al mio IP e poi permetto al router di indirizzare il traffico verso il server? Ho DHCP quindi sto usando il servizio DynDNS per inoltrare il traffico al mio IP.
— Niklas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.