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