Installation d’un serveur Linux Debian 6.0 (Squeeze)

Publié le février 6, 2011

debian1Debian 6.0 Squeeze est disponible depuis aujourd’hui. C’est l’occasion de mettre à jour l’article Installation d’un serveur Linux Debian qui à l’époque a été écrit pour une version Debian 5.0 Lenny.

Pour cet article, je pars d’une image debian-6.0.0-amd64-netinst.iso. Je déroule la procédure d’installation simplement afin d’arriver à un serveur de base vierge d’interface graphique et de tous logiciels sauf SSH. Je vais décrire maintenant les étapes de l’installation des packages complémentaires afin de disposer de Apache, MySQL, PHP, Java et Tomcat. Ceci peut vous intéresser, mais c’est également un aide mémoire pour moi-même. C’est un peu technique, mais je n’entre pas dans les détails.

Dans le précédent article j’utilisais le gestionnaire de package Apt. Je profite de cette mise à jour pour utiliser Aptitude. Afin que la gestion ds dépendance, les mises à jours et les suppressions fonctionnent correctement, il faut éviter d’utiliser alternativement les 2 outils sur un même serveur. Il faut donc faire attention à ne plus utiliser par réflexe apt-get et apt-cache.

Les commandes qui sont indiquées doivent être exécutées sous le compte root ou avec sudo (on va voir sudo plus loin).

Mettre à jour les dépots Apt / Aptitude

Apt et Aptitude, sont les outils qui permettent d’installer des packages et de gérer les dépendances. Les 2 outils utilisent les mêmes dépots. La mise à jour en question a pour but de mettre à jour la liste des packages disponibles.

Je commence par modifier le fichier /etc/apt/sources.list pour ajouter les dépots contrib et non-free ainsi que pour désactiver le CDROM. Mon fichier contient ceci :

#
 
# deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official amd64 NETINST Binary-1 20110205-14:31]/ squeeze main
 
#deb cdrom:[Debian GNU/Linux 6.0.0 _Squeeze_ - Official amd64 NETINST Binary-1 20110205-14:31]/ squeeze main
 
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ squeeze main contrib non-free
 
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
 
deb http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free

Et enfin :

aptitude update

Installation du serveur OpenSSH

Dans mon installation de base, j’ai installé le serveur SSH sur le serveur. Si ce n’est pas fait, il faut installer OpenSSH depuis la console physique de serveur.

aptitude install openssh-server

Création de l’utilisateur « dominique »

useradd -d /home/dominique -m -s /bin/bash dominique      

passwd

Installer sudo

sudo permet d’exécuter des commandes comme utilisateur root sans être connecté sous le compte root.

aptitude install sudo

Déclarer l’utilisateur dominique dans sudo en ajoutant la ligne suivante dans « /etc/sudoers »

dominique ALL=(ALL) ALL

A partir de là, tout se fait si possible sous le compte « dominique » (et utilisation de sudo pour les actions nécessitants les droits root).

Augmentation des limites systèmes (optionnel)

Pour mes besoins j’ai besoin d’augmenter certaines limites systèmes. Cela se fait en éditant le fichier  /etc/security/limits.conf

vi /etc/security/limits.conf

Personnellement, j’y ajoute les lignes suivantes :

*                soft    nofile        8192
*                hard    nofile        16384
*                soft    stack         16384
*                hard    stack         32768

Installation de apache2.2

sudo aptitude install apache2

Activer le mode rewrite

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

Installation de mysql server 5.1

sudo aptitude install mysql-server-5.1

Installation PHP 5

J’ai besoin de PHP 5 et quelques librairies complémentaires (curl par exemple pour appeler des web services en http, mysql, PEAR, …).

sudo aptitude install php5 php5-cli libapache2-mod-php5 php5-curl php5-gd php5-mysql php5-dev
sudo aptitude install locales-all

Installation et mise à jour de PHP PEAR

sudo aptitude install php-pear
sudo pear upgrade PEAR

Puis installation de quelques modules Pear

sudo pear install Mail Net_Smtp

Modification du php.ini

Editer « /etc/php5/apache2.php.ini » et mettre

output_buffering=4096

Installation d’un JDK

On peut soit installer openJDK 6 ou Sun JDK 6

