====== Presentation ====== En 2008, OVH a elargi son offre en serveur dédié. L'offre initiale en serveur dédié "entree de gamme" s'appelle Kimsufi. La nouvelle offre a pour nom Kimsufi XXL. Cette offre est en concurrence directe avec la Dedibox XXL, aussi proposée depuis 2008. Cette page va regrouper diverses informations sur la configuration, les tests et l'utilisation d'un serveur Kimsufi XXL en tant que serveur web. ====== Commande de la Kimsufi XXL ====== C'est assez simple (vu que c'est crucial pour OVH :P). Il suffit d'aller sur http://ovh.fr et puis de choisir l'offre en serveur dédié Kimsufi XXL. Mais ce qui est un peu etrange, c'est de recevoir le mail de commande pendant qu'on est en train de finaliser la commande. En me melangeant un peu les pinceaux, j'ai rendu la session de paiement invalide; car elle n'est valable qu'un temps limite apres l'affichage de la page... :P Bref, apres une 2e commande "tout en une seule fois", pas de probleme. Enfin, le serveur dedie demandait 72H mais le compte client etait cree tout de suite... Sauf que je n'ai jamais defini de mot de passe ?! On passe par la procedure de mot de passe oublie et voila... ====== Premiers pas dans le serveur ====== ===== Login root ===== Un mail vous annonce que votre serveur est prêt et vous donne le login/password... root ! Il faudrait mieux renforcer la securite en ne permettant pas le login root en direct. TODO: Il va falloir creer un autre utilisateur pour le login et restreindre le login root. ===== Filesystem et Partitions ===== Un premier "df -kh" donne Filesystem Size Used Avail Use% Mounted on /dev/sda1 3.0G 473M 2.4G 17% / varrun 1.5G 44K 1.5G 1% /var/run varlock 1.5G 0 1.5G 0% /var/lock udev 1.5G 20K 1.5G 1% /dev devshm 1.5G 0 1.5G 0% /dev/shm /dev/sda2 456G 33M 432G 1% /home La encore, pas terrible! * une premiere partition /dev/sda1 de 3G pour la racine / * et puis seulement une autre partition /dev/sda2 pour /home Sachant que MySql installe ses bases de donnees dans /var/lib/mysql; cela donne avec ces partitions un stockage dans /dev/sda1. Une taille de 3G est donc trop limitee pour heberger des gros sites. 2 solutions: * changer la configuration de mysql pour stocker les bases ailleurs dans /home * reformater le disque pour refaire les partitions ====== Installation des Logiciels ====== ===== APT ===== Voici le fichier /etc/apt/sources.list pour les depots des applications a installer deb ftp://mir1.ovh.net/ubuntu/ hardy main restricted deb-src ftp://mir1.ovh.net/ubuntu/ hardy main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb ftp://mir1.ovh.net/ubuntu/ hardy-updates main restricted deb-src ftp://mir1.ovh.net/ubuntu/ hardy-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## universe WILL NOT receive any review or updates from the Ubuntu security ## team. deb ftp://mir1.ovh.net/ubuntu/ hardy universe deb-src ftp://mir1.ovh.net/ubuntu/ hardy universe deb ftp://mir1.ovh.net/ubuntu/ hardy-updates universe deb-src ftp://mir1.ovh.net/ubuntu/ hardy-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb ftp://mir1.ovh.net/ubuntu/ hardy multiverse deb-src ftp://mir1.ovh.net/ubuntu/ hardy multiverse deb ftp://mir1.ovh.net/ubuntu/ hardy-updates multiverse deb-src ftp://mir1.ovh.net/ubuntu/ hardy-updates multiverse ## Uncomment the following two lines to add software from the 'backports' ## repository. ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. # deb ftp://mir1.ovh.net/ubuntu/ hardy-backports main restricted universe multiverse # deb-src ftp://mir1.ovh.net/ubuntu/ hardy-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. This software is not part of Ubuntu, but is ## offered by Canonical and the respective vendors as a service to Ubuntu ## users. # deb http://archive.canonical.com/ubuntu hardy partner # deb-src http://archive.canonical.com/ubuntu hardy partner deb http://security.ubuntu.com/ubuntu hardy-security main restricted deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted deb http://security.ubuntu.com/ubuntu hardy-security universe deb-src http://security.ubuntu.com/ubuntu hardy-security universe deb http://security.ubuntu.com/ubuntu hardy-security multiverse deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse ===== Lamp ===== La commande suivante va installer Apache2, PHP5 et MySQL5 $ apt-get install php5 php5-cli php5-mysql mysql-server NOTE * apache2 n'apparait pas dans la ligne de commande mais apache2 est installe car php5 en depend! Magique ? * mysql-server va demander un mot de passe root: meetz en un pour securiser un minimum votre installation et puis ensuite vous en changerez... Cela devrait tout installer et aussi lancer les serveurs. Pour tester que le serveur apache2 est bien actif maintenant, on va tester d'acceder a la page web par defaut. http://votre.adresse.ip/ ou votre adress ip est donne par la commande $ ifconfig Il faut prendre la valeur XXX.XXX.XXX.XXX de la partie eth0 ... ligne avec inet addr: XXX.XXX.XXX.XXX Si votre serveur apache2 fonctionne correctement alors, vous allez voir une page d'accueil. La mienne dit "It Works!" :P Le contenu de cette page est dans le dossier /var/www/ Allez vérifier que la page affichée correspond au contenu du fichier index.html more /var/www/index.html

