LAMP dans aptosid

LAMP est l'acronyme d'une série d'outils logiciels utilisés fréquemment tous ensemble pour faire fonctionner des serveurs et des sites web dynamiques :

ATTENTION: N'autorisez JAMAIS votre PC de tous les jours comme serveur web connecté à Internet ! Utilisez pour celà un PC purement dédié à rester un serveur web et ne lui laissez rien faire d'autre!

Usages d'un serveur:

Minimum Requis

Il vous faut au minimum 256 MO de RAM utilisable. Si vous avez moins, vous rencontrerez des problèmes, car un serveur avec MySQL consomme énormément d'espace en mémoire RAM pour fonctionner correctement. Sinon MySQL ne cessera pas de vous retourner des erreurs de type "cannot connect to mysql.sock", signe patent de manque de RAM.

Les paquets que vous avez besoin d'installer sont:

apache2
apache2-utils
apache2-mpm-prefork
php5 php5-common
mysql-server
mysql-common
libapache2-mod-php5
php5-mysql
phpmyadmin

ATTENTION !: en préalable à votre installation de Generic_Server, si splashy est installé, désinstallez-le et purgez ses fichiers de configuration via la commande :

apt-get remove --purge splashy

Car splashy casse tout le temps MySQL.

Le fichier de configuration d'Apache est localisé dans :/etc/apache2/apache2.conf et votre répertoire web sera /var/www.

Pour vérifier que php est bien installé et fonctionne correctement, créez juste un fichier nommé test.php avec une fonction phpinfo() exactement comme celle figurée ci-dessous.

mcedit /var/www/test.php

# test.php
<?  phpinfo(); ?>

Puis avec un navigateur Internet, rendez-vous à la page:

http://localhost/test.php
ou
http://votre_adresse_ip:80/test.php

Ceci devrait vous retourner toute votre configuration et tous les paramètres par défaut de php.

Vous pouvez éditer les valeurs désirées ou configurer des domaines virtuels en utilisant le fichier de configuration d'Apache.

Si vous voulez tester votre installation, avec votre navigateur, rendez-vous à la page :

http://votre_adresse_ip/apache2-default/

Si un message de bienvenue vous est affiché c'est que votre installation est correcte.

La racine par défaut des répertoires de documents pour apache2 est /var/www. Changez-en pour:

mkdir /home/mon_nom/www
ln -s /home/mon_nom/www /var/www

Au moyen de ces commandes vous serez en mesure d'éditer directement votre site dans votre répertoire d'utilisateur habituel.

Clients FTP

Utilisez SSH et lisez attentivement le chapitre SSH. notez qu'aptosid embarque un client FTP intégré sous la forme de Dolphin, qui vous permet d'uploader vos fichiers.

Activer des protocoles de sécurité efficaces pour les serveurs web

Pare-feux

Sans pare-feu (firewall), vous n'avez absolument aucune sécurité pour votre serveur. Souvenez-vous qu'il faille bloquer TOUT jusqu'à ce que vous ayez besoin de débloquer quelque chose. Sitôt que vous n'avez plus besoin d'un déblocage, bloquez-le à nouveau !.

21 (ftp)
22 (SSH)
25 110 (email)
443 (SSL http or https)
993 (imap ssl)
995 (pop3 ssl)
80 (http)
et tout autre port!

Protégez par défaut les fichiers du serveur

Un aspect d'Apache occasionnellement mal compris est la fonction d'accès par défaut. Celle-ci implique, tant que vous ne modifiez pas cette situation, que si le serveur est mesure de trouver un chemin utilisant des URL de syntaxe ordinaire vers un fichier, alors il peut servir ce fichier aux clients.

Considérez notamment l'exemple qui suit:

 1. # cd /; ln -s / public_html
 2. Accessing http://localhost/~root/

Ce qui revient à permettre aux clients du serveur de se promener dans toute l'aborescence du système de fichiers! Donc, pour remédier à cette situation, ajoutez les blocages qui suivent à la configuration de votre serveur:

<Directory />
   Order Deny,Allow
   Deny from all
</Directory>

Cette instruction interdit l'accès par défaut aux adresses du système de fichiers. Il suffit d'y mentionner les blocs appropriés de <Directory> (Répertoires) pour n'accorder accès qu'à ceux où vous voulez l'autoriser. Par exemple :

