Comment configurer et sécuriser correctement un serveur LAMP de production?

8

Il est très difficile de trouver des informations complètes à ce sujet. Soit j'ai trouvé de courts tutoriels sur la façon dont vous effectuez l'installation, aussi simples que "apt-get install apache2", ou des tutoriels obsolètes. J'espérais donc pouvoir obtenir des informations professionnelles de mes collègues membres de la communauté Ubuntu: D

J'ai effectué un serveur Ubuntu 11.04 normal avec LAMP, SAMBA et SSH installés via l'installation du système. Mais j'ai du mal à configurer des hôtes virtuels et à rendre le système suffisamment sécurisé pour exposer le serveur au Web.

J'ai un peu suivi ce tutoriel jusqu'à présent.

J'ai 3 sites dans / etc / apache2 / sites-available qui ressemblent tous à ceci sauf pour les noms de sites différents:

<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>

Et je les ai activés avec la commande a2ensite donc j'ai des liens symboliques dans / etc / apache2 / sites-enabled .

Mon fichier / etc / hosts a ces lignes:

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

Et je ne peux accéder qu'à l'un d'eux à partir du navigateur (j'ai installé Lynx sur le serveur à des fins de test), donc je suppose que je ne les ai pas configurés correctement :)

Comment dois-je procéder pour obtenir une configuration sécurisée et appropriée? J'utilise également MySQL et je pense que ce tutoriel sera suffisant pour configurer SSH en toute sécurité. S'il vous plaît, aidez-moi à mieux comprendre la configuration d'Apache car je suis nouveau dans la configuration de mon propre serveur (je n'ai exécuté que XAMPP plus tôt) et veuillez indiquer comment je dois également configurer un pare-feu: D

Niklas
la source
1
Vous pouvez également demander à serverfault.com, un StackExchange pour la configuration et la maintenance des serveurs et des systèmes.
Kris Harper
2
Une réponse correcte à cela peut remplir des livres. Je suggérerais de diviser votre question en certaines concernant la configuration des hôtes virtuels et la sécurité. Une bonne réponse aux questions liées à la sécurité concerne une bonne connaissance de vos attaquants, de vos utilisateurs et de certains autres.
qbi
Merci, je vais vérifier serverfault si je peux trouver de bonnes réponses! :)
Niklas

Réponses:

1

Vous devez indiquer à Apache qu'il doit utiliser l'hébergement virtuel basé sur le nom au lieu de celui basé sur IP. Ajoutez donc ce qui suit à votre /etc/apache2/apache2.conf pour définir:

NameVirtualHost ip.address:port

Et chaque hôte virtuel doit définir un port:

<VirtualHost example.com:80>

la source
0

Je pense que vous devrez également ajouter vos adresses IP publiques si vous souhaitez que d'autres ordinateurs puissent se connecter. À l'heure actuelle, seuls vos bouclages sont mentionnés dans / etc / hosts. Ils doivent également inclure d'autres adresses IP.

Jo-Erlend Schinstad
la source
Êtes-vous sûr? Ne suffirait-il pas que je fasse simplement pointer mon serveur de noms de domaine vers mon adresse IP et que je laisse ensuite le routeur diriger le trafic vers le serveur? J'ai DHCP donc j'utilise le service DynDNS pour transférer le trafic vers mon IP.
Niklas