openJDK

sudo aptitude install openjdk-6-jre openjdk-6-jdk

Sun JDK

sudo aptitude install sun-java6-jdk sun-java6-fonts

Installation de tomcat 6

sudo aptitude install tomcat6 tomcat6-admin

Installation de pdftotext

sudo aptitude install xpdf-utils

Installation de lftp

lftp est un client ftp qui sera utile pour mettre les sauvegardes sur le serveur FTP mis a disposition par OVH.

sudo aptitude install lftp

Paramétrage de apache

Copier le fichier de configuration de mon virtualhost dans « /etc/apache2/site-available« ,
activer le site et relancer Apache.

sudo a2ensite xxxxxx (ou xxxxxx est le nom du fichier .conf du virtualhost)
sudo /etc/init.d/apache2 reload

Paramétrage Tomcat

Dans /var/lib/tomcat6/conf/server.xml, on vérifie que le connecteur non-SSL inclut l’attribut « URIEncoding= »UTF-8″ ». C’est le cas apparemment par défaut maintenant.

    <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8"
               redirectPort="8443"/>

Sous Debian, Tomcat est très sécurisé. Une autre manière radicale de passer outre cette sécurisation est de la désactiver dans le fichier « /etc/init.d/tomcat6″, en indiquant :

TOMCAT6_SECURITY=no

Je constate que c’est la configuration par défaut maintenant. Par contre, je ne me permet ceci parce que je n’autorise l’accès à mon serveur Tomcat que localement. Dans /var/lib/tomcat6/conf/server.xml, j’ajoute une définition de valve au niveau engine :

    <Engine name="Catalina" defaultHost="localhost">
      <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127.0.0.1" deny=""/>

Je change également le fichier « /etc/default/tomcat6″ pour lui indiquer le bon timezone et augmenter ses ressources mémoires. Editer le fichier « /etc/default/tomcat6″, pour modifier la ligne JAVA_OPTS=…

JAVA_OPTS="-Djava.awt.headless=true -Xms256M -Xmx1024M -Duser.timezone=Europe/Paris -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC"

Relancer tomcat

sudo /etc/init.d/tomcat6 restart

Installer le compilateur GCC et l’outil make

sudo aptitude install gcc g++ make

Installer memcached

sudo aptitude install memcached php5-memcache

Dans cet article,  je décris memcached.

Pour son installation à partir des sources, suivre la procédure parfaitement décrite dans cet article. Par contre, il faut vérifier quelles sont les dernières versions des modules à télécharger.

Installer ntpdate

sudo aptitude install ntpdate

Pour mettre à l’heure en utilisant le serveur de temps de l’observatoire de Paris

sudo /usr/sbin/ntpdate ntp-p1.obspm.fr

Dans la crontab ajouter la ligne suivante afin de synchroniser l’heure tous les matins à 3h

0 3 * * * root /usr/sbin/ntpdate ntp-p1.obspm.fr >/dev/null

Installer fail2ban

En fonctionnement, un serveur s’expose à des attaques. Fail2ban permet de se protéger contre les attaques de masse sur certains ports TCP ou UDP en attente de connexion. Le premier protocole à protéger (le seul exposé à la livraison du serveur lorsque qu’il n’y a pas de logiciel complémentaire installé) est ssh. Ssh permet de prendre la main sur un serveur à distance. Mais si on connaît le port d’attente (22 par défaut) et le mot de passe root, on peut tout faire sur le serveur. Fail2ban scrute les logs des services en attente de connexion pour déterminer si une attaque est en cours et si donc il doit bloquer l’adresse IP de l’attaquant.

sudo aptitude install fail2ban

dans « /etc/fail2ban/jail.conf », j’ajout mon ip perso dans les ip a ignorer

ignoreip = 127.0.0.1 82.xxx.xxx.xxx

redémarrage de fail2ban

sudo /etc/init.d/fail2ban restart

Concernant la sécurité, on peut  (et on doit) aller plus loin, mais cela n’ai pas couvert par cet article.

Cas de l’installation sous Vmware server 2.0

Dans ce cas, il faut installer les vmware tools. Pour cela :

1. Dans l’administration Web Vmware Server 2.0, cliquer sur « Install VMware Tools » du serveur en question