<Directory /usr/users/*/public_html>
    Order Deny,Allow
    Allow from all
</Directory>
<Directory /usr/local/httpd>
    Order Deny,Allow
    Allow from all
 </Directory>

Faites particulièrement attention aux interactions des directives <Location> et <Directory> ; par exemple, même si <Directory /> bloque l'accès, une directive <Location /> peut le contourner.

De la même manière, soyez prudent, et ne jouez pas au malin avec la directive UserDir ; la régler sur "./" aurait le même effet, à l'égard de l'administrateur, que le premier exemple cité plus haut. Si vous utilisez la version d'Apache 1.3 ou les suivantes, nous vous recommandons avec insistance d'inclure la ligne qui suit dans les fichiers de configuration de votre serveur :

UserDir disabled root

SSL

Lancez le script “apache2-ssl-certificate”

# apache2-ssl-certificate

L'écran suivant va apparaître pour vous permettre d'entrer l'information requise.

Creating self-signed certificate
replace it with one signed by a certification authority (CA) enter your ServerName at the Common Name prompt. If you want your certificate to expire after x days call this programm
with -days x
-----
Generating a 1024 bit RSA private key
--------
writing new private key to '/etc/apache2/ssl/apache.pem'
--------
You are about to be asked to enter information that will be incorporated into your certificate request.
-----------
What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. For some fields there will be a default value,
----------
If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]:

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:

Organization Name (eg, company; recommended) []:

Organizational Unit Name (eg, section) []:

server name (eg. ssl.domain.tld; required!!!) []:

Email Address []:

Lancez le script “a2enmod ssl”. exemple:

 # a2enmod ssl

Ceci va créer automatiquement un lien symbolique entre mods- available et mods – enabled

Faites une copie du fichier '/etc/apache2/sites-available/default' dans le /etc/apache2/sites-available/ - appelez le 'ssl'

# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Créez un lien symbolique de nouveau site vers cette configuration pour cet usage

#  ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/
(ou)
#a2ensite ssl

Si vous voulez modifier quelque réglages basiques de configuration dans /etc/apache2/apache2.conf et si vous changez la racine du répertoire de documents du serveur, déclarez-le dans le fichier /etc/apache2/sites-available/default et redémarrez le serveur Apache.

Pour redémarrer le serveur web Apache utilisez cette commande :

#service apache2 restart

À présent nous devons modifier l'adresse de port utilisée dans /etc/apache2/ports.conf qui par défaut écoute sur le port 80, et qu'installant SSL il faut utiliser le port 443 pour écouter.

 Listen 443

Éditez /etc/apache2/sites-available/ssl (ou tout nom que vous donneriez à la nouvelle configuration ssl de votre site) et changez port 80 dans le nom du site pour le port 443.

Ajoûtez comme ci-dessous deux lignes quelque part dans le fichier /etc/apache2/apache2.conf

  SSLEngine On

  SSLCertificateFile /etc/apache2/ssl/apache.pem

Éditez SSLCertificateFile /etc/apache2/ssl/apache.pem et entrez l'adresse du fichier de certificat et du fichier de clé du certificat. Trouvez ci-dessous un exemple :

SSLCertificateFile /etc/apache2/ssl/online.test.net.crt
SSLCertificateKeyFile /etc/apache2/ssl/online.test.net.key

Réglez ServerSignature sur off, suivez les étapes qui suivent et en éditant le fichier /etc/apache2/apache2.conf ajoûtez-y ces deux lignes :

  ServerSignature Off
 ServerTokens ProductOnly

Si vous décidez d'autoriser les différents types d'index, vous pouvez les contrôler à la ligne suivante du fichier /etc/apache2/apache2.conf:

 DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml

Redémarrez le serveur apache :

 service apache2 restart

Vous devriez à présent disposer d'un serveur bac-à-sable, que vous vous pourriez vouloir connecter à Internet, ... BAH NON !...Utilisez un PC exclusivement dédié à l'usage de serveur web!

Sources:

http://www.mysql-apache-php.com

http://httpd.apache.org/docs/1.3/misc/security_tips.html

http://www.debianhelp.co.uk/webserver.htm

Dernière révision du contenu le 14/08/2010 0100 UTC