It works!

La encore, l'installation par defaut utilise /var/www/ pour stocker les pages web et les autres contenus (uploads, etc...) On n'utilisera pas ce dossier car on a surtout l'espace dans /home Il faudra donc installer les fichiers web sous le dossier /home/ La configuration des noms de domaine permettra de relier facilement un nom de domaine a un dossier du disque. ===== Checkpoint 0 ===== Voila, on a un serveur LAMP qui tourne! C'est rapide et pas difficile pour mettre en place le minimum. Par contre, il faut changer plusieurs choses pour vraiment partir sur de bonnes bases et améliorer la sécurité du serveur... ===== Changer le dossier WWW ===== Par defaut, c'est dans le dossier /var/www/ qu'il faut deposer tous les fichiers accessibles pour le web. Il faut creer un dossier /home/mon-dossier-www (par exemple) Et puis on va modifier le fichier /etc/apache2/sites-available/default DocumentRoot /var/www/ DocumentRoot /home/mon-dossier-www/ Ensuite, il faut evidemment redemarrer le serveur apache pour prendre en compte le nouveau dossier: apache2ctl restart Pour tester que tout fonctionne correctement, on cree un fichier /home/mon-dossier-www/index.htm Avec comme contenu WELCOME Il suffit de rafraichir la page web http://mon.adresse.ip/ pour voir le nouveau contenu. ===== Changer le datadir de MySQL ===== Dans le fichier /etc/mysql/my.cnf, on va changer le dossier de stockage des bases de donnees Comme la config donne beaucoup d'espace a /home, on va creer un dossier dans /home pour MySQL Par exemple: /home/mon-dossier-mysql Il faut ensuite changer la valeur datadir a /home/mon-dossier-mysql/mysql Il faut creer le dossier /home/mon-dossier-mysql/mysql, mettre les droits a l'utilisateur systeme mysql, copier le dossier systeme /var/lib/mysql/mysql vers /home/mon-dossier-mysql/mysql/mysql et enfin relancer les serveurs MySQL mkdir /home/mon-dossier-mysql mkdir /home/mon-dossier-mysql/mysql chgrp mysql /home/mon-dossier-mysql/mysql chown mysql /home/mon-dossier-mysql/mysql cp -pR /var/lib/mysql/mysql /home/mon-dossier-mysql/mysql/mysql /etc/init.d/mysql stop /etc/init.d/mysql start Le serveur devrait se relancer sans erreur En cas d'erreur il faut essayer les commandes mysqladmin pour avoir plus d'informations sur les problemes. mysqladmin -p ping mysqladmin -p status ===== Installer un serveur de Mail: Postfix ===== Pour de nombreuses applications, on aura besoin de pouvoir envoyer des mails aux utilisateurs. De plus, pour la surveillance du systeme, on se fera envoyer des mails pour etre sur que le systeme fonctionne toujours :P Une bonne application de mailing est Postfix apt-get install postfix Choisir la configuration Internet et puis si vous avez un nom de domaine, mettez le votre a la place du ma-machine.kimsufi.com Ensuite, pour pouvoir tester rapidement qu'on peut envoyer des mails, installer mailx apt-get install mailx C'est une interface sous Linux mailx adress@mon-mail.com Ecrire le sujet et le texte. Pour finir, faire , donner un Cc: puis Le mail de test devrait arriver dans votre boite email ===== interdire le login SSH en root ===== WARNING TODO D'abord, il faut creer un 2eme utilisateur normnal!!! adduser user-normal Repondre aux questions... Donner un mot de passe... Verifier qu'on peut se connecter avec user-normal. WARNING Ensuite seulement... Dans le fichier /etc/ssh/sshd_config Changer la ligne PermitRootLogin yes en PermitRootLogin no Et puis relancer le serveur ssh /etc/init.d/ssh restart Se deconnecter de la session root et puis verifier qu'on ne peut plus se connecter en root... Se connecter avec user-normal pour les operations courantes Utiliser le compte root avec le "su" seulement pour les operations de maintenance systeme ====== Configuration plus avancée ====== [[ovh:kimsufi-xxl-advanced|Plus d'outils et de protection]] ====== Installation serveur ====== apt-get install fail2ban apt-get install php5 php5-mysql apt-get install mysql-server apt-get install mysql-client apt-get install postfix a2enmod rewrite deflate vhost_alias setenvif auth_basic auth_digest php5 ssl expires apt-get install backup-manager apt-get install phpmyadmin ln -s /usr/share/phpmyadmin /var/www/phpmyadmin apt-get install php5-gd apt-get install php5-curl apt-get install subversion apt-get install unzip apt-get install curl apt-get install gettext apt-get install htop apt-get install imagemagick apt-get install php5-xcache apache2ctl -k restart