Configuration d’un serveur dédié pour votre blog

Nous allons dans ce billet détaillé l’installation d’un serveur Wordpress (moteur de blog) sur une machine Linux Ubuntu. Vous aurez ainsi une plate-forme de blogging libre !

Installation du système GNU/Linux

On commence par mettre à jour notre système:

sudo aptitude update
sudo aptitude safe-upgrade

Mise en place des règles de Firewall:

#!/bin/bash
########################
# Nicolargo - 28/10/2009
# Regle de Firewall
# Serveur hebergeant:
# - SSH
# - HTTP
########################

# Debut

# Chargement des modules externes pour le suivi des connexions FTP
modprobe ip_conntrack
modprobe ip_conntrack_ftp

# On commence par effacer toutes les regles
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# On autorise les flux locaux
iptables -A INPUT  -i lo -j ACCEPT

# On autorise les flux des connexions etablies
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT  -m state --state RELATED,ESTABLISHED -j ACCEPT

#--------------------------
# Autorise les flux entrant
#--------------------------

# SSH serveur
iptables -A INPUT  -p tcp --dport ssh -j ACCEPT

# Web serveur
iptables -A INPUT  -p tcp --dport http -j ACCEPT

#--------------------------
# Autorise les flux sortant
#--------------------------

iptables -A OUTPUT -p tcp --dport domain -j ACCEPT
iptables -A OUTPUT -p udp --dport domain -j ACCEPT
iptables -A OUTPUT -p udp --dport ntp -j ACCEPT
iptables -A OUTPUT -p tcp --dport http -j ACCEPT
iptables -A OUTPUT -p tcp --dport https -j ACCEPT

#--------------------------
# On drop-and-logue le reste
#--------------------------

# En cas d'attaque de type Syn-Flood
iptables -N syn-flood
iptables -A syn-flood -m limit --limit 10/second --limit-burst 15 -j RETURN
iptables -A syn-flood -j LOG --log-prefix "SYN flood: "
iptables -A syn-flood -j DROP

# UDP
iptables -A INPUT  -p udp -j LOG --log-prefix "IPTABLES UDP-IN: "
iptables -A INPUT  -p udp -j DROP
iptables -A OUTPUT -p udp -j LOG --log-prefix "IPTABLES UDP-OUT: "
iptables -A OUTPUT -p udp -j DROP

# TCP
iptables -A INPUT  -p tcp -j LOG --log-prefix "IPTABLES TCP-IN: "
iptables -A INPUT  -p tcp -j DROP
iptables -A OUTPUT -p tcp -j LOG --log-prefix "IPTABLES TCP-OUT: "
iptables -A OUTPUT -p tcp -j DROP

# Fin

Automatisation du lancement des règles au démarrage du serveur:

/etc/init.d/iptables.sh
chmod a+x /etc/init.d/iptables.sh
sudo update-rc.d iptables.sh defaults

Installation de LAMP

sudo install apache2 mysql-server php5 php5-mysql phpmyadmin

Configuration du serveur Apache

Test d’Apache en entrant l’adresse de votre serveur (http://@IPduserveur/) dans un navigateur Web: ”It works!

On désactive se site par défaut avec les commandes suivantes:

sudo a2dissite default
/etc/init.d/apache2 reload

Nous allons maintenant configurer le serveur Apache pour gérer les adresses virtuelles. Il faut dans un premier temps déclarer dans votre DNS une nouvelle entrée qui fait pointer le nom de domaine vers l’adresse IP du serveur (blog.mondomaine.com A @IPduserveur).

Pour tester votre DNS (attention la mise à jour peut prendre un certain temps):

ping blog.mondomaine.com
PING blog.mondomaine.com () 56(84) bytes of data.
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=1 ttl=47 time=111 ms
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=2 ttl=47 time=110 ms
64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=3 ttl=47 time=110 ms
...

On configure ensuite le serveur Apache pour cette adresse:

# cd /etc/apache2/sites-available
# sudo vi virtualhosts
NameVirtualHost @IPduserveur
<VirtualHost @IPduserveur>
        ServerName      @IPduserveur
        DocumentRoot    /var/www/default
</VirtualHost>
<VirtualHost blog.mondomaine.com>
        ServerName      blog.mondomaine.com
        DocumentRoot    /var/www/blog
</VirtualHost&>

On créer ensuite les arborescences correspondantes:

cd /var/www
sudo mkdir default
sudo mkdir blog
sudo chown -R www-data:www-data *

Puis on active le site:

sudo a2ensite virtualhosts
sudo /etc/init.d/apache2 reload

Configuration de MySQL

On accède au logiciel phpMyAdmin qui va nous permettre de configurer une base de donnée pour notre blog Wordpress. Pour cela, il faut saisir l’URL suivante dans votre navigateur: http://blog.mondomaine.com/phpmyadmin/

PHPMyAdmin main page

Puis ensuite saisir le nom de la base de donnée (par exemple blog) et enfin cliquer sur Créer:

Create DB

PS: il est possible (et conseillé) de créer un utilisateur dédié pour pour accéder à cette base de donnée. Le plus simple est de créer un utilisateur (avec comme nom “blog”) puis de demander la création de la base de donnée correspondante. Les droits seront ainsi fixés automatiquement.

Installation de Wordpress

La dernière version de Wordpress 2.9 arrivera dans les bacs dans les prochains jours. Nous allons donc utiliser la version stable actuelle (Wordpress 2.8.6) pour illustrer ce billet.

On commence par télécharger les sources:

wget http://wordpress.org/latest.zip

Puis on décompresse l’archive:

unzip latest.zip

Il faut ensuite déplacer le répertoire wordpress dans la bonne arborescence de votre serveur. Ainsi, si vous souhaitez accéder à votre blog par l’adresse http://blog.mondomaine.com/, il faut copier le contenu du répertoire de la manière suivante (on prendre cette hyp:

sudo cp -r ./wordpress/* /var/www

Par contre si vous souhaitez que votre blog soit accessible par l’adresse  http://blog.mondomaine.com/blog/, il faut saisir la commande:

sudo mv wordpress /var/www/blog

Il faut ensuite éditer le fichier wp-config.php:

cd /var/www
cp wp-config-sample.php wp-config.php
sudo chmod a+r wp-config.php
vi wp-config.php

Puis éditer le fichier selon votre configuration:

define('DB_NAME', 'blog');
define('DB_USER', 'blog');
define('DB_PASSWORD', 'monmotdepasse');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

Enfin on finalise l’installation en allant à l’URL: http://blog.mondomaine.com/wp-admin/install.php

Pour résumer

Votre blog est maintenant accessible par l’adresse http://blog.mondomaine.com/

L’interface d’administration se trouve à l’adresse: http://blog.mondomaine.com/wp-admin/

Bon blog !

Vus : 433
Publié par Nicolargo : 402