2. Ouvrir une console Vmware pour accéder au serveur, se connecter sous le compte root et exécuter les commandes suivantes :

aptitude install autoconf automake binutils cpp gcc linux-headers-$(uname -r) make psmisc
mount /media/cdrom
cp /media/cdrom/VMwareTools-7.7.6-203138.tar.gz /tmp/.
cd /tmp/
tar xvfz VMwareTools-7.7.6-203138.tar.gz
cd vmware-tools-distrib/
./vmware-install.pl

Tags: , , , , , , ,

One Response to “Installation d’un serveur Linux Debian 6.0 (Squeeze)”

  1. joseph
    mai 09, 2011
    Reply

    Bonjour,
     
    merci pour ce tuto très intéressant.
    Je n'arrive pas à trouver les vmwaretools en v7-7-6 où les avez vous télécharger?
     
    par avance merci beaucoup de votre aide



Laissez un commentaire

Navigation

Categories
  •  Technique (35)
  •  Lucene / Solr (21)
  •  Moteur de recherche (19)
  •  Sites à découvrir (12)
  •  Web 2.0 (12)
  •  Productivité (10)
  •  Debian (6)
  •  Flux RSS (6)
  •  Web (6)
  •  Hébergement (3)
  •  Non classé (3)
  •  Wordpress (3)
  •  Freelance (2)
  •  Référencement (2)
  •  vmware (2)
  •  Mac OS (1)
  •  Réseaux (1)
  • Tags
  •  Solr (14)
  •  Lucene / Solr (11)
  •  RSS (5)
  •  Wordpress (5)
  •  java (5)
  •  tomcat (4)
  •  vmware (4)
  •  Crawler (3)
  •  Debian (3)
  •  OPML (3)
  •  Crossfeeds (2)
  •  PHP (2)
  •  Plugins (2)
  •  apt (2)
  •  mercurial (2)
  •  moteur de recherche (2)
  •  mysql (2)
  •  Agrégateur (1)
  •  Bitbucket (1)
  •  CAS (1)
  •  Debugbar (1)
  •  ESXi (1)
  •  Emilie Ogez (1)
  •  Fast (1)
  •  Firebug (1)
  •  Firefox (1)
  •  Flux RSS (1)
  •  Freelance (1)
  •  Google Chrome (1)
  •  Huridocs (1)
  •  Hurisearch (1)
  •  IE (1)
  •  IETester (1)
  •  Migration Day 2008 (1)
  •  Ogez (1)
  •  Poll (1)
  •  Référencement (1)
  •  SEO (1)
  •  Savoirs en réseau (1)
  •  Sondage (1)
  •  SurveyGizmo (1)
  •  WP-Poll (1)
  •  aiderss (1)
  •  ant (1)
  •  apache (1)
  •  aptitude (1)
  •  backup (1)
  •  bande passante (1)
  •  base de registre (1)
  •  catégorie (1)
  •  configuration (1)
  •  curl (1)
  •  dell (1)
  •  detection langue (1)
  •  dojo (1)
  •  débit (1)
  •  etch (1)
  •  extjs (1)
  •  framwork (1)
  •  gateway (1)
  •  git (1)
  •  google (1)
  •  hg (1)
  •  hosted (1)
  •  hosting (1)
  •  iis (1)
  •  indeed (1)
  •  javascript (1)
  •  jdk (1)
  •  jquery (1)
  •  log (1)
  •  magpie (1)
  •  mg4j (1)
  •  mod_auth_cas (1)
  •  mod_cas (1)
  •  mootools (1)
  •  morphologique (1)
  •  n-gram (1)
  •  ngp (1)
  •  ngram (1)
  •  ngramj (1)
  •  nightly build (1)
  •  nuage de tags (1)
  •  openSSL (1)
  •  openSUSE (1)
  •  optimisation (1)
  •  pagerank (1)
  •  patch (1)
  •  performances (1)
  •  perl (1)
  •  phpCAS (1)
  •  ping (1)
  •  pipeline (1)
  •  podcast (1)
  •  presse-papier (1)
  •  prototype (1)
  •  saas (1)
  •  scriptaculous (1)
  •  serveur (1)
  •  shrink (1)