|
blog actif depuis 632 jours.
retours d'expériences, codes sources, réflexions, humeurs... d'un webmaster |
|
|
Wed 29 Oct Je viens de commander un serveur avec une distribution linux seule et je profite de l'occasion pour vous donner les différentes étapes à suivre pour installer et configurer les services nécessaires à un serveur Web LAMP, avec le minimum de précautions à prendre en matière de sécurité : - Apache 2 - Mysql 5 - PHP 5 - PhpMyAdmin 3 Le tout en ligne de commande via SSH, sous Fedora 9. SSH Vous venez de recevoir vos codes de connexion SSH à votre serveur. Ces codes sont les codes root. Il est fortement déconseillé de permettre à root d'avoir accès à votre machine en SSH. La première chose à faire est donc de créer un nouvel utilisateur et de bloquer l'accès SSH pour root. (l'utilisation du compte root se fera via la commande su). Editez le fichier sshd_config et mettez PermitRootLogin à no Installation des services Fedora est une distribution basée sur les rpm. La fonction yum permet de gérer les paquetages installés et leurs dépendances. Pour le serveur LAMP, il vous faudra installer les paquetages suivants : - httpd (le démon http d'Apache) - mysql (le client MySQL) - mysql-server (le serveur MySQL) - php (le moteur PHP) - phpMyAdmin (l'interface d'administration de MySQL) yum install httpd mysql mysql-server php phpmyadmin ApacheLa configuration d'apache se fait grâce au fichier httpd.conf (situé par défaut dans /etc/httpd/conf ) NB : Il est conseillé de copier le fichier original avant de le modifier. Pensez à redémarrer apache pour prendre en compte vos modifications. Vérifier que le module php5 est chargé. En principe, apache charge les fichiers conf situés dans /etc/httpd/conf.d/ (grâce à la directive Include conf.d/*.conf indiquée dans httpd.conf). Vous devez y trouver un fichier php.conf qui doit contenir ces lignes : LoadModule php5_module modules/libphp5.so Vous pouvez tester qu'apache fonctionne en allant sur l'url http://monserveur (monserveur étant le nom de votre serveur ou son IP) Pour en savoir plus sur l'utilisation et la configuration d'apache : http://httpd.apache.org/docs/2.0/ MySQL et PhpMyAdminPar défaut, phpMyAdmin est installé dans /usr/share/phpMyAdmin. Si vous déplacez le répertoire phpMyAdmin, veillez à configurer correctement le fichier /etc/httpd/conf.d/phpMyAdmin.conf qui contient le chemin vers phpMyAdmin. Vérifiez également les droits d'accès à phpMyAdmin. La config par défaut est : <Directory /usr/share/phpMyAdmin/> Ce qui ne donne accès qu'en local. Vous pouvez changer le allow from et le mettre à all. L'alias phpMyAdmin Alias /phpMyAdmin /usr/share/phpMyAdminpermet d'accéder à phpMyAdmin via l'adresse http://monserveur/phpMyAdmin. Vous pouvez également changer cette adresse par souci de sécurité, en modifiant l'Alias apache. Ainsi Alias /monphpMyAdmin /usr/share/phpMyAdminvous permettra d'accéder à phpMyAdmin via l'adresse http://monserveur/monphpMyAdmin. Connexion L'accès doit se faire en mode http. Vous pouvez vérifier si c'est le cas en éditant le fichier config.inc.php se trouvant dans le répertoire /usr/share/phpMyAdmin Vous devez avoir la ligne suivante : $cfg['Servers'][$i]['auth_type'] = 'http'Par défaut, la connexion au serveur mysql se fait avec l'utilisateur root sans mot de passe, ce qui est peu recommandé. Il faut donc créer un administrateur autre que root qui aura tous les privilèges et, après avoir testé la connexion du nouvel administrateur, supprimer le compte root. Tout cela se fait via phpMyAdmin, dans la partie privilèges. Affichage Vous pouvez cacher les bases mysql et information_schema, qui contiennent des infos sur les bases de données. Pour cela, toujours dans le fichier conf.inc.php, éditez la ligne suivante : $cfg['Servers'][$i]['hide_db'] = 'information_schema|mysql';Si vous n'arrivez plus à vous connecter à phpMyAdmin, pas de panique, vous pouvez utiliser mysql en ligne de commande. Pour en savoir plus sur l'installation de mysql : http://mysql2.mirrors-r-us.net/doc/refman/5.0/fr/installing.html PHPLà encore, quelques modifications sont à apporter au fichier de configuration /etc/php.ini : short_open_tag = Off force à commencer vos scripts php par < ?php et non pas < ? asp_tags = Off desactive les tags <% %> Vérifiez que register_globals = Offce qui est le cas par défaut depuis php 4.2. Cette directive permet de ne pas considérer les variables EGPCS (Environment, GET, POST, Cookie, Server) comme des variables globales, ce qui pose des problèmes de vulnérabilité http://fr.php.net/manual/fr/security.globals.php. error_reporting = E_ALL & ~E_NOTICEpour éviter de surcharger vos logs avec les notifications diverses Vérifiez également que display_errors est bien à Off. Ceci permet de ne pas afficher les erreurs sur vos pages. Pour en savoir plus sur l'installation et la configuration de php : http://www.php.net/manual/fr/install.php Reboot Une fois que tous les services sont installés et configurés, il faut tester le reboot de la machine, et surtout vérifier que ces services démarrent automatiquement. Pour avoir la liste des services qui démarrent au boot, faites chkconfig -- listPour ajouter un service au démarrage du système, par exemple httpd Chkconfig -- level 3 httpd on3 est le niveau de boot. Vous le connaitrez grâce à la commande runlevel.
CommentairesAucun commentaire
Ajouter un commentaire |
Webmaster depuis maintenant presque 10 ans, j'ai créé ce blog pour publier mes retours d'expérience et parler du Web et du développement Web en général, mais aussi de plein d'autres choses...
![]()
![]